如何检查一个变量是否等于一个字符串或另一个字符串?

发布于 2021-01-29 18:44:24

if var is ‘stringone’ or ‘stringtwo’:
dosomething()

这行不通!我有一个变量,当它是两个值中的一个时,我需要它执行某些操作,但它不会输入if语句。在Java中if (var == "stringone" ||"stringtwo")工作。如何用Python编写?

关注者
0
被浏览
142
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    这不能满足您的期望:

    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
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看