于熙顿 发表于 2021-8-4 13:00:28

新手求助

Jack = 35
if Jack < 44:
    print("青年人")
if Jack > 44 and Jack < 60:
    print("中年人")
if Jack > 60 and Jack < 95:
    print("老年人")
else:
    print("长寿老人")
为什么这段代码的输出结果是青年人和长寿老人?

wp231957 发表于 2021-8-4 13:03:28

为什么不是呢

青出于蓝 发表于 2021-8-4 13:17:05

Jack = 35
if Jack < 44:
    print("青年人")
elif Jack > 44 and Jack < 60:
    print("中年人")
elif Jack > 60 and Jack < 95:
    print("老年人")
else:
    print("长寿老人")

basketmn 发表于 2021-8-4 13:17:48

if是顺序执行,执行完第一个,执行第二个,直到最后一个if不满足,执行else
换成elif就好了

青出于蓝 发表于 2021-8-4 13:18:02

lz写的代码是3个判断,应该写成1个。
第4行和第6行应该吧if改为elif。这样就是一个判断了
欢迎追问~

大马强 发表于 2021-8-4 13:23:07

这里面有三个 if和一个else
python中的else是就近原则,所以else与最后一个if配对
三个if都独立判断,而最后那个在条件不满足时执行else,就这个代码来说,最少都有一个输出结果

于熙顿 发表于 2021-8-4 14:42:15

青出于蓝 发表于 2021-8-4 13:18
lz写的代码是3个判断,应该写成1个。
第4行和第6行应该吧if改为elif。这样就是一个判断了
欢迎追问~

是不是elif可以多次使用而算成一个判断,if用几次就算几次判断

于熙顿 发表于 2021-8-4 14:48:03

大马强 发表于 2021-8-4 13:23
这里面有三个 if和一个else
python中的else是就近原则,所以else与最后一个if配对
三个if都独立判断,而 ...

明白了 谢谢

于熙顿 发表于 2021-8-4 14:49:45

大马强 发表于 2021-8-4 13:23
这里面有三个 if和一个else
python中的else是就近原则,所以else与最后一个if配对
三个if都独立判断,而 ...

Python的指令都遵循就近原则的情况吗?

大马强 发表于 2021-8-4 14:51:42

问题解决的话,请设置一下最佳答案
页: [1]
查看完整版本: 新手求助