鱼C论坛

 找回密码
 立即注册
查看: 2151|回复: 4

0基础入门学习Python课后练习,用isinstance出错

[复制链接]
发表于 2017-6-23 15:53:42 | 显示全部楼层 |阅读模式

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

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

x
求助,以下代码,随便怎么输入,都显示不是闰年。
isinstance如果判断为True,if 条件不是应该要执行的么?请大神指教 。
temp=input('请输入年份:')
while not temp.isdigit ():
    temp=input('抱歉,您的输入有误,请输入一个整数:')
year=int(temp)
if isinstance((year/4),int):
    print(temp + '是闰年')
else:
    print(temp +'不是闰年' )
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-23 15:58:06 | 显示全部楼层
请用地板除,否则出来的都是float
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-23 15:59:51 | 显示全部楼层
给你看个例子,你就会明白
year = 2004
b = year/4
print(b)
>>>501.0

看到没,b不管能不能整除,都是一个浮点数的格式,所以你的这个判断一直都是否
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-23 16:05:57 | 显示全部楼层
ooxx7788 发表于 2017-6-23 15:58
请用地板除,否则出来的都是float

他的目的不是为了得到一个整数,而是为了判断年份能不能被4整除,所以用地板除没有意义
解决他问题的方式应该是去判断year%4是不是等于0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-23 16:08:57 | 显示全部楼层
本帖最后由 gopythoner 于 2017-6-23 16:10 编辑

把你的判断条件改成这样if year%4 ==0:
不过,你是不是忘了润年的另一个条件?
在能被100整除的年份中,又同时能被400整除的年份才是闰年
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-21 04:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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