if var is 'stringone' or 'stringtwo':
dosomething()
这行不通!我有一个变量,当它是两个值中的一个时,我需要它执行某些操作,但它不会输入if语句。在Java中if (var == "stringone" || "stringtwo")
工作。如何用Python编写?
这不能达到您的期望:
if var is 'stringone' or 'stringtwo':
dosomething()
它与:
if (var is 'stringone') or 'stringtwo':
dosomething()
始终为真,因为它'stringtwo'
被认为是“真”值。
有两种选择:
if var in ('stringone', 'stringtwo'):
dosomething()
或者您可以编写单独的相等性测试,
if var == 'stringone' or var == 'stringtwo':
dosomething()
不要使用is
,因为会is
比较对象标识。有时您可能会因为Python实习生很多字符串而无法使用它,就像您可能在Java中因为Java实习生很多字符串而放弃它一样。但是is
除非真正想要对象标识,否则不要使用。
>>> 'a' + 'b' == 'ab'
True
>>> 'a' + 'b' is 'abc'[:2]
False # but could be True
>>> 'a' + 'b' is 'ab'
True # but could be False
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句