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
上一题
下一题