因此。我有代码,用户输入并处理它。它取名字,Sean这个名字就是他们的名字,它问他们Sean是哪个。我想要它,以便所列出的肖恩都没有进入,它会说'我不知道那个肖恩'但是它的马车不会起作用。有帮助吗? 继承人的代码;
name = raw_input ("What's your name?")
if Sean in name:
name1 = raw_input("Downey or Paul?")
else:
print ('Hi %s') % (name)
if Downey in name1:
print ("Hi Sean Downey")
if Paul in name1:
print ("Hi Sean Paul")
else:
print ("I don't know that Sean")
答案 0 :(得分:3)
以下是您的代码的工作版本,其中包含一些细微的更改,我将在下面解释
name = raw_input ("What's your name?")
if 'Sean' in name:
name1 = raw_input("Downey or Paul?")
if 'Downey' in name1:
print ("Hi Sean Downey")
x = raw_input("Did you know that the name is irish?")
if x == 'yea':
print ('oh cool')
elif 'Paul' in name1:
print ("Hi Sean Paul")
else:
print ("I don't know that Sean")
else:
print ('Hi %s') % (name)
首先,正如user2612566所提到的,您将变量与字符串文字混淆。要检查用户是否输入Sean作为名称,您应该检查if 'Sean' in name:
,因为输入转换为字符串。
其次,您的代码已经过订购,即使Sean不在name
,它也会打印I don't know that Sean
,因为代码底部有else
块,我更改了将第2个和第3个if
块移动到第一个if
块中。
第三,你checke if Downey in name1:
但name1
仅在你的代码输入第一个if时才存在,所以如果它不输入第一个if,你的代码将因为无法找到变量而失败{ {1}}。通过将name1
移动到第一个if
答案 1 :(得分:2)
您将字符串文字与变量名混淆。您似乎想要测试'Sean' in name1
而不是Sean in name1
。
另外,你的第三个' if'声明应该是elif - 请参阅here
您的ifs也没有针对您想要的结果正确嵌套。
固定代码:
name = raw_input ("What's your name?")
if 'Sean' in name:
name1 = raw_input("Downey or Paul?")
if 'Downey' in name1:
print ("Hi Sean Downey")
elif 'Paul' in name1:
print ("Hi Sean Paul")
else:
print ("I don't know that Sean")
else:
print ('Hi %s') % (name)