我的py3闰年代码有什么问题?

2024-06-08 03:35:11 发布

您现在位置:Python中文网/ 问答频道 /正文

问题是:

我们几乎每四年在2月29日增加一次闰日。闰日是额外的一天,或者说闰日,我们把它加到一年中最短的月份二月里。 在公历中,确定闰年必须考虑三个标准:

年份可以平均除以4,为闰年,除非: 年份可以平均除以100,它不是闰年,除非: 这一年也可以被400整除。那就是闰年了。 这意味着在公历中,2000年和2400年是闰年,而1800年、1900年、2100年、2200年、2300年和2500年不是闰年

这是我在python 3中编写的代码

def is_leap(year):
leap = False

# Write your logic here
if((year%4==0) |(year%100==0 & year%400==0)):
    leap= True
else:
    leap= False

return leap

year = int(input()) print(is_leap(year))

对于输入2100,此代码失败。我不能指出错误。请帮忙


Tags: 代码falseyour标准ifhereisdef
2条回答

试试这个:

def leap_year(n):
    if (n%100==0 and n%400==0):
        return True
    elif (n%4==0 and n%100!=0):
        return True
    else:
        return False

首先,您使用的是位运算符|&(您可以在此处阅读-https://www.educative.io/edpresso/what-are-bitwise-operators-in-python),但需要使用逻辑运算符,例如

此外,您的代码还可以简化:

def is_leap(year):
    return (year % 4 == 0) and ((year % 100 != 0) or (year % 400 == 0))

相关问题 更多 >

    热门问题