我一直在研究Python,但似乎无法通过字符串比较。我编写了一个接受用户输入并对其进行评估的函数。用户输入只能是“a”或“b”,否则将发生错误。我一直在用这个:
def checkResponse(resp):
#Make the incoming string trimmed & lowercase
respRaw = resp.strip()
respStr = respRaw.lower()
#Make sure only a or b were chosen
if respStr != "a" | respStr != "b":
return False
else:
return True
但是,当我输入a
或b
时,我会收到这个:TypeError: unsupported operand type(s) for |: 'str' and 'str'
这是比较字符串的错误方法吗?是否有一个内置函数可以像使用Java那样执行此操作?谢谢!
您需要的是
respStr != 'a' and respStr != 'b'
(or
是布尔运算符,|
是按位运算符-但是,您需要and
进行检查)。但是,您可以以更好的方式编写条件,而无需重复变量名:
如果respStr是
a
或b
或False
,否则将返回True
。|
是按位或运算符。你想要or
。(实际上您需要and
。)你写道:
位运算符具有高优先级(类似于其他算术运算符),因此这相当于:
其中两个
!=
操作是chained comparison operators(x != y != z
相当于x != y and y != z
)。按位或对两个字符串应用是没有意义的。你的意思是写:
您还可以使用链式运算符编写:
或者,使用包含运算符
in
:相关问题 更多 >
编程相关推荐