gpt4 book ai didi

python - python中的字符串比较

转载 作者:行者123 更新时间:2023-11-28 19:45:16 24 4
gpt4 key购买 nike

我一直在学习 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

但是,当我输入 ab 时,我收到此消息:TypeError: unsupported operand type(s) for |: 'str' and 'str '

这是比较字符串的不正确方法吗?是否有内置函数可以像 Java 那样执行此操作?谢谢!

最佳答案

| 是按位或运算符。你想要 。 (您实际上需要 。)

你写道:

if respStr != "a" | respStr != "b":

按位运算符具有高优先级(类似于其他算术运算符),因此这等同于:

if respStr != ("a" | respStr) != "b":

其中两个 != 操作是 chained comparison operators (x != y != z 等同于 x != y and y != z)。将按位或应用于两个字符串是没有意义的。

你打算写:

if respStr != "a" and respStr != "b":

您还可以使用链式运算符编写:

if "a" != respStr != "b":

或者,使用包含运算符 in:

if respStr not in ("a", "b"):

关于python - python中的字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11508988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com