条件语句在不同语言中的行为不同

时间:2018-09-26 17:59:40

标签: python c

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很好地解释了我的问题。

1 个答案:

答案 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