【问题标题】:Conditional statement behave different in different language [duplicate]条件语句在不同语言中的行为不同[重复]
【发布时间】:2018-09-26 17:59:40
【问题描述】:

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

【问题讨论】:

  • C和Python书籍可以讲解。这是两种不同的语言,具有不同的语法和规则。
  • 同一个问题的另一种格式:为什么这个sn-p不能在汇编中编译?
  • C 和 Python 是 非常 不同的语言,具有非常不同的规则。不要假设 any 运算符在两种语言之间的行为方式相同。

标签: python c


【解决方案1】:

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

使用 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

【讨论】:

    猜你喜欢
    • 2014-10-20
    • 2012-05-03
    • 1970-01-01
    • 2022-11-16
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 1970-01-01
    相关资源
    最近更新 更多