即使给出输出后,“ if”语句代码何时仍不正确?

时间:2018-08-29 23:36:35

标签: python if-statement

对于编程来说是一个全新的东西,我现在正在通过edX学习,我遇到了这段代码,但是即使输出了输出,我也不知道为什么代码被称为不正确。会在edx平台上提出要求,但该课程已于两年前结束,只是从存档中学习。谢谢。

结果是'i win'和'tie'它有输出,为什么它仍然不正确?

comp = 'rock'
user = 'rock'

if comp == 'rock':
    print 'I win *_*!'
if user == 'paper':
    print 'You win.'
else:
    print 'Tie.'

非常感谢您对我的问题的答复,但对于进一步的澄清,请在此处查看以下代码:     comp =='摇滚'     用户=='摇滚'

if comp == 'paper' and user == 'paper':
    print('tie')
elif comp == 'rock':
    if user == 'scissors':
        print ('I win')
    else:
        print ('You win')
else:
    print ('tie')

对于用户“摇滚”,它将在第二次测试(elif)中打印“您赢”,但是输出被认为是不正确的,但是如果用户==“剪刀”,它将打印“我赢”,这说是正确的。我担心的是,为什么第二个elif下的if正确而同一elif下的else正确又有什么区别?

3 个答案:

答案 0 :(得分:2)

在使用if语句时,您并不是在问某事是否正确,而是问某事是 true还是false 。这称为布尔运算符,根据是否为false,它导致if语句执行或不执行。

之所以会得到答案,是因为您使用的是两个if语句,而不是elif语句。我在下面为您重构了它:

comp = 'rock'
user = 'rock'

if comp == 'rock':
    print 'I win *_*!'
elif user == 'paper':
    print 'You win.'
else:
    print 'Tie.'

更多阅读内容,请点击此处:https://www.programiz.com/python-programming/if-elif-else

答案 1 :(得分:0)

那么if语句会发生什么。 如果您的代码命中了if语句,它将查看条件并根据条件执行该条件,接下来发生的事情是,当第一个if语句未执行时,它查找是否存在以下任何elifelse中的任何一个。 在所有ifelifelse中,只有其中之一将被执行。可以将其视为一个大块,从if开始,以else结尾。 如果还有另一个if语句,则无论先前的if是否被执行,您的代码都会再次查看它,因为您的代码会认为这是另一部分条件。

因此,在您的代码中,即使您的输入属于第一个if语句,它仍然会查找第二个if并检查条件。

我在您的代码中添加了一些注释,以使其更直观:

comp = 'rock'
user = 'rock'

# a code block that needs to be looked at
if comp == 'rock':
    print 'I win *_*!'
# another code block that still has to be checked since it's starting with another if statement
if user == 'paper':
    print 'You win.'
else:
    print 'Tie.'

if替换第二个elif将解决此问题。

答案 2 :(得分:0)

您的代码可以使用,但需要进行一些语法更正:

comp = 'rock'
user = 'rock'

if comp == 'rock':
    print('I win *_*!')
elif user == 'paper':
    print('You win.')
else:
    print('Tie.')

我在这里所做的只是将第二个if更改为elif,并在print语句输出中加上括号。在Python中,“ else if”写为“ elif”。您可以根据需要拥有任意数量的elif条语句。