带有多个if语句的条件语句(涉及raw_input)

时间:2014-09-16 04:59:35

标签: python if-statement conditional-statements raw-input

我正在尝试使用raw_input,除了我的第一个if语句和我的其他声明之外,它工作正常。每当我运行代码并使用在' League'之后列出的raw_input回答第二个问题时在第一个if语句中,当它只打印第一个if时,它会返回第一个if的打印和else的打印。知道什么是错的吗?

name = raw_input('What is your name?\n')
game = raw_input('\nWhat MOBA do you play/have played? \n(The answer ' \
    'must be case sensitive i.e. LoL for League and DoTA for y\'know the whole darn thing '\
    'is too '\
    'darn long to say even though I typed a lot more than the name)\n')

if game in ('League' , 'League of Legends' , 'LoL'):
    print '\nYou go girl! '
if game in ('DoTA' , 'DoTA 2' , 'DoTA2'):
    print '\nThat\'s cool and all but........ Go play League you dang noob. '
else:
    print '\nAre you kidding me? You play %s? I\'m severely disappointed in you %s.  You ' \
        'should at least be playing ' \
        'one of these popular games. \nShame, shame, shame. Go install one. ' % (game, name)

3 个答案:

答案 0 :(得分:0)

缩进级别不正确。 为第二个if语句花费一个空间。 或少1个空格和elif而不是第二个if。

答案 1 :(得分:0)

您可以始终使用if作为第一个条件,elif表示任意数量的其他条件(如果输入位于实例中的第二个列表中),else表示输入不在任何这些列表中,你的缩进也有点混乱,如果第一个语句为真,那么嵌套在彼此内的语句只会运行嵌套条件,我还建议你使用{{1}用户输入的方法,所以你不必指示用户键入区分大小写的输入并使用变量来存储这些列表,这样你就可以在代码的其他地方重用它们。这样的事情:

string.lower()

答案 2 :(得分:0)

将第二个if条件替换为elifelif可以根据需要多次使用,直到条件匹配,但更好的做法是将最后一个条件设为else(当其他条件失败时就像默认语句一样)