Python if语句没有';I don’我没有按预期工作
我目前拥有以下代码:Python if语句没有';I don’我没有按预期工作,python,printing,random,if-statement,Python,Printing,Random,If Statement,我目前拥有以下代码: fleechance = random.randrange(1,5) print fleechance if fleechance == 1 or 2: print "You failed to run away!" elif fleechance == 4 or 3: print "You got away safely!" FleedChance经常打印为3或4,但我继续得到结果“你没有逃走!”,有人能告诉我为什么会发生这种情况吗?试试看 if fle
fleechance = random.randrange(1,5)
print fleechance
if fleechance == 1 or 2:
print "You failed to run away!"
elif fleechance == 4 or 3:
print "You got away safely!"
FleedChance经常打印为3或4,但我继续得到结果“你没有逃走!”,有人能告诉我为什么会发生这种情况吗?试试看
if fleechance == 1 or fleechance == 2:
print "You failed to run away!"
elif fleechance == 4 or fleechance == 3:
print "You got away safely!"
或者,如果这些是唯一的可能性,您可以这样做
if fleechance <= 2:
print "You failed to run away!"
else:
print "You got away safely!"
如果fleechance表达式fleechance==1或2
相当于(fleechance==1)或(2)
。数字2
始终被视为“真”
试试这个:
if fleechance in (1, 2):
编辑:在您的情况下(只有两种可能性),以下情况会更好:
if fleechance <= 2:
print "You failed to run away!"
else:
print "You got away safely!"
如果如果语句按设计工作,问题是操作顺序导致此代码执行您不想要的操作
最简单的解决方法是说:
if fleechance == 1 or fleechance == 2:
print "You failed to run away!"
elif fleechance == 3 or fleechance == 4:
print "You got away safely!"
因为你不是在问fleechance
是1还是fleechance
是2;你问的是
为1,或
2是非零的
当然,条件的第二部分总是正确的。试一试
if fleechance == 1 or fleechance == 2:
...
你写if语句的方式是错误的。
您让python检查fleechance=1是真的还是2是真的。
非零整数在条件中始终表示为真。
你应该写:
fleechance = random.randrange(1,5)
print fleechance
if fleechance == 1 or fleechance == 2:
print "You failed to run away!"
elif fleechance == 4 or fleechance == 3:
print "You got away safely!"
如果fleechance==1或fleechance==2,这并不等同于。这相当于说如果fleechance==1:if 2
,因为如果2
是真的,这将始终是真的。您使用的Python教程是什么?你在哪里见过这样的代码?你能提供一份类似的或推荐信吗?这段代码很糟糕,知道你是从哪里得到它可能有意义的想法是很重要的。我有一本书,但我没有直接从那里得到代码,只是看起来它会工作,所以我不认为这真的是教程的错。谢谢,这很有效,我不知道操作顺序。谢谢你进一步解释,我以后尽量不要犯同样的错误。