【问题标题】:Python Simplifying an 'If' Statement [duplicate]Python简化'If'语句[重复]
【发布时间】:2014-06-04 16:47:26
【问题描述】:

我在 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])

我什至尝试过使用字典,但大多数组合只允许通过任何字符串作为“ans”;我是不是很傻,错过了一些非常简单的东西,或者这不可能?提前致谢。

【问题讨论】:

  • 请,is== 不同。在这种情况下,您应该使用 ==。你几乎不需要使用is,请忘记它的存在。如果您继续使用is 代替==,您将获得无法解释和意想不到的结果。
  • 感谢您的警告,我对 Python 还很陌生。 'in' 或 '!=' 呢?这是类似的情况吗?
  • 没有。没有任何情况可以将is== 替换为in,因此不会将其与is== 混淆。 !=== 正好相反。
  • 不,这就是我的意思,在大多数情况下我应该使用其中一个还是“in”或“!=”?我不是要替换 '==' 或 'is',我知道它们是相反的。
  • 我很困惑。 in!= 表示完全不同的东西。 in 的意思是“这个列表/字典/元组/容器中有一些东西”? != 表示“不等于”。 == 表示“相等”。 is 表示“对象 ID 相等”。我想说的是,在 0 种情况下,将 in 切换为 != 甚至在语法上是有效的,反之亦然,更不用说在逻辑上有效了。我不明白你的问题的起源。

标签: python string if-statement integer


【解决方案1】:

试试:

if ans in ['1', '2', '3']

【讨论】:

  • 谢谢,效果很好;我是愚蠢的!
  • 好的,很高兴知道它有效。您可以标记答案并投票吗?
  • 是的,我只需要等待 4 分钟,否则它不会让我。
猜你喜欢
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多