骨小梁 发表于 2020-5-13 21:09:51

零基础学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,程序也能继续

Twilight6 发表于 2020-5-13 21:15:23


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:23:08

本帖最后由 liuzhengyuan 于 2020-5-13 21:27 编辑

加一个 if int(temp) <= 0
但是问题是 0 年 也是一个正确的年份呀!

均昊山 发表于 2020-5-13 21:26:02

>=公元前6世纪(春秋中叶)

沐羽尘 发表于 2020-5-13 22:56:48

公元元年实际上也算吧 不用忘了人类历史了喂{:10_250:}

zltzlt 发表于 2020-5-14 08:00:53

字符串 '000' 也能正常转化为整型 0 :

>>> int('000')
0

宋恺 发表于 2020-5-14 11:01:13

如下:
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 + ' 不是闰年!')

---------------------------------------------------------------------------------
公元元年不也是一年吗?

骨小梁 发表于 2020-5-15 23:54:55

也是哦~~谢谢各位的回答
页: [1]
查看完整版本: 零基础学python-005讲课后练习-动动手