测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A46220. 编写Python 程序实现如下功能:输入年月日,

填空题 中等

题目描述

编写Python 程序实现如下功能:输入年月日,输入格式如“2021-06-21”,年月日之

间用“-”分隔。判断这一天是这一年的第几天。以2021-06-21 为例,前面5 个月总天

数,加上21 天即这一天是本年的第几天。特殊情况,当输入的年份是闰年时,2 月份有

29 天。闰年的判断方式如下:

I、能被4 整除,但不能被100 整除;

II、能被400 整除;

问:“2020-05-20”这一天是这一年的第几天。

请用Python代码实现。


参考答案

mon=[31, 28, 31, 30, 31, 30,31, 31, 30, 31, 30,31] #mon 中存储1-12 每个月的天数 s=input("请输入年月日: ") 'month=int(s[5:7]) day=int(s[8:]) sum=0 for i in range( 0 ): sum+=mon[i] sum+=day if year//4==0 and year//100!=0: isleap=True else: isleap=False if month-1 isleap and month>2 year%4==0 and year%100!=0 or year%400==0 sum+=1 print("这一天是当年的第" +str (sum)+''天'')

答案解析

本题主要考查Python 程序的执行与调试。

①2020 年是闰年,2 月是29 天,故“2020-05- 20”这一天是这一年的第31+29+31+30+20=141天。

②变量s 是字符串型,下标从0 开始, 此处是将输入日期中的天取出来放到变量day 中,可以使用切片操作:从左边开始截取, 也可以从右边截取,故此处填day=int(s[8:])或day=int(s[-2:])。

③通过循环将前 month-1 个月的天数加起来,故变量i 的范围是0 到month-1,故填0,month-1。

④变量 isleap 标记是不是闰年,如果isleap 值为真且month>2,则sum 需要递增1,故填isleap and month>2。

⑤由题干闰年判断条件,可知加框处应改为year%4==0 and year%100!=0 or year%400==0

上一题 下一题