代码如下:
a=['a','b','c']
for i in a:
if i == 'a' or 'b':
print(i)
按照我的逻辑思维, 这里的运行结果应该是
a
b
但是运行结果却是
a
b
c
运行环境python 3.9.6, 是为最新的稳定版本
你这个 if i == 'a' or 'b': 判断逻辑有问题,
不是你想象的i等于a或者等于b。
i == 'a' or 'b' 是用 or 分隔的 i == 'a' 和 'b' 两个条件表达式。
其中'b'是一个单独的条件表达式,'b'在条件判断时永远为真, or 两边是任何一边为真结果就是真,。
所以i == 'a' or 'b'表达式就是永远为真。
正确的是
if i == 'a' or i == 'b':
要简写可以这样子
if i in {'a','b'}:
这里用集合比用列表稍快一些。
如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮
if i == 'a' or i == 'b':
这样才对,望采纳~😁
xd,你这个判断语句有问题啊!
if i == 'a' or 'b'
这个语句无论i取什么值,都为真(True),如果楼主要想实现那种效果,可以这样写啊!
if i == 'a' or i == 'b':
# 或者
if i in ['a','b']:
or 应该是两边表达式真假的判断,如果其中一个表达式有一个为True就执行下面代码块,而不是字面意思上的一个变量等于谁或谁就执行下面的代码块
这才是正确写法:
a=['a','b','c']
for i in a:
if i == 'a' or i=='b':
print(i)
还有什么问题尽管问我,如果没有希望采纳~