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

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)`,调用函数计算输入日期是这一年的第几天。

上一题 下一题