Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从输出中获取空白字符串_Python_String_Return - Fatal编程技术网

Python 从输出中获取空白字符串

Python 从输出中获取空白字符串,python,string,return,Python,String,Return,我很难理解这段代码到底是怎么回事。目标是在两个名称都丢失时输出一个空白字符串。我的代码只输出“Name:”不管我使用什么作为返回值 def format_name(first_name, last_name): if len(first_name) and len(last_name) !=0: return "Name: " + str(last_name) +", " + str(first_name) elif len

我很难理解这段代码到底是怎么回事。目标是在两个名称都丢失时输出一个空白字符串。我的代码只输出“Name:”不管我使用什么作为返回值

def format_name(first_name, last_name):
    if len(first_name) and len(last_name) !=0:
        return "Name: " + str(last_name) +", " + str(first_name)
    elif len(last_name) == 0:
        return "Name: " + str(first_name)
    elif len(first_name) == 0:
        return "Name: " + str(last_name)
    else:
        return ""
问题是,如果两个字符串都为空,那么一个字符串也为空。你必须重新安排你的条件,否则最后一个条件将永远不会被触发。另外,与问题无关,您只需检查
if string
即可检查
string
是否为非空。此外,不需要将名称转换为
str
(假设它们已经是
str

对于较少的
if/elif
“乐趣”,您可以筛选并加入
非空名称(如果有):

def format_name(first_name, last_name):
    present = [x for x in (last_name, first_name) if x]
    if present:
         return "Name: " + ", ".join(present)
    else:
         return ""
(第二个的逻辑也要简单得多,我在第一个版本中犯了几个错误,代码重复也少了。)

问题是,如果两个字符串都是空的,那么一个字符串也是空的。你必须重新安排你的条件,否则最后一个条件将永远不会被触发。另外,与问题无关,您只需检查
if string
即可检查
string
是否为非空。此外,不需要将名称转换为
str
(假设它们已经是
str

对于较少的
if/elif
“乐趣”,您可以筛选并加入
非空名称(如果有):

def format_name(first_name, last_name):
    present = [x for x in (last_name, first_name) if x]
    if present:
         return "Name: " + ", ".join(present)
    else:
         return ""

(第二个版本的逻辑也简单得多,我在第一个版本中犯了几个错误,代码重复也少了。)

我自己做了一个format_name函数。请测试一下。如果你能让我知道你的意见,我会很高兴的

def format_name(first_name, last_name):
    name_list = [last_name, first_name]
    name_list = [name.strip() for name in name_list if name.strip()]
    full_name = ", ".join(name_list).strip()

    if full_name:
        return "Name: " + full_name
    else:
        return ""

first_name = ""
last_name = ""

full_name = format_name(first_name, last_name)
print(full_name)

我自己做了一个format_name函数。请测试一下。如果你能让我知道你的意见,我会很高兴的

def format_name(first_name, last_name):
    name_list = [last_name, first_name]
    name_list = [name.strip() for name in name_list if name.strip()]
    full_name = ", ".join(name_list).strip()

    if full_name:
        return "Name: " + full_name
    else:
        return ""

first_name = ""
last_name = ""

full_name = format_name(first_name, last_name)
print(full_name)

您将需要重新排列条件,以便在分别检查名称的两个部分之前,能够检查名称的两个部分是否为空

def_n(名字、姓氏):
如果len(名字)!=0和len(姓)=0:
返回“Name:”+str(姓)+“,“+str(名))
elif len(姓)==0和len(名)==0:
返回“”
elif len(姓氏)=0:
return“Name:”+str(名字)
其他:
return“Name:+str(姓氏)

您需要重新排列条件,以便在分别检查名称的两个部分之前,能够检查名称的两个部分是否为空

def_n(名字、姓氏):
如果len(名字)!=0和len(姓)=0:
返回“Name:”+str(姓)+“,“+str(名))
elif len(姓)==0和len(名)==0:
返回“”
elif len(姓氏)=0:
return“Name:”+str(名字)
其他:
return“Name:+str(姓氏)


您可能希望标记特定语言,以便更多地关注您的问题。请标记您正在使用的编程语言。这将缩小你想要针对的特定听觉对象(以及想要查看相应帖子的人)。请注意
len(名字)和len(姓氏)=0与
len(名字)!=0和len(姓)!=0
,尽管在这个特定的情况下,它的行为实际上是相同的。好的,谢谢,对不起,第一篇帖子。@tobias\u k在什么情况下
len(名字)和len(姓氏)=0与
len(名字)不同=0和len(姓)=0
?您可能希望标记特定的语言,以便更多地关注您的问题。请标记您正在使用的编程语言。这将缩小你想要针对的特定听觉对象(以及想要查看相应帖子的人)。请注意
len(名字)和len(姓氏)=0与
len(名字)!=0和len(姓)!=0
,尽管在这个特定的情况下,它的行为实际上是相同的。好的,谢谢,对不起,第一篇帖子。@tobias\u k在什么情况下
len(名字)和len(姓氏)=0与
len(名字)不同=0和len(姓)=0
?在发布代码之前,您应该知道自己运行代码的结果。我在发布代码之前对其进行了测试。当first_name=“”和last_name=“”时,结果为“”。您好,mkrieger1。你使用了什么输入?我可以向你保证,我在你的答案前一分钟发布我的答案时没有使用你的代码。还记得Python的禅宗吗:“应该有一种——最好只有一种——显而易见的方法来实现它。”就是这样。是的,它工作得很好,有点谦逊,对于一个noob来说,看到如何使用Python的不同示例也是令人兴奋的。谢谢大家的帮助。在发布代码之前,您应该知道自己运行代码的结果。我在发布代码之前对其进行了测试。当first_name=“”和last_name=“”时,结果为“”。您好,mkrieger1。你使用了什么输入?我可以向你保证,我在你的答案前一分钟发布我的答案时没有使用你的代码。还记得Python的禅宗吗:“应该有一种——最好只有一种——显而易见的方法来实现它。”就是这样。是的,它工作得很好,有点谦逊,对于一个noob来说,看到如何使用Python的不同示例也是令人兴奋的。谢谢大家的帮助。所以我测试了你的新代码,得到了和以前一样的结果。当我输入print(format_name(“,”))时,输出是“name:”仍然???@strebor71抱歉,另一个错误。请现在再次测试。所以我测试了你的新代码,得到了与以前相同的结果。当我输入print(format_name(“,”))时,输出是“name:”仍然???@strebor71抱歉,另一个错误。请现在再次测试。