“str”和“str”的操作数类型不受支持。Python

2024-10-02 00:25:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有IF语句

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

我不确定出了什么问题(可能是“'”s?)但我一直在找标题中提到的错误。在

我已经在其他问题中寻找答案,但所有这些问题似乎都是关于在字符串上使用数学运算,而这里不是这样。我知道这个问题有点懒,但我已经编写了一整天的代码,我已经筋疲力尽了,我只想尽快解决这个问题


Tags: 字符串答案代码标题ifaddress错误not
3条回答

|是一个operator,它对字符串不起作用。。。在

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

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

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

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

这会产生你看到的错误。在

似乎您需要的是一个逻辑or运算符,在Python中它的拼写是“or”:

^{pr2}$

会做你期望的。但是,由于要将同一个变量与一系列值进行比较,这一点更好:

 if contactstring in ("['Practice Address Not Available']", ['']):

相关问题 更多 >

    热门问题