鱼C论坛

 找回密码
 立即注册
查看: 1430|回复: 14

[已解决]第005讲求闰年小程序的问题求助

[复制链接]
发表于 2020-3-6 08:56:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
大神好,该程序运行出来无论输入什么年份结果都输出平年,不知道哪里出了问题,恳请赐教,谢谢。
temp=input('请输入一个年份:')
a=int(temp)
b=a/4
c=a/100
if (isinstance(b,int)) and (not isinstance(c,int)):
    print('该年份是闰年')
else:
    print('该年份是平年')
    
最佳答案
2020-3-6 09:27:22
medoc 发表于 2020-3-6 09:21
我的思路是如果有余数,那求商的结果就不是整型,不知道这种思路对不对

你的思路是对的,不过需要改一下,改成这样:
temp = input('请输入一个年份:')
a = int(temp)
b = int(a/4)
c = int(a/100)
d = int(a/400)
if b == a / 4 and not c == a / 100 or d == a / 400:
    print('该年份是闰年')
else:
    print('该年份是平年')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-6 08:59:35 | 显示全部楼层
本帖最后由 qiuyouzhi 于 2020-3-6 10:22 编辑

代码思路有误,应是求余数
temp=input('请输入一个年份:')
a=int(temp)

if a % 400 == 0 or (a % 100 != 0 and a % 4 == 0):
    print("YES!")
else:
    print("NO!")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-6 09:15:12 | 显示全部楼层
你这是求商而不是求余数啊。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-6 09:16:55 | 显示全部楼层
qiuyouzhi 发表于 2020-3-6 08:59
代码思路有误,应是求余数

感谢大神赐教!但还是有点不明白,我的代码中如果结果有余数,那not isinstance(c,int)的结果应该是true,按理也是可以执行下去的,这样想对吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-6 09:21:15 | 显示全部楼层
medoc 发表于 2020-3-6 09:16
感谢大神赐教!但还是有点不明白,我的代码中如果结果有余数,那not isinstance(c,int)的结果应该是true ...

python 除出来的结果永远是浮点型
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-3-6 09:21:37 | 显示全部楼层
墨羽岚 发表于 2020-3-6 09:15
你这是求商而不是求余数啊。。。

我的思路是如果有余数,那求商的结果就不是整型,不知道这种思路对不对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-6 09:22:06 | 显示全部楼层
medoc 发表于 2020-3-6 09:16
感谢大神赐教!但还是有点不明白,我的代码中如果结果有余数,那not isinstance(c,int)的结果应该是true ...

除非用//地板除法,否则
Python除法的结果永远都是浮点数(5.0等等)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-6 09:24:25 | 显示全部楼层
medoc 发表于 2020-3-6 09:21
我的思路是如果有余数,那求商的结果就不是整型,不知道这种思路对不对

10/5=2.0
3/2=1.5
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-6 09:26:54 | 显示全部楼层
一个账号 发表于 2020-3-6 09:21
python 除出来的结果永远是浮点型

噢,原来如此!谢谢你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-6 09:27:22 | 显示全部楼层    本楼为最佳答案   
medoc 发表于 2020-3-6 09:21
我的思路是如果有余数,那求商的结果就不是整型,不知道这种思路对不对

你的思路是对的,不过需要改一下,改成这样:
temp = input('请输入一个年份:')
a = int(temp)
b = int(a/4)
c = int(a/100)
d = int(a/400)
if b == a / 4 and not c == a / 100 or d == a / 400:
    print('该年份是闰年')
else:
    print('该年份是平年')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-6 09:27:29 | 显示全部楼层

明白了!原来是浮点型,谢谢你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-6 09:34:15 | 显示全部楼层
一个账号 发表于 2020-3-6 09:27
你的思路是对的,不过需要改一下,改成这样:

好的,明白了,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-6 09:36:04 | 显示全部楼层
qiuyouzhi 发表于 2020-3-6 09:22
除非用//地板除法,否则
Python除法的结果永远都是浮点数(5.0等等)

好的,非常感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-6 10:21:06 | 显示全部楼层
qiuyouzhi 发表于 2020-3-6 08:59
代码思路有误,应是求余数

小错误:
if a % 400 == 0 or (a % 100 == 0 and a % 4 == 0):
应该为:
if a % 400 == 0 or (a % 100 != 0 and a % 4 == 0):
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-6 10:22:54 | 显示全部楼层
物火卿腾 发表于 2020-3-6 10:21
小错误:
if a % 400 == 0 or (a % 100 == 0 and a % 4 == 0):
应该为:

谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 01:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表