我被我的评估代码卡住了。我已经通过了足够的分数,但我不喜欢留下任何问题不及格-为了我自己的学习。我设法得到了所有的语句,除了最后一个语句,如果名字和姓氏是黑色的,输出应该是空的。但是我仍然得到Name——这个词根本不应该在那里。
非常感谢!
# code goes here
if len(first_name)==0:
string="Name: "+last_name
elif len(last_name)==0:
string="Name: "+first_name
elif len(last_name)==0 and len(first_name)==0:
string=""
else:
string="Name: "+last_name+", "+first_name
return string
print(format_name("Ernest", "Hemingway"))
# Should return the string "Name: Hemingway, Ernest"
print(format_name("", "Madonna"))
# Should return the string "Name: Madonna"
print(format_name("Voltaire", ""))
# Should return the string "Name: Voltaire"
print(format_name("", ""))
# Should return an empty string
Name: Hemingway, Ernest
Name: Madonna
Name: Voltaire
Name:
怎么了
你不可能达到len(last_name)==0 and len(first_name)==0:
.
这是因为你的第一个条件:if len(first_name)==0:
或第二个条件:elif len(last_name)==0:
在到达它之前总是为真。
一个简单的修复
这里的简单解决方案是将更复杂的条件移到if,elif,else链中的第一个。
if- if-else语句在第一个条件满足时退出。因此,您应该明智地定义条件的顺序