鱼C论坛

 找回密码
 立即注册
查看: 6093|回复: 12

[已解决]好多天没学习了,005习题判断是否闰年这样是不是简单点?

[复制链接]
发表于 2017-11-16 21:35:22 | 显示全部楼层 |阅读模式

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

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

x
temp = input("请输入一个年份:")
date1 = int(temp)
date2 = date1%400
if date2 == 0:
    print("恭喜你,输入的年份是闰年")
while date2 != 0:
    temp = input("你输入年份有误,不是闰年,请重新输入:")
    date1 = int(temp)
    date2 = date1%400
    if date2 == 0:
        print("恭喜你,输入的年份是闰年")
print("游戏结束")
最佳答案
2017-11-26 13:10:15
根号1989 发表于 2017-11-25 16:04
大神,这个定义的d及后面print的内容没看懂啊

这个是我的问题_(:зゝ∠)_以前学C语言养成的字母做变量名的坏习惯。
其实我的d意思是day,表示天数,d=366表示是闰年所以有366天,d=365表示是平年所以有365天。y意思是year,表示年份。这是为了解课后作业001判断一年有多少秒写的程序,你不用看后面那些的,判断闰年只用看这一句:

if y%4==0 and y%100!=0 or y%400==0:  
#如果年份是400的倍数或年份是4的倍数但不是100的倍数,则是闰年

思路其实和你的程序是一样的哈~只是看到你的判断写了好几行,蛮复杂的,变量也有好几个容易头晕,所以给你看个简化版的参考一下。另外加上前面看你在问闰年的判断,所以特地跟你分享一下闰年的判断原理~
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-11-16 21:47:27 From FishC Mobile | 显示全部楼层
4的倍数的闰年呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-16 22:34:10 | 显示全部楼层
BngThea 发表于 2017-11-16 21:47
4的倍数的闰年呢

对啊,新手不太会额
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-16 22:52:46 | 显示全部楼层
根号1989 发表于 2017-11-16 22:34
对啊,新手不太会额

想了下,改成date2 = date1%4是不是就行了呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-16 22:55:43 From FishC Mobile | 显示全部楼层
根号1989 发表于 2017-11-16 22:52
想了下,改成date2 = date1%4是不是就行了呢

你需要先弄清楚到底什么是闰年
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-17 06:02:19 | 显示全部楼层
根号1989 发表于 2017-11-16 22:52
想了下,改成date2 = date1%4是不是就行了呢

闰年的判断方法是两个:
1. 是4的倍数,但是不能被100整除;
2. 可以被400整除。
两者任何一个满足,就是闰年。
因此,你的条件没有列完整。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-17 08:28:22 | 显示全部楼层
老笨啊 发表于 2017-11-17 06:02
闰年的判断方法是两个:
1. 是4的倍数,但是不能被100整除;
2. 可以被400整除。

哦知道了,谢谢指导
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-19 17:16:45 | 显示全部楼层
temp = input("请输入一个年份:")
while not temp.isdigit():
    temp = input("抱歉,您的输入有误,请输入一个整数:")误
date1 = int(temp)  
date2 = date1%400
date3 = date1 %4
date4 = date1%100
if date2 == 0:
    print("恭喜你,输入的年份是闰年")
else:
    if date3 ==0 and date4 != 0:
        print("恭喜你,输入的年份是闰年")
    else:
        print("你输入年份有误,不是闰年")
print("游戏结束")
   
周末练习了一下,这个貌似可以了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-25 13:55:31 | 显示全部楼层
给楼主分享一下我的程序

y=int(input(""))
if y%4==0 and y%100!=0 or y%400==0:
    d=366
else:
    d=365
print(d*24*60*60)

个人觉得:1.变量名越少越好,否则不利于阅读,楼主用了好几个date会不会自己都把自己搞晕了呀
                2.特地跑去研究了一下闰年的问题,闰年的定义是每四年一次,但如果当年是100的倍数,又不是400的倍数,那这一年不算做闰年。分享一个百度知道对闰年这样定义的原因的解释:在公历的编写上,每四年闰一天是有原因的,是因为地球的自转时间是23小时56分,这样每四年就必须多一天,而多一天的话,还是不够精确,会有极小的误差,所以每400年只能多出97天,这就是现行的最精确的公历,所以公历会规定,逢正百的年份,必须被400整除,才是闰年。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-25 16:04:46 | 显示全部楼层
雪融 发表于 2017-11-25 13:55
给楼主分享一下我的程序

y=int(input(""))

大神,这个定义的d及后面print的内容没看懂啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-25 19:21:29 | 显示全部楼层
学习一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-26 13:10:15 | 显示全部楼层    本楼为最佳答案   
根号1989 发表于 2017-11-25 16:04
大神,这个定义的d及后面print的内容没看懂啊

这个是我的问题_(:зゝ∠)_以前学C语言养成的字母做变量名的坏习惯。
其实我的d意思是day,表示天数,d=366表示是闰年所以有366天,d=365表示是平年所以有365天。y意思是year,表示年份。这是为了解课后作业001判断一年有多少秒写的程序,你不用看后面那些的,判断闰年只用看这一句:

if y%4==0 and y%100!=0 or y%400==0:  
#如果年份是400的倍数或年份是4的倍数但不是100的倍数,则是闰年

思路其实和你的程序是一样的哈~只是看到你的判断写了好几行,蛮复杂的,变量也有好几个容易头晕,所以给你看个简化版的参考一下。另外加上前面看你在问闰年的判断,所以特地跟你分享一下闰年的判断原理~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-27 21:24:53 | 显示全部楼层
雪融 发表于 2017-11-25 13:55
给楼主分享一下我的程序

y=int(input(""))

感谢分享
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-19 09:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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