A30526. 日期问题小明同学学习Pvthon的函数后,想动手利用函数来解决生活中的问题。于是他突发奇想,输入日期,统计这一天是这一年的第几天。编写的代码如下,请完善划线处的代码。def isRn(year):#判断year是否闰年or year % 400 == 0: if ____①____ or year %400==0: return 1 return 0def jsDays(data):#计算日期d…
题目描述
日期问题
小明同学学习Pvthon的函数后,想动手利用函数来解决生活中的问题。于是他突发奇想,输入日期,统计这一天是这一年的第几天。编写的代码如下,请完善划线处的代码。
def isRn(year):#判断year是否闰年or year % 400 == 0:
if ____①____ or year %400==0:
return 1
return 0
def jsDays(data):#计算日期data在这一年是第几天
s=0
year = int(data[:4])
month = int(data[4:6])
day = int(data[6:])
for i in range(____②____):
s += days[i]
s += day
if month > 2 and____③____:
s += 1
return s
def checkRq(data):#判断输入的日期是否正确
month = int(data[4;6])
day = int(data[6:])
if month <1 or month >12:
return 0
if days[month-1]<day or day <1:
return 0
return 1
days = [31,28,31,30,31,30,31,31,30,31,30,31]#定义每个月的天数
rq =input(输入年月日,格式如:20240102\n')
if checkRq(rq):
d=____④____
print(r9,是这一年的第',d,'天')
else:
print(rq,'输入的日期有错误')
参考答案
def isRn(year):
# 判断 year 是否闰年
if year % 4 == 0 and year % 100!= 0 or year % 400 == 0:
return 1
return 0
def jsDays(data):
s = 0
year = int(data[:4])
month = int(data[4:6])
day = int(data[6:])
for i in range(1, month):
s += days[i - 1]
s += day
if month > 2 and isRn(year):
s += 1
return s
def checkRq(data):
month = int(data[4:6])
day = int(data[6:])
if month < 1 or month > 12:
return 0
if days[month - 1] < day or day < 1:
return 0
return 1
days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
rq = input('输入年月日,格式如:20240102\n')
if checkRq(rq):
d = jsDays(rq)
print(rq, '是这一年的第', d, '天')
else:
print(rq, '输入的日期有错误')答案解析
①处应填入`year % 4 == 0 and year % 100!= 0`,这是判断闰年的条件之一。
②处应填入`range(1, month)`,因为要遍历从1月到输入日期的前一个月,计算这些月份的总天数。
③处应填入`isRn(year)`,判断如果输入的日期在2月之后且当前年份是闰年,就需要加上一天。
④处应填入`jsDays(rq)`,调用函数计算输入日期是这一年的第几天。