为什么用`OR`对照多个值检查变量仅检查第一个值?

为什么用`OR`对照多个值检查变量仅检查第一个值?,第1张

为什么用`OR`对照多个值检查变量仅检查第一个值?

(“Jesse” or “jesse”)

上面的表达式测试是否

"Jesse"
评估为
True
。如果是这样,则表达式将返回它;否则,它将返回
"jesse"
。该表达式等同于编写:

"Jesse" if "Jesse" else "jesse"

因为

"Jesse"
是一个非空字符串,所以它将 始终 求值为
True
并因此返回:

>>> bool("Jesse")  # Non-empty strings evaluate to True in PythonTrue>>> bool("")  # Empty strings evaluate to FalseFalse>>>>>> ("Jesse" or "jesse")'Jesse'>>> ("" or "jesse")'jesse'>>>

这意味着表达式:

name == ("Jesse" or "jesse")

基本上等同于编写此代码:

name == "Jesse"

为了解决您的问题,您可以使用

in
运算符:

# Test whether the value of name can be found in the tuple ("Jesse", "jesse")if name in ("Jesse", "jesse"):

或者,您可以小写

name
with的值,
str.lower
然后将其
"jesse"
直接与进行比较:

# This will also handle inputs such as "JeSSe", "jESSE", "JESSE", etc.if name.lower() == "jesse":


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5645857.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存