零基础学python-005讲课后练习-动动手
判断给定年份是否为闰年的代码:temp = input('请输入一个年份:')
while not temp.isdigit():
temp = input("抱歉,您的输入有误,请输入一个整数:")
year = int(temp)
if year/400 == int(year/400):
print(temp + ' 是闰年!')
else:
if (year/4 == int(year/4)) and (year/100 != int(year/100)):
print(temp + ' 是闰年!')
else:
print(temp + ' 不是闰年!')
请问年份的格式是不是需要界定一下?我输入000,程序也能继续
temp = input('请输入一个年份:')
while not temp.isdigit() or int(temp) == 0: # 那就限制下呗
temp = input("抱歉,您的输入有误,请输入一个大于零的整数:")
year = int(temp)
if year/400 == int(year/400):
print(temp + ' 是闰年!')
else:
if (year/4 == int(year/4)) and (year/100 != int(year/100)):
print(temp + ' 是闰年!')
else:
print(temp + ' 不是闰年!') 本帖最后由 liuzhengyuan 于 2020-5-13 21:27 编辑
加一个 if int(temp) <= 0
但是问题是 0 年 也是一个正确的年份呀! >=公元前6世纪(春秋中叶) 公元元年实际上也算吧 不用忘了人类历史了喂{:10_250:} 字符串 '000' 也能正常转化为整型 0 :
>>> int('000')
0 如下:
temp = input('请输入一个年份:')
while 1 :
while not temp.isdigit():
temp = input("抱歉,您的输入有误,请输入一个整数:")
if int(temp) == 0:
temp = input("抱歉,您的输入有误,请输入一个大于零的整数:")
elif int(temp) >=0:
break
year = int(temp)
if year/400 == int(year/400):
print(temp + ' 是闰年!')
else:
if (year/4 == int(year/4)) and (year/100 != int(year/100)):
print(temp + ' 是闰年!')
else:
print(temp + ' 不是闰年!')
---------------------------------------------------------------------------------
公元元年不也是一年吗? 也是哦~~谢谢各位的回答
页:
[1]