关于if语句判断问题,向前辈求助
这段代码 , 因为 if语句后面的条件表达式为F 所以不执行if下面的缩进代码a = 'b'
if a == 'c':
print('123')
但是写成这样就无效了,为什么 是我哪里写错了吗?
a = input(f'是/否:')
if a == '是' or 'Y' or 'y':
print('123')
无论我输入什么,都打印123 改为:a = input(f'是/否:')
if a == '是' or a == 'Y' or a == 'y':
print('123')
因为 Python 中只要 0 、空字符串、空列表、空字典等 都可以看作布尔类型的值为 False
只要是 非0 ,非空字符串、列表、字典 等 都可以看作布尔类型的值为 True
if a == '是' or 'Y' or 'y' 实际在 Python 中的判断顺序是 if (a == '是') or ('Y') or ('y') ,不是我们所想的 a 一个个于后面字符串拿去比较
而字符串只要不为空字符串就可以看作布尔类型值的 True ,所以这里条件实际上是:
if a == '是' or True or True,而 or 只要有一个条件为 True ,就返回 True ,所以导致这个 if 条件永远成立,如果你想判断 a 应该分开来写
a = input('是/否:')
if a == '是' or a == 'Y' or a == 'y':
print('123')
页:
[1]