rsym 发表于 2022-7-11 20:16:51

请问,为什么会有两句呢?

不理解,请赐教

风车呼呼呼 发表于 2022-7-11 20:19:51

你这2个if,1个else。从上往下,第一个 if 不论是否满足,第二个 if 也会判断一遍

临时号 发表于 2022-7-11 20:35:59

在第一个if判断完后,任然会进第二个判断
所以代码应该改成这样
temp = input()
x =int(temp)

if x % 4 == 0 and x % 100 != 0:
    print("是普通闰年")
elif x % 4 == 0 and x % 100 == 0:
    print("是世纪闰年")
else:
    print("不是闰年")

rsym 发表于 2022-7-11 20:48:35

临时号 发表于 2022-7-11 20:35
在第一个if判断完后,任然会进第二个判断
所以代码应该改成这样

那第三个else是如何判断的呢?

临时号 发表于 2022-7-11 20:54:56

rsym 发表于 2022-7-11 20:48
那第三个else是如何判断的呢?

当年份不是世纪闰年的时候就进else

青出于蓝 发表于 2022-7-11 21:27:01

https://fishc.com.cn/forum.php?mod=viewthread&tid=200161&ctid=1921

ExiaGN001 发表于 2022-7-12 06:45:54


if x % 4 ==0 and x % 100 == 0:
    print("是世纪闰年")
改成
elif x % 4 ==0 and x % 100 == 0:
    print("是世纪闰年")


就行了
加油呀

ExiaGN001 发表于 2022-7-12 06:47:24

本帖最后由 ExiaGN001 于 2022-7-12 18:38 编辑

rsym 发表于 2022-7-11 20:48
那第三个else是如何判断的呢?

只要x%4==0 and x%100!=0成立(表达式值为1)
那么就会执行print("是普通闰年")

其次判断
x%4==0 and x%100==0是否成立(表达式值为1)
如果成立,那么就会执行print("是世纪闰年")

否则 """x%4==0 and x%100==0不成立(表达式值为0)
那么就会跳转到else部分,不做其它条件判断,执行print("不是闰年")

rsym 发表于 2022-7-12 18:03:42

ExiaGN001 发表于 2022-7-12 06:47
只要x%4==0 and x%100!=0成立(表达式值为1)
那么就会执行print("是普通闰年")



明白了,谢谢您

rsym 发表于 2022-7-12 18:05:25

临时号 发表于 2022-7-11 20:54
当年份不是世纪闰年的时候就进else

谢谢您

rsym 发表于 2022-7-12 18:06:01

风车呼呼呼 发表于 2022-7-11 20:19
你这2个if,1个else。从上往下,第一个 if 不论是否满足,第二个 if 也会判断一遍

明白了,谢谢您
页: [1]
查看完整版本: 请问,为什么会有两句呢?