所以我当前正在尝试创建一个函数,当您输入特定的年份和Calendar.isleap(year)时,它将处理该年份是真还是假的leap年。
我的问题是,我似乎无法找出一个函数,该函数将确定年份输入是否为True或False,然后将输出该年份以及字符串。我创建并尝试使用的示例如下:
import calendar
def leap_year():
year = calendar.isleap(year)
if calendar.isleap == True:
print(year + 'is a leap year')
else:
print(year + 'is not a leap year')
year = 2016
leap_year()
在此方面的任何帮助将不胜感激。谢谢
答案 0 :(得分:0)
如果年份是a年,则isleap()
方法返回True
,否则返回False
。
import calendar
print(calendar.isleap(2016))
答案 1 :(得分:0)
进行一些更改,您需要将year传递给函数,并在函数中使用“ year”作为变量,然后在打印时将year转换为字符串。
import calendar
def leap_year(year):
if calendar.isleap(year) == True:
print(str(year) + ' is a leap year')
else:
print(str(year) + ' is not a leap year')
leap_year(2016)
答案 2 :(得分:0)
代码可能是
def leap_year(check_year):
if ((check_year%4==0)and not(check_year%100==0))or (check_year%400==0) :
print(str(year) + 'is a leap year')
else:
print(str(year) + 'is not a leap year')
year = 2016
leap_year(year)
答案 3 :(得分:0)
您的代码有几个问题。首先,您的函数创建一个名为year
的新 local 变量,该变量遮盖了全局变量。由于名称查找的工作原理,您无法将全局变量year
传递给calendar.isleap
并将结果分配给局部变量。为本地变量使用其他名称。其次,您要查看calendar.isleap
的 result 是否为True
,而不是函数本身。在表达式中使用新的本地变量。
def leap_year():
result = calendar.isleap(year)
if result == True:
print(str(year) + 'is a leap year')
else:
print(str(year) + 'is not a leap year')
就样式而言,请勿将布尔变量与布尔常量进行比较;只需直接测试变量:
if result:
print(year + 'is a leap year')
这意味着您甚至不需要局部变量;只需直接在if
语句中使用函数调用即可:
def leap_year():
if calendar.isleap(year):
print(year + 'is a leap year')
else:
print(year + 'is not a leap year')
最后,在此处使用全局变量是不好的风格。取而代之的是,将它们传递给leap_year
作为参数的年份。
def leap_year(y):
if calendar.isleap(y):
print(str(y) + 'is a leap year')
else:
print(str(y) + 'is not a leap year')
year = 2016
leap_year(year) # Or simply leap_year(2016)