我有 IF 声明;
if contactstring == "['Practice Address Not Available']" | contactstring == "['']":
我不确定出了什么问题(可能是“ ' ”?),但我不断收到标题中提到的错误。
我已经查看了其他问题的答案,但所有这些问题似乎都是关于对字符串使用数学运算,这不是这里的情况。我知道这个问题有点懒,但是我整天都在编码,我已经筋疲力尽了,我只想快速解决这个问题。(Python newb)
我有 IF 声明;
if contactstring == "['Practice Address Not Available']" | contactstring == "['']":
我不确定出了什么问题(可能是“ ' ”?),但我不断收到标题中提到的错误。
我已经查看了其他问题的答案,但所有这些问题似乎都是关于对字符串使用数学运算,这不是这里的情况。我知道这个问题有点懒,但是我整天都在编码,我已经筋疲力尽了,我只想快速解决这个问题。(Python newb)
|
是 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']", ['']):
The|
是一个位运算 符,不适用于字符串...
使用or
(布尔逻辑运算符)将产生更好的结果。
这里的问题是按位或运算符|
。在通常可以正常工作的布尔上下文中,但|
优先级高于==
Python 尝试首先评估的优先级"['Practice Address Not Available']" | contactstring
。这两个操作数都是字符串,你不能按位或两个字符串。使用更正确的or
可以避免这个问题,因为它的优先级低于==
.