Python函数返回True / False

时间:2018-03-06 16:33:44

标签: python function return anaconda leap-year

我正在编写一个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

2 个答案:

答案 0 :(得分:2)

我觉得值得注意的是,作为一个潜在的答案,如果没有用于确定年份是否为闰年的所有代码,那么就有一个功能用于此目的:

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)

答案 1 :(得分:1)

您没有获得所需输出的原因是当您说

  

"我希望我的代码能输出语句是True还是'False。"

您没有指定您希望输出的方式。现在,您的代码将print语句与return语句混合在一起。如果您将所有return语句更改为print语句,则该函数将打印

The year 2000 is a leap year: 
True

在您的终端。