根号1989 发表于 2017-11-16 21:35:22

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

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("游戏结束")

BngThea 发表于 2017-11-16 21:47:27

4的倍数的闰年呢

根号1989 发表于 2017-11-16 22:34:10

BngThea 发表于 2017-11-16 21:47
4的倍数的闰年呢

对啊,新手不太会额

根号1989 发表于 2017-11-16 22:52:46

根号1989 发表于 2017-11-16 22:34
对啊,新手不太会额

想了下,改成date2 = date1%4是不是就行了呢

BngThea 发表于 2017-11-16 22:55:43

根号1989 发表于 2017-11-16 22:52
想了下,改成date2 = date1%4是不是就行了呢

你需要先弄清楚到底什么是闰年

老笨啊 发表于 2017-11-17 06:02:19

根号1989 发表于 2017-11-16 22:52
想了下,改成date2 = date1%4是不是就行了呢

闰年的判断方法是两个:
1. 是4的倍数,但是不能被100整除;
2. 可以被400整除。
两者任何一个满足,就是闰年。
因此,你的条件没有列完整。

根号1989 发表于 2017-11-17 08:28:22

老笨啊 发表于 2017-11-17 06:02
闰年的判断方法是两个:
1. 是4的倍数,但是不能被100整除;
2. 可以被400整除。


哦知道了,谢谢指导

根号1989 发表于 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("游戏结束")
   
周末练习了一下,这个貌似可以了

雪融 发表于 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会不会自己都把自己搞晕了呀{:10_266:}
                2.特地跑去研究了一下闰年的问题,闰年的定义是每四年一次,但如果当年是100的倍数,又不是400的倍数,那这一年不算做闰年。分享一个百度知道对闰年这样定义的原因的解释:在公历的编写上,每四年闰一天是有原因的,是因为地球的自转时间是23小时56分,这样每四年就必须多一天,而多一天的话,还是不够精确,会有极小的误差,所以每400年只能多出97天,这就是现行的最精确的公历,所以公历会规定,逢正百的年份,必须被400整除,才是闰年。

根号1989 发表于 2017-11-25 16:04:46

雪融 发表于 2017-11-25 13:55
给楼主分享一下我的程序

y=int(input(""))


大神,这个定义的d及后面print的内容没看懂啊

bing_home 发表于 2017-11-25 19:21:29

学习一下

雪融 发表于 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的倍数,则是闰年

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

bing_home 发表于 2017-11-27 21:24:53

雪融 发表于 2017-11-25 13:55
给楼主分享一下我的程序

y=int(input(""))


感谢分享
页: [1]
查看完整版本: 好多天没学习了,005习题判断是否闰年这样是不是简单点?