嵌套的代码If语句不打印

时间:2015-12-03 22:11:12

标签: python python-3.x

我遇到了问题,而且我的代码在嵌套语句之后没有显示。

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:")

注意:详细信息是打印所有信息(如名字和姓氏

)的功能

4 个答案:

答案 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