首页 > 解决方案 > 条件语句在不同语言中的行为不同

问题描述

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")

编辑:从链接中找到了一个解决方案,它从 python 的角度解释得很好。从 C 编程的角度来看,这个答案很好地解释了我的问题。

标签: pythonc

解决方案


它们的行为不同,因为这就是语言的实现方式。

使用 C,a > b > c从左到右进行评估。没有“运算符链接”的概念(我很快就会谈到),所以表达式被评估为(a > b) > c哪个是1 > c哪个false(在 C 中,逻辑表达式返回 1 或 0)。

在 python 中,OTOH 的a > b > c计算结果为a > b and b > c(如比较文档中所指定),结果True在这种情况下。


推荐阅读