Python课后作业 5 (闰年)
def year(x):res=x/4
a=isinstance(res,int)
if a == True:
print(x,'是闰年')
elif a != True:
print(x,'不是闰年')
year(2000)
这串代码有些问题,因为x/4的结果就算是整数也会带上小数点,比如2000/4=500.0。希望能在代码上改进一下,去除这个问题。 本帖最后由 XiaoPaiShen 于 2020-3-25 06:03 编辑
你写的闰年的定义不对,我只是按你的思路改了一下
def year(x):
res=x%4
if res == 0:
print(x,'是闰年')
else:
print(x,'不是闰年')
year(2000)
正确代码如下:
def leap_year(year):
if (year%4 == 0) & (year%100 != 0):
print("%d年是闰年" % year)
elif year%400 == 0:
print("'%d'年是闰年" % year)
else:
print("'%d'不年是闰年" % year)
leap_year(2000) python中默认的 / 返回的都是float,所以你的代码永远不会输出是闰年 Python 中除法的结果总是小数,所以需要用取余运算判断
def year(x):
if (x % 4 == 0) and (x % 100 != 0):
print("%d 年是闰年" % year)
elif x % 400 == 0:
print("%d 年是闰年" % year)
else:
print("%d 年不是闰年" % year) / 除返回的值总是float型的, 永远不满足int. 要么你用% 取余数为0,就好了 XiaoPaiShen 发表于 2020-3-25 05:58
你写的闰年的定义不对,我只是按你的思路改了一下
非常感谢
sunhaonan94 发表于 2020-3-31 04:10
非常感谢
请选择最佳答案,结贴
页:
[1]