在 C 编程中,以下代码块返回 False
int a=15, b=10,c=5;
if(a>b>c)
{
printf("True");
}
else
{
printf("False");
}
但是在 Python 中,以下代码块返回 True 。
a = 15
b = 10
c = 5
if a > b > c:
print("True")
else:
print("False")
编辑:从link找到了一个解决方案,它在python方面有很好的解释。从C编程的角度来看,这个answer很好地解释了我的问题。
答案 0 :(得分:6)
它们的行为有所不同,因为这是语言的实现方式。
对于C,a > b > c
从左到右求值。没有“运算符链接”的概念(稍后将对此进行介绍),因此该表达式的求值方式为(a > b) > c
,即1 > c
,即false
(在C语言中为逻辑表达式)返回1或0)。
在python中,OTOH中,a > b > c
的计算结果为a > b and b > c
(在比较中documentation中已指定),在这种情况下,结果为True
。