课后作业005讲动动手第二题判断闰年提问
参考答案是我写的代码是:
temp = input('请输入一个年份:')
year = int(temp)
t = year/4
n = year/100
i = year/400
if(isinstance(i,int)==1):
print(temp+'是闰年')
else:
if(isinstance(t,int)==1)and(isinstance(n,int)!=1):
print(temp+'是闰年')
else:
print(temp+'不是闰年')
我的程序if语句都判断不了,最后只能输出“不是闰年”
是我的想法出了问题还是语法用错了 本帖最后由 Twilight6 于 2020-6-10 21:54 编辑
Python 中除法返回的永远是 float 类型 不可能是整型,你要判断整除就只能使用求余运算符 %
temp = input('请输入一个年份:')
year = int(temp)
t = year%4
n = year%100
i = year%400
if i==0 :
print(temp+'是闰年')
else:
if t==0 and n != 0:
print(temp+'是闰年')
else:
print(temp+'不是闰年')
isinstance返回是浮点不是整数,永远不可能相等…… Twilight6 发表于 2020-6-10 21:52
Python 中除法返回的永远是 float 类型 不可能是整型,你要判断整除就只能使用求余运算符 %
学到了~谢谢老哥 灿烂的小雏菊 发表于 2020-6-10 22:09
学到了~谢谢老哥
客气~ Twilight6 发表于 2020-6-10 22:11
客气~
哥,突然还有一个问题
如果除法返回的永远是float型,那参考答案里 if(year/4 == int ( year / 4 ) ),float型跟int型可以相等? 灿烂的小雏菊 发表于 2020-6-10 22:42
哥,突然还有一个问题
如果除法返回的永远是float型,那参考答案里 if(year/4 == int ( year / 4 ) ) ...
浮点数 1.0 和 1 是相等的 类型是不等的 一个是 float 一个是 int
页:
[1]