什么时候“if”语句代码即使在给出输出后也不正确?

2024-03-28 21:44:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我对编程是完全陌生的,我现在正在通过edX学习,我遇到了这段代码,但我真的不知道为什么这段代码被称为不正确的,即使它给出了一个输出。本可以在edx平台上提问,但该课程在两年前结束,只是从存档的内容中学习。谢谢。你知道吗

结果是'我赢'和'平局',它有一个输出,为什么它仍然是不正确的?你知道吗

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')

对于“rock”用户,它将从第二次测试(elif)打印“you win”,但是输出被认为是不正确的,但是如果user==“剪刀”,它将打印“I win”,这被认为是正确的。我关心的是为什么,第二个elif下的if和同一个elif下的else有什么区别?你知道吗


Tags: 代码用户youif编程winelsepaper
3条回答

当你使用if语句时,你不是在问某事是否正确,而是在问某事是否正确。这被称为布尔运算符,取决于它是true还是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

那么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.'

elif替换第二个if将解决问题。你知道吗

您的代码将正常工作,但需要进行一些语法更正:

comp = 'rock'
user = 'rock'

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

我在这里所做的就是将第二个if改为elif,并在print语句输出周围加上括号。在Python中,“elseif”写为“elif”。您可以有任意多个elif语句。你知道吗

相关问题 更多 >