0

我有 IF 声明;

if contactstring == "['Practice Address Not Available']" | contactstring == "['']":

我不确定出了什么问题(可能是“ ' ”?),但我不断收到标题中提到的错误。

我已经查看了其他问题的答案,但所有这些问题似乎都是关于对字符串使用数学运算,这不是这里的情况。我知道这个问题有点懒,但是我整天都在编码,我已经筋疲力尽了,我只想快速解决这个问题。(Python newb)

4

3 回答 3

13

|是 Python 中的按位或运算符,具有优先级,以便 Python 将其解析为:

if contactstring == (""['Practice Address Not Available']"" | contactstring) == "['']":

这会产生您看到的错误。

看来您想要的是一个逻辑或运算符,在 Python 中拼写为“或”:

if contactstring == ""['Practice Address Not Available']"" or contactstring == "['']":

会做你所期望的。但是,由于您将相同的变量与一系列值进行比较,因此效果会更好:

 if contactstring in ("['Practice Address Not Available']", ['']):
于 2012-06-12T04:30:02.600 回答
4

The|是一个位运算 ,不适用于字符串...

使用or(布尔逻辑运算符)将产生更好的结果。

于 2012-06-12T04:26:59.573 回答
2

这里的问题是按位或运算符|。在通常可以正常工作的布尔上下文中,但|优先级高于==Python 尝试首先评估的优先级"['Practice Address Not Available']" | contactstring。这两个操作数都是字符串,你不能按位或两个字符串。使用更正确的or可以避免这个问题,因为它的优先级低于==.

于 2012-06-12T04:31:03.253 回答