gpt4 book ai didi

Python只执行一个if语句

转载 作者:行者123 更新时间:2023-11-30 23:05:06 24 4
gpt4 key购买 nike

我对 python 和一般编程非常陌生,所以如果答案很明显,请原谅。我正在尝试编写一个程序来告诉您多年来复活节是哪一天。我的 if 语句遇到问题。如果年份是第一个 if 语句中指定的年份之一,则即使 day > 31,也不会执行第二个 if 语句。

year = int(input('Input a year: '))
a = year % 19
b = year % 4
c = year % 7
d = (19 * a + 24) % 30
e = (2 * b + 4 * c + 6 * d + 5) % 7

day = 22 + d + e

month = 'March'

if year == 1954 or year == 1981 or year == 2049 or year == 2076:
day = day + 7

if day > 31:
day = day - 31
month = 'April'

print('Easter is on', month, day)

最佳答案

它正在执行第二个 if 语句。

您是否考虑过一天会有多长?

例如,如果年份 == 2049,则:

a = 16
b = 1
c = 5
d = 28
e = 6

这会导致对天 day = 22+d+e 进行初始分配以设置 day = 56。在第一个 if 中,它被设置为 63

63-31 = 32,这就是您得到的结果? (与“四月”一起表示月份,表明它一直在到达 if 语句)

因此,您可能误解了用于确定复活节日期的算法,并且没有正确实现它。

关于Python只执行一个if语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33359810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com