求大神解答
temp = input('请输入一个年份:')while not temp.isdigit():
temp = input("抱歉,您的输入有误,请输入一个整数:")
year = int(temp)
if year/400 == int(year/400):
print(temp + ' 是闰年!')
else:
if (year/4 == int(year/4)) and (year/100 != int(year/100)):
print(temp + ' 是闰年!')
else:
print(temp + ' 不是闰年!')
不懂if year/400 == int(year/400):和if (year/4 == int(year/4)) and (year/100 != int(year/100)):是干嘛的???
是判断能不能整除的呀
year/400 == int(year/400),若不能整除,则前后不相等
闰年的条件就是能被400整除,或者能被4整除但不能被100整除
其他的都是平年 如果有余数,那么除法的返回会是:
>>> 400 / 6
66.66666666666667
不是66.0,而是这么个小数。
但如果能整除呢:
>>> 400 / 5
80.0
看,如果转换成int类型,值也是相等的。
用这个方法判断有没有余数(能不能整除) 看看注释~
temp = input('请输入一个年份:')
while not temp.isdigit():# 判断是否为纯数字字符串
temp = input("抱歉,您的输入有误,请输入一个整数:")
year = int(temp) # 将字符串类型的的年份转整数才能进行计算
if year/400 == int(year/400):# 这里是判断是不是满400年的倍数年,能被400整除的为闰年
print(temp + ' 是闰年!')
else: #反之这边就是对不被400整除的年份进行判断,前面的 if 把400过滤了
if (year/4 == int(year/4)) and (year/100 != int(year/100)):# 能被4整除而不能被100整除的数为闰年 ,因为400的倍数已经被if 过滤了
print(temp + ' 是闰年!')
else:
print(temp + ' 不是闰年!')
如果帮助到你了~记得给个最佳哈~{:10_287:} temp = input('请输入一个整数:')
while not temp.isdigit():
temp = input('输入有误请重新输入:')
yue = int(temp)
if yue / 400:
print(temp + '是闰年!' )
else:
print(temp + '不是闰年!!!!')
我这样也可以嘞 和那个有没有区别嘞 窝在家里写程序 发表于 2020-5-20 17:07
temp = input('请输入一个整数:')
while not temp.isdigit():
temp = input('输入有误请重新输入:')
...
不行哦,你这试着输入3试试看~也会是闰年 窝在家里写程序 发表于 2020-5-20 17:07
temp = input('请输入一个整数:')
while not temp.isdigit():
temp = input('输入有误请重新输入:')
...
别说3了,除了 0所有数在这里判断都是闰年因为 所有非0数 都为True、 而 0 为False
if yue / 400:
所以你这只要不是0都会符合条件的
页:
[1]