我遇到了问题,而且我的代码在嵌套语句之后没有显示。
在confirmation.lower == no
之后,它会询问错误的信息输入,然后跳过Else语句而不执行任何if或elif语句中的内容。
confirmation = input("Confirm if information is correct ('yes' or 'no'):")
#confirms if deatils are incorrect
if confirmation.lower() == "no":
wronginfo = input("Indicate Wrong Info:")
if wronginfo.lower() == "First Name":
NewInfo = input(wronginfo+":")
FirstName = NewInfo
details()
elif wronginfo.lower() == "Last Name":
NewInfo = input(wronginfo+":")
LastName = NewInfo
details()
elif wronginfo.lower() == "Age":
NewInfo = input(wronginfo+":")
Age = NewInfo
details()
else:
start = input("Type 'y' to start:")
注意:详细信息是打印所有信息(如名字和姓氏
)的功能答案 0 :(得分:2)
你的问题是你的wronginfo.lower() == "Last Name":
包含大写字母,永远不会是真的。
你的选择是。将Last Name
更改为last name
wronginfo.lower() == "last name"
如果您想保留Last Name
,则可以使用.title()
。这将使每个单词的第一个字母成为大写字母,并使每个其他字母小写,这与您尝试比较的内容相匹配。
wronginfo.title() == "Last Name"
答案 1 :(得分:1)
将字符串与小写字母的所有字符与包含大写字母的字符串进行比较
答案 2 :(得分:1)
这句话永远不会成真:
elif wronginfo.lower() == "Last Name":
您的比较字符串包含大写字符;没有可以与之相等的小写字符串。也许试试这个:
elif wronginfo.lower() == "last name":
您需要与“名字”和“年龄”相同的待遇。
现在,如果您喜欢当前代码的读取方式,只需将两者转换为小写,如下所示:
elif wronginfo.lower() == "Last Name".lower():
您可以以少量CPU时间为代价获得程序维护的资金。由于您正在以人类打字速度工作,因此该时间不太可能成为问题。
答案 3 :(得分:0)
wronginfo.lower()永远不会等于"名字"因为"名字"里面有大写字母。改为
ResponseStatusExceptionResolver