如何检查一个变量是否等于一个字符串或另一个字符串?
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