基于输入关键字的输出

时间:2014-06-10 18:58:56

标签: python python-2.7

因此。我有代码,用户输入并处理它。它取名字,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")

2 个答案:

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