python - 条件语句在不同的语言中表现不同

标签 python c

C编程中,以下代码块返回False

int a=15, b=10,c=5;
    if(a>b>c)
    {
        printf("True");
    }
    else
    {
        printf("False");
    }

但在Python中,以下 block 返回True

a = 15
b = 10
c = 5
if a > b > c:
    print("True")
else:
    print("False")

编辑:link 找到解决方案,从python的角度解释得很好。从 C 编程的角度来看,这个 answer很好地解释了我的问题。

最佳答案

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

对于 C,a > b > c 是从左到右计算的。没有“运算符链接”的概念(我稍后会介绍),因此表达式的计算结果为 (a > b) > c ,即 1 > cfalse(在 C 语言中,逻辑表达式返回 1 或 0)。

在 python 中,OTOH,a > b > c 计算结果为 a > b 和 b > c(如 documentation 中关于比较的指定),这将变成在这种情况下,结果为True

关于python - 条件语句在不同的语言中表现不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52523652/

相关文章:

python - 如何切片 numpy 数组,使每个切片成为一个新数组

c - 试图理解一个递归函数来反转一个字符串

c - 在系统函数中调用 OpenCV 捕获代码时卡住

python - virtualenv 和 'python -S' 问题

python - iter(fp.readline, '' ) 中的行而不是 fp : 中的行

python - 运行 manage.py 测试时 django.contrib.messages.tests 中的虚假故障

python c 扩展,mac os 上的 dlopen 问题

c++ - 逗号作为变量初始化中的分隔符(不是作为运算符)

c - 有没有办法检测到 TCP 套接字已被远程对等方关闭,而无需从中读取?

c - C 中的指针。函数行为不当