Python基础题:谁能帮我解释一下这个题目?真心没明白
print(1<(2==2)) #False print(1<2 ==2) #True
Python基础题:谁能帮我解释一下这个题目?真心没明白
建议了解一下运算符优先级
我无法理解你的问题
python 里 0 == False, 1 == True.
括号优先计算
>>> 2==2
0
>>> 1<0
False
#3 更正,括号优先计算
>>> 2==2
1
>>> 1<1
False
是类型隐式转换的问题。
Python 中,除了‘’、""、0、()、[]、{}、None 转 bool 类型为 False
其他转换基本都为 True
第一个 ,首先 2==2 结果是 1,所以 1<1 是 False
第二个,你先理解(1<2<3) is True, (4>2<3) is True
可以理解成先比较 1<2,再比较 2==2,所以结果是 True
#4 print(1<2 ==2) 这句话,1<2 是 True,应该是 1,所以转换成 print(1==2),不是这样吗?
第二个类似于 1<2 and 2==2
感谢,懂了
#3 我看了
#6 的解释,明白了。
- 1<(2==2)
先算 2==2 为 True, 计算 1 < True 时,True 被转为数字类型,值为 1,1 < 1,为 False
2. 1<2 ==2
先算 1 < 2 为 True, 计算 True == 2 时,2 被转为 bool 类型,值为 True,True == True, 为 True
注意比较的时候是把运算符右边的类型转为左边的类型,然后再行比较。
你这个解释是错的, True == 2,得出来的是 False.
#6 的解释才是对的.
不得不说这个问题确实很有趣…
这个解释我刚开始以为对了,往解释器里一放 True==2 然后就尴尬了。。。
#11 更正,上面的说法是错误的,1 < 2 == 2 和 (1 < 2) == 2 是不一样的, 这个应该其实是 Python 的一个语法糖,为了简化 (b > a and b < c) , 可以直接写做 ( a < b < c); 所以题目的 1 < 2 == 2 其实就是 (1 < 2 and 2 == 2)
=。=
#12
#13
嗯,是我想当然了,实际上应该是我 14 刚才写的这样的 =。=
学到了
感谢,为老哥搞技术的这股韧劲点赞


