我正在编写一个Python代码,用于确定一年是否是闰年。我认为我的算法很好,但我的代码的结果并不理想。
def isLeapYear(n):
if n % 400 == 0:
print ("The year", n, "is a leap year:")
return True
if n % 100 == 0:
print ("The year", n, "is a leap year:")
return False
if n % 4 == 0:
print ("The year", n, "is a leap year:")
return True
else:
print ("The year", n, "is a leap year:")
return False
isLeapYear(2000)
如果代码运行,结果如下:
runfile('C:/Users/username/Desktop/isLeapYear.py',
wdir='C:/Users/username/Desktop')
The year 2000 is a leap year
第一个问题是我不明白为什么显示runfile文件路径。其次,我希望我的代码输出该语句是True还是False。理想情况下,我正在寻找:
The year 2000 is a leap year: True
我觉得值得注意的是,作为一个潜在的答案,如果没有用于确定年份是闰年的所有代码,那么这个功能就是为了这个目的:
import calendar
print calendar.isleap(1900)
作为使用calendar
模块的替代方法,您可以以更简单的方式编写它,这将返回Bool(True / False):
def is_leap_year(year):
"""Determine whether a year is a leap year."""
return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
你得到你想要的输出的原因是当你说
“我希望我的代码能输出该语句是True还是'False。”
你没有指定你想要的输出。现在,您的代码将print
语句与return
语句混合在一起。如果将所有return
语句更改为print
语句,则将打印该函数
The year 2000 is a leap year:
True
在你的终端。