shark8890 发表于 2021-10-11 11:17:09

判断三个数中最大值

本帖最后由 shark8890 于 2021-10-11 11:35 编辑

判断三个数中谁最大,居然可以这样写?这样的算法好像不合逻辑啊?
a=3
b=4
c=1
if(a>b>c):
    print("a is max",a)
elif(b>a>c):
    print("b is max",b)
else:
    print("c is max",c)

================ RESTART: C:/Users/admin/Desktop/python/test.py ================
b is max 4
这种a>b>c在C语言中好像不能这样写表达式吧?

C语言这样写,输出的是c is max
#include <stdio.h>
main(){
int a=3,b=2,c=1;
if(a>b>c)
{
        printf("a is max");
}
if(b>a>c)
{
    printf("b is max");
}
else
{ printf("c is max");}
}

z5560636 发表于 2021-10-11 11:19:59

很多语言都支持这种写法,不要被语法迷惑,其实底层还不是和C语言一样的实现原理。

傻眼貓咪 发表于 2021-10-11 11:28:16

只要明白程序语言当中的原理,你想怎样写都可以(很多书上没有教的,书上只是基础原理)

傻眼貓咪 发表于 2021-10-11 11:43:49

本帖最后由 傻眼貓咪 于 2021-10-11 11:46 编辑

c 语言属於编译语言

范例:
if(a > b > c) 如同 if((a > b) > c)
假设 a > b 为真(1)
那么 if((a > b) > c) 如同 if(1 > c)

而 Python 属於直译语言,这是两者不同之处,Python 比较人性化

范例:
if a > b > c 如同 if (a > b) and (b > c)

shark8890 发表于 2021-10-11 12:35:03

傻眼貓咪 发表于 2021-10-11 11:43
c 语言属於编译语言

范例:


感谢回复,这个回复解答了我的疑惑。
这个是否可以等同理解为,c是编译型语言,而python是解释型语言呢?

傻眼貓咪 发表于 2021-10-11 12:42:52

编译型其实就是系统会将代码先全部看过一遍,确定没有错,然后执行
而解释型则是就算下面有错,系统还是会执行上面没有错的部分(可以说是走一步看一步)

shark8890 发表于 2021-10-11 12:52:12

傻眼貓咪 发表于 2021-10-11 12:42
编译型其实就是系统会将代码先全部看过一遍,确定没有错,然后执行
而解释型则是就算下面有错,系统还是会 ...

if(a > b > c) 如同 if((a > b) > c)
假设 a > b 为真(1)
那么 if((a > b) > c) 如同 if(1 > c)

而 Python 属於直译语言,这是两者不同之处,Python 比较人性化

范例:
if a > b > c 如同 if (a > b) and (b > c)

那和您说的这个是有关联的吗?c语言和python对于a>b>c的不同处理方式

傻眼貓咪 发表于 2021-10-11 13:32:16

shark8890 发表于 2021-10-11 12:52
if(a > b > c) 如同 if((a > b) > c)
假设 a > b 为真(1)
那么 if((a > b) > c) 如同 if(1 > c)


抱歉,没有直接关联,只是多介绍两者程序差别{:5_105:}
页: [1]
查看完整版本: 判断三个数中最大值