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