gpt4 book ai didi

python-3.x - 为什么 '2' <'1' == False 输出 False 在 python3 中?

转载 作者:行者123 更新时间:2023-12-03 15:04:29 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Why does the expression 0 < 0 == 0 return False in Python?

(9 个回答)


10 个月前关闭。



'2'<'1'== False #False
('2'<'1')== False #True
'2'<('1'== False) #error
python3中的代码
我们知道python3中的运算符优先级
https://docs.python.org/3/reference/expressions.html#operator-precedence

最佳答案

在情况 1 :-

'2'<'1'== False
它被评估为 '2'<'1' and '1' == False根据 operator chaining {感谢@ymonad 提供此链接}
这将被评估为 False在情况 2 中:-
('2'<'1')== False
()具有更高的优先级,因此将首先评估。所以表达式将简化为 False == False这将评估为 True在情况 3 中:-
'2'<('1'== False)
第一 ('1' == False)被评估为 False但现在的操作是 '2'<False这是python中的非法操作

编辑:
在评论区回答@snr 提出的问题

The vital question is why '1'== False is valid while '2'< bool is not


这是因为相等比较(== 和 !=)的默认行为基于对象的身份,并且作为对象 False和对象 '1'不共享相同的身份,因此结果将是 False而未提供其他比较(<、>、<= 和 >=)的默认行为,因此尝试这样做会引发 TypeError

您可以在 documentation link 中找到此信息由 OP 提供(在 value-comparations 标题下)

关于python-3.x - 为什么 '2' <'1' == False 输出 False 在 python3 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64691582/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com