对于编程来说是一个全新的东西,我现在正在通过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正确又有什么区别?
答案 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
语句未执行时,它查找是否存在以下任何elif
或else
中的任何一个。
在所有if
,elif
和else
中,只有其中之一将被执行。可以将其视为一个大块,从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
条语句。