我试图了解这两个选项的结果之间的差异,并且可能会得到更好的选择。我是一个新手,但是我的指导不是很详细,并且我很难获取有关Python语法的信息-如果有人拥有丰富的资源,我很乐意欢迎您。:)
def numberchoice():
print "How much do you take?"
choice = raw_input("> ")
if "0" in choice or "1" in choice or "2" in choice: #OPTION ONE
#if "0" or "1" or "2" in choice: #OPTION TWO
how_much = int(choice)
else:
print "please type a number."
numberchoice()
if how_much < 50:
exit("Nice, you're not greedy, you win!")
if how_much > 50:
exit("You greedy bastard!")
numberchoice()
我不明白的是为什么选项一和选项二不能互换。如果我使用选项一,并且用户输入了错误的响应-即 字母而不是数字-选项一运行“ else”响应,但是选项二给出一个错误。提前致谢!
if "0" or "1" or "2" in choice
对于新程序员来说,这是一个极为常见的错误。
这可以理解为
if '0' == true or '1' == true or '2' in choice
您知道现在出了什么问题吗?"0"
作为非空字符串,它将为true,并且将始终为true,因此其余检查甚至都不会执行。
请记住,or
只需检查其操作数之一为真(或真)。它没有某种智能行为,因此无法像英语一样阅读并按预期运行。
第1版是正确的,尽管以后您会学到更好的编写方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句