第十一届蓝桥杯试题C:跑步锻炼

3.跑步锻炼(10)

  • 周一或1号跑2km(既是周一又是1号跑2km),其余1km,问从2000.1.1(周六)—2020.10.1(周四)共跑多少km?

题解

  • 从开始的那一天一直到结束的那一天,对每一天进行判断是不是周一、1号,然后加上相应的跑步千米数。
  • start.weekday():返回start周几,其中Monday是0,Sunday是6
  • start.day:返回几号
  • datetime.timedelta(days=1):步长
  • 注意:建议使用while循环,处理起来较为简单,for循环写法:for current_date in (start + timedelta(n) for n in range((end - start).days + 1)):
  import datetime
  start = datetime.date(2000,1,1)
  end = datetime.date(2020,10,1)
  days = datetime.timedelta(days=1)
  num = 0
  while end>=start:
      if start.weekday()==0 or start.day==1:
          num+=2
      else:
          num+=1
      start = start+days
  print(num)

导入datetime 库,注意:if 配 or ,时间间隔timedelta 的设置

posted @ 2021-04-17 16:05  Frommoon  阅读(56)  评论(0编辑  收藏  举报