Python函数返回True / False

问题描述 投票:-1回答:2

我正在编写一个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
python function return anaconda leap-year
2个回答
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
投票

你得到你想要的输出的原因是当你说

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

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

The year 2000 is a leap year: 
True

在你的终端。

© www.soinside.com 2019 - 2024. All rights reserved.