鱼尾纹888 发表于 2021-7-12 16:50:46

零基础入门学习Python第005将动动手001闰年

temp = input('请输入一个年份:')
year = int(temp)
a = year/4
b = year/100
c = year/400
ifisinstance(c,int):
    print(temp+'是闰年')
else:
    if isinstance(a,int) and (not isinstance(b,int)):
      print(temp+'是闰年')
    else:
      print(temp+'是平年')

以上程序问题出在哪,所有数字均为平年呢?

qiuyouzhi 发表于 2021-7-12 16:54:31

除法返回的一定是小数,可以改成地板除:
temp = input('请输入一个年份:')
year = int(temp)
a = year//4
b = year//100
c = year//400
ifisinstance(c,int):
    print(temp+'是闰年')
else:
    if isinstance(a,int) and (not isinstance(b,int)):
      print(temp+'是闰年')
    else:
      print(temp+'是平年')

灰晨 发表于 2021-7-12 18:24:26

a = year/4
b = year/100
c = year/400
这三个算出来的结果全是浮点数,isinstance(c,int)判断全是false
这里建议用%取模(取余)来判断,不要用isinstance()
a = year%4
b = year%100
c = year%400
等于0就是能整除,反之,不能

Twilight6 发表于 2021-7-12 18:57:39



看下方帖子, 就知道错在哪了:

[已解决] 求助课后题:判断给定年份是否为闰年?
https://fishc.com.cn/thread-198636-1-1.html
(出处: 鱼C论坛)

鱼尾纹888 发表于 2021-7-12 20:42:09

灰晨 发表于 2021-7-12 18:24
a = year/4
b = year/100
c = year/400


谢谢呀

鱼尾纹888 发表于 2021-7-12 20:43:15

qiuyouzhi 发表于 2021-7-12 16:54
除法返回的一定是小数,可以改成地板除:

谢谢呀

qiuyouzhi 发表于 2021-7-13 11:51:28

鱼尾纹888 发表于 2021-7-12 20:43
谢谢呀

如果问题已解决,请设置【最佳答案】
页: [1]
查看完整版本: 零基础入门学习Python第005将动动手001闰年