鱼C论坛

 找回密码
 立即注册
查看: 3317|回复: 5

[已解决]Python计算闰年——如何计算公元前年份?

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

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

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

x
while 1 :
    year = input('请给定一个年份:',)
    if year.isdigit(): #防止计算报错,添加一个判断是否是数字的语句
        y = int(year)
        if (y % 4 == 0 and y % 100 != 0) or y % 400 == 0 :
            print(year+'是闰年。\n')
        else:
            print(year+'不是闰年。\n')
    else:
        print('请输入有效年份!\n(只包含数字)\n')

新人求教:
为了防止报错,添加了一个判断语句来鉴定是否是数字;
但是输入负数时,‘isdigit’却将负数判定为False,我知道是因为负数夹杂了‘-’号所致,所以想请教一下,有没有其他简洁的方法可以解决这个问题?
最佳答案
2020-2-17 16:53:08
while 1 :
    try:
        year = input('请给定一个年份:',)
        y = int(year)
        if (y % 4 == 0 and y % 100 != 0) or y % 400 == 0 :
            print(year+'是闰年。\n')
        else:
            print(year+'不是闰年。\n')
    except ValueError:
        print('\n请输入有效年份!\n')
捕获.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-17 16:53:08 | 显示全部楼层    本楼为最佳答案   
while 1 :
    try:
        year = input('请给定一个年份:',)
        y = int(year)
        if (y % 4 == 0 and y % 100 != 0) or y % 400 == 0 :
            print(year+'是闰年。\n')
        else:
            print(year+'不是闰年。\n')
    except ValueError:
        print('\n请输入有效年份!\n')

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
无视网速 + 5 + 5 + 3 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-17 16:56:12 | 显示全部楼层
可以这样
while 1 :
    year = input('请给定一个年份:',)
    if year[0] == '+' or year[0] == '-':
        prefix = year[0]
        year = year[1:]
    else:
        prefix = ''
    
    if year.isdigit(): #防止计算报错,添加一个判断是否是数字的语句
        year = prefix + year
        y = int(year)
        if (y % 4 == 0 and y % 100 != 0) or y % 400 == 0 :
            print(year+'是闰年。\n')
        else:
            print(year+'不是闰年。\n')
    else:
        print('请输入有效年份!\n(只包含数字)\n')

有几个问题:
1.最好用异常处理,等学到了try...except就会发现,处理起来方便的多。
2.闰年的计算不涉及到公元前
3.如果一定要计算负值,也要调整一下,因为没有公元0年。

评分

参与人数 1荣誉 +4 鱼币 +4 贡献 +2 收起 理由
无视网速 + 4 + 4 + 2 谢谢谢谢,try...except好用

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-17 17:01:36 | 显示全部楼层
净扯,公元前   哪来的 闰年的概念
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-17 17:41:58 | 显示全部楼层
wp231957 发表于 2020-2-17 17:01
净扯,公元前   哪来的 闰年的概念

我书读的少,百度百科里面写着公元前是有闰年的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-17 19:12:26 | 显示全部楼层

求问为什么可以这样做?except那一行是什么意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 08:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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