鱼C论坛

 找回密码
 立即注册
查看: 814|回复: 6

[已解决]求大神解答

[复制链接]
发表于 2020-5-20 16:45:03 | 显示全部楼层 |阅读模式

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

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

x
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)):是干嘛的???
最佳答案
2020-5-20 16:54:34
看看注释~

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 + ' 不是闰年!')


如果帮助到你了~记得给个最佳哈~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-20 16:47:41 | 显示全部楼层
是判断能不能整除的呀
year/400 == int(year/400),若不能整除,则前后不相等
闰年的条件就是能被400整除,或者能被4整除但不能被100整除
其他的都是平年
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-20 16:48:52 | 显示全部楼层
如果有余数,那么除法的返回会是:
>>> 400 / 6
66.66666666666667
不是66.0,而是这么个小数。
但如果能整除呢:
>>> 400 / 5
80.0
看,如果转换成int类型,值也是相等的。
用这个方法判断有没有余数(能不能整除)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-20 16:54:34 | 显示全部楼层    本楼为最佳答案   
看看注释~

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 + ' 不是闰年!')


如果帮助到你了~记得给个最佳哈~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-20 17:07:13 | 显示全部楼层
temp = input('请输入一个整数:')
while not temp.isdigit():
    temp = input('输入有误请重新输入:')
yue = int(temp)
if yue / 400:
    print(temp + '是闰年!' )
else:
   print(temp + '不是闰年!!!!')


我这样也可以嘞   和那个有没有区别嘞
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-20 17:10:38 | 显示全部楼层
窝在家里写程序 发表于 2020-5-20 17:07
temp = input('请输入一个整数:')
while not temp.isdigit():
    temp = input('输入有误请重新输入:')
...

不行哦,你这试着输入3试试看~也会是闰年
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-20 17:12:53 | 显示全部楼层
窝在家里写程序 发表于 2020-5-20 17:07
temp = input('请输入一个整数:')
while not temp.isdigit():
    temp = input('输入有误请重新输入:')
...

别说3了,除了 0  所有数在这里判断都是闰年  因为 所有非0数 都为True、 而 0 为False  
if yue / 400:
所以你这只要不是0  都会符合条件的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-21 05:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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