Python简化了';如果';陈述

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 '

在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 '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种情况下,在中为
切换
在语法上是有效的=或反之亦然,更不用说逻辑上有效了。我不明白你问题的由来。