python - Python If 语句问题
问题描述
我正在尝试测试一个输入(一个字符串)是否等同于 3 个不同的字符串(只需要等同于其中一个)。但无论我输入什么输入,它总是等效的,除非我删除 or 语句。谁可以给我解释一下这个???
Input_String = 'Random String'
Option_1 = 'rock'
Option_2 = 'paper'
Option_3 = 'scissors'
if Input_String == Option_1 or Option_2 or Option_3:
print(1)
else:
print(2)
# It will always print 1 like this.
解决方案
关键字or
and
连接布尔值(True、False)。在你的情况下
If a == b or c or d:
解释器将 (a == b) 理解为布尔值天气 a 等于 b,c 为布尔值 True(因为非空字符串转换为布尔类型为 True)n 和 d 相同。所以你会得到
If (a == b) or True or True:
因此,如果至少有一个 True,则整个语句将具有 True 值,并且将解释 If 语句的主体。
正确的方法是。
if Input_String == Option_1 or Input_String == Option_2 or Input_String == Option_3:
print(1)
推荐阅读
- python - 如何为 PYPI 包提供持久存储
- php - 将表中的查询结果保存到变量中,然后将其发送到另一个表中
- javascript - 如何用''替换'/'?
- javascript - 将字母转换为逗号分隔的数字?
- r - 有没有办法删除遵循 R 中模式的数据帧行?
- azure-devops - 扩展 Azure 多阶段 yaml 管道日志
- c++ - C++ 和字符的整数值
- python-3.x - 我可以使用 np.mean 计算 4D 数组的两个不同轴的平均值吗?
- ios - 检索firebase信息以设置按钮标题
- python - 如何解决 ValueError:使用 re.findall 提取信息时,值的长度与索引的长度不匹配