第一版005讲的一个课后作业(
s = input('请输入一个年份:')while not s.isdigit():
print('抱歉,您的输入有误,请输入一个整数:')
year = int(s)
if year/400 ==int(year/400):
print(s + '是闰年')
else:
if(year/4 ==int(year/4)) and (year/100 !=int(year/100)):
print(s+ '是闰年')
else:
print(s + '不是闰年')
最后这个else为什么和上一个if是同一个缩进?为什么第一个if year/400 ==int(year/400):
print(s + '是闰年') 后面不需要跟上如果不是的话print不是闰年?或者说最后这个else是包括前两个if的,那么为什么不应该跟第一个if是同一个缩进呢
就是if else的缩进有点不明白,有人告诉我用elif,但是还没学到elif,想按这个思考。。。
总结就是这个else的运行条件,它的位置有点不明白 /代表的是浮点除法 wp231957 发表于 2020-2-13 11:36
/代表的是浮点除法
为什么最后一个else明明是两个条件都不符合才输出,却只跟第二个if缩进? 为什么最后一个else明明是两个条件都不符合才输出,却只跟第二个if缩进? JocelynYang 发表于 2020-2-13 11:40
为什么最后一个else明明是两个条件都不符合才输出,却只跟第二个if缩进?
不明白啥是浮点数吗,浮点数不存在==的比较
所以你的代码从头到尾都是错的 wp231957 发表于 2020-2-13 11:58
不明白啥是浮点数吗,浮点数不存在==的比较
所以你的代码从头到尾都是错的
可。。。这个代码是小甲鱼作业里的答案,运行也没有问题啊。。。 JocelynYang 发表于 2020-2-13 12:00
可。。。这个代码是小甲鱼作业里的答案,运行也没有问题啊。。。
判断闰年,一般都用取模运算
比如,要判断3是不是奇数,只要看3%2是否等于1 你的逻辑思路说实话完全没有跟着代码走才会不理解吧。。。
第一个else就已经是如果year不能被400整除的话就执行else下面的判断,那么else下面的if同一缩进的else在逻辑上就已经等同于两个if条件都不满足的情况下所执行的代码了 本帖最后由 Judie 于 2020-2-13 00:18 编辑
来 给你解释的明明白白
#1. 写一个程序,判断给定年份是否为闰年。
#这样定义闰年的:能被4整除但不能被100整除,或者能被400整除都是闰年。
temp = input('请输入一个年份:')
while not temp.isdigit():
temp = input("抱歉,您的输入有误,请输入一个整数:")
year = int(temp)
if year/400 == int(year/400): #if1 如果能被400整数 【/ 除】【int() 整型/整数】
print(temp + ' 是闰年!')
else: #else1对着if1 即 如果不能被400整除
if (year/4 == int(year/4)) and (year/100 != int(year/100)): #if2 如果能被4整除 并且 不能被100整除
print(temp + ' 是闰年!') #else1 + if2 不被400整除 被4整除 不被100整除 -》 打印 是闰年
else: #else2 对着if2 不能被4整数 或者 能被100 整除 即 不能满足(能被4整除但又不被100整除)
print(temp + ' 不是闰年!') #else1 + else2 不能被400整除 但又不满足(能被4整数但不被100整除)-》打印不是闰年
Judie 发表于 2020-2-13 13:17
来 给你解释的明明白白
感谢大佬 因为是新手所以感觉很多东西无法理解。。。这下看明白了!! Hoiste 发表于 2020-2-13 12:38
你的逻辑思路说实话完全没有跟着代码走才会不理解吧。。。
第一个else就已经是如果year不能被400整除的话 ...
感谢感谢! JocelynYang 发表于 2020-2-13 04:58
感谢大佬 因为是新手所以感觉很多东西无法理解。。。这下看明白了!!
哈啊哈 不用谢不用谢
也谢谢你的最佳答案嗷
{:10_279:}
页:
[1]