输入某年某月某日,判断这一天是这一年的第几天?
分析:
(1)分别输入年、月、日,且规定输入的数字为整型
(2)判断年份,是平年还是闰年,如果是平年,2月就有28天;如果是闰年,2月就有29天
(3)闰年:分为普通闰年和世纪闰年
普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。
(4)一次求和:计算出从1月1日到所输入月份的上一个月的天数之和
(5)二次求和:把一次求和所得的数字加上所输入的日期的数字,把二次求和的值打印出来
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # 输入年月份 year = int ( input ( "请输入年份:" )) month = int ( input ( "请输入月份:" )) day = int ( input ( "请输入日期:" )) # 对于输入的月份,只允许输入1-12,对于输入的日期,只允许输入1-31 if (month > = 1 ) and (month < = 12 ) and (day > = 1 ) and (day < = 31 ): # 判断年份是闰年还是平年 if ((year % 4 = = 0 ) and (year % 100 ! = 0 )) or (year % 400 = = 0 ): leap = 1 else : leap = 0 # 第一次求和:计算出从1月1日开始到所输入月份的上一个月的天数之和 days_in_month = [ 0 , 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 ] before_month = month - 1 effective_days_in_month = days_in_month[ 0 :before_month] sum_before_month = 0 for days in effective_days_in_month: sum_before_month + = days # 第二次求和并打印: if month > 2 : print (f "这是{year}年的第{sum_before_month + day + leap}天" ) else : print (f "这是{year}年的第{sum_before_month + day}天" ) else : print ( "date error" ) |
分类:
Python练习题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix