Python简化了';如果';陈述
在Python 3.3.4中,我有以下相当简单的if语句,它可以按原样工作,但可以简化:Python简化了';如果';陈述,python,string,if-statement,integer,Python,String,If Statement,Integer,在Python 3.3.4中,我有以下相当简单的if语句,它可以按原样工作,但可以简化: if ans is '1': ans = int(ans) ans = (opt[ans]) elif ans is '2': ans = int(ans) ans = (opt[ans]) elif ans is '3': ans = int(ans) ans = (opt[ans]) 我尝试了各种组合: if ans is '1' or '2' or '
if ans is '1':
ans = int(ans)
ans = (opt[ans])
elif ans is '2':
ans = int(ans)
ans = (opt[ans])
elif ans is '3':
ans = int(ans)
ans = (opt[ans])
我尝试了各种组合:
if ans is '1' or '2' or '3':
ans = int(ans)
ans = (opt[ans])
或者这个,
if ans == '1' or '2' or '3':
ans = int(ans)
ans = (opt[ans])
if ans is ('1') or ('2') or ('3'):
ans = int(ans)
ans = (opt[ans])
或者这个,
if ans == '1' or '2' or '3':
ans = int(ans)
ans = (opt[ans])
if ans is ('1') or ('2') or ('3'):
ans = int(ans)
ans = (opt[ans])
我甚至尝试过使用字典,但大多数组合只允许通过任何字符串表示“ans”;我是不是很傻,错过了一些非常简单的事情,还是这是不可能的?提前感谢。试试:
if ans in ['1', '2', '3']
谢谢,工作得很好;我太傻了!好的,很高兴知道它起作用了。那么你能标记答案并投票吗?是的,我只是等了4分钟,否则它就不让我投票了。请注意,
is
与=
不一样。在这种情况下,您应该使用==
。您几乎不需要使用is
,请忘记它的存在。如果您继续使用is
代替=
,您将得到无法解释和预期的结果。谢谢您的警告,我对Python还比较陌生。“in”或“!=”呢?这是类似的情况吗?不是。没有任何情况可以将is
或=
替换为中的,因此不可能将其与is
或=
混淆<代码>=
与==
在逻辑上正好相反。不,我的意思是,在大多数情况下,我应该使用“in”或“in”!='中的一种还是另一种?我不是要替换“==”或“是”,我知道它们是相反的。我很困惑<代码>在
和中=代码>意味着完全不同的事情in
的意思是“这个列表/目录/元组/容器中有什么东西吗”<代码>=代码>表示“不相等”<代码>=
表示“相等”is
表示“对象ID相等”。我想说的是,在0种情况下,在中为切换在语法上是有效的=代码>或反之亦然,更不用说逻辑上有效了。我不明白你问题的由来。