今天突然发现Python中bool类型一些“奇怪”的现象
1. 我们都知道,正常的bool判断逻辑是这样的:
print(True and False)
print(True and True)
print(False and True)
print(False and False)
False
True
False
False
2. 如果是这样呢?
print('True' and 'False')
print('True' and 'True')
print('False' and 'True')
print('False' and 'False')
猜猜结果是什么?
False
True
True
False
可以看出 关于'False' and 'True'的判断出错了。
3. 如何简单地解决?
print(eval('True') and eval('False'))
print(eval('True') and eval('True'))
print(eval('False') and eval('True'))
print(eval('False') and eval('False'))
看看结果吧~
False
True
False
False
OK!解决~