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

How to check if a variable is equal to one string or another string?

本问题已经有最佳答案,请猛点这里访问。
1
2
if var is 'stringone' or 'stringtwo':
    dosomething()

这不管用!我有一个变量,当它是其中一个值时,我需要它做一些事情,但是它不会进入if语句。在Java EDCOX1中,0工作。我如何用python编写这个?


This does not do what you expect:

1
2
if var is 'stringone' or 'stringtwo':
    dosomething()

It's the same as:

1
2
if (var is 'stringone') or 'stringtwo':
    dosomething()

自从'stringtwo'以来,什么总是真实的。

有两种备选办法:

1
2
if var in ('stringone', 'stringtwo'):
    dosomething()

或者你可以分别写平等测试

1
2
if var == 'stringone' or var == 'stringtwo':
    dosomething()

不要使用is,因为is比较对象身份。有时候,你可以离开它,因为Python插入了很多弦乐,就像你可以在爪哇离开它,因为爪哇插入了很多弦乐。但不要使用is除非你真的想要对象的身份。

1
2
3
4
5
6
>>> 'a' + 'b' == 'ab'
True
>>> 'a' + 'b' is 'abc'[:2]
False # but could be True
>>> 'a' + 'b' is 'ab'
True  # but could be False


ZZU1

或更多的Python,

1
2
if var in ['string one', 'string two']:
    do_something()


两个分开的检查同样,使用==is更重要的是,对平等的检验要比认同的检验更重要。

1
2
 if var=='stringone' or var=='stringtwo':
     dosomething()


1
2
if var == 'stringone' or var == 'stringtwo':
    dosomething()

如果两个参照点都被用于同一目的,则使用此方法。它比较了记忆地址。显而易见,弦乐和Var是不同的对象,它们只包含相同的弦乐,但它们是两个不同的结构。所以他们的课程有两个不同的记忆地址,而这将是错误的。


1
2
3
4
5
for a in soup("p",{'id':'pagination'})[0]("a",{'href': True}):
        if createunicode(a.text) in ['<','<']:
            links.append(a.attrMap['href'])
        else:
            continue

这是我的工作。