请问我这段代码哪有问题,无论我输入什么年份,结果都显示 不是闰年,题目的提示在注释里

来源:2-12 编程练习

TeacherZhe

2020-02-29 12:19:58

http://img.mukewang.com/climg/5e59e63d09ca1c6205010585.jpg

#定义变量year,并接收“请输入正确的年份:”
year = input("请输入正确的年份:")
#判断是否是闰年:1、能被4整除,但是不能被100整除的年份 2、能被400整除的年份
if type(int(year)/4) == int and type(int(year)/100) == float or type(int(year)/400) == int:
    print("{0}年是闰年".format(year))
else:
    print("{0}年不是闰年".format(year))


写回答

2回答

Vess_ji

2020-02-29

为什么要用结果的数据类型来进行判断呢?

能被4整除表示余数为0

不能被100整除表示余数不为0

能被400整除表示余数为0

那判断的时候直接用:if int(year) % 4 == 0 and int(year) % 100 != 0 or int(year) % 400 == 0

这样不就可以正常得出结果了嘛

学习编程,语言只是一个工具、一种载体,最主要的是编程思想

1
hess_ji
回复
heacherZhe
h /这个符号在老师的课件中,全称叫浮点数除法,也就是说,type(int(year)/4)无论你的year是什么数字,得到的结果都是float浮点型,不可能存在整型的情况,你可以随便换个数字测试一下就知道了
h020-03-01
共2条回复

好帮手乔木

2020-03-02

同学你好:

同学可以采纳Vess_ji同学的回答,使用/符号得到的数字类型是浮点型,因此同学无法使用type进行判断。

http://img.mukewang.com/climg/5e5c6cd609aa403302520217.jpg

如果我解决了同学的问题,请采纳!学习愉快^_^。

1

0 学习 · 8160 问题

查看课程