python - 条件语句在不同语言中的行为不同
问题描述
在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 编程的角度来看,这个答案很好地解释了我的问题。
解决方案
它们的行为不同,因为这就是语言的实现方式。
使用 C,a > b > c
从左到右进行评估。没有“运算符链接”的概念(我很快就会谈到),所以表达式被评估为(a > b) > c
哪个是1 > c
哪个false
(在 C 中,逻辑表达式返回 1 或 0)。
在 python 中,OTOH 的a > b > c
计算结果为a > b and b > c
(如比较文档中所指定),结果True
在这种情况下。
推荐阅读
- android - React Native android 应用程序在一部手机上运行,但在另一部手机上崩溃(通过谷歌 Play 商店生产)
- javascript - 如何使用填充滚动到元素顶部?
- typescript - DefinitiveTyped 上的 NodeJS 定义可能发生重大变化
- c - C 表达式必须是可修改的值
- reactjs - 在一个类中反应js异步函数
- azure - 发布为 Azure Webjob 在发布时始终强制使用任何 CPU - 即使设置为 x64
- python - 使用python从文本文件中删除行
- c# - 干净地分析和处理整数
- r - 如何在 r markdown 中指定自定义的纸张尺寸
- javascript - 按路径访问嵌套属性