1 真题

小蓝每天都锻炼身体。
正常情况下,小蓝每天跑1千米。如果某天是周一或者月初(1日),为了激励自己,小蓝要跑2千米。如果同时是周一或月初,小蓝也是跑2千米。
小蓝跑步已经坚持了很长时间,从2000年1月1日周六(含)到2020年10月1日周四(含)。请问这段时间小蓝总共跑步多少千米?


2 解析


思路分析:

咋一看题目,竟然考日期,心想:芭比Q了!datetime中的常考函数可能全忘光了。

身为小菜鸟的我,自觉地在菜鸟教程里查阅了亿下日期模块QAQ

datetime.datetime(year="",month="",day="")         #传入时间参数,返回时间格式的变量

datetime.timedelta(days="")         #返回参数对应的时间间隔,作用是可以进行时间加减

datetime.weekday()         #判断星期几,注意星期一返回0,星期二返回1,以此类推

直接看函数定义可能看不懂,结合楼下代码一起食用更助于消化哦~

有的小伙伴说,考试的时候不能上网,搜不到函数肿么办?

其实python自带了帮助文档,里面都有函数的详细注释!

具体搜索方法如图所示:

蓝桥杯题集 python 蓝桥杯python比赛题_时间间隔


3 代码

#跑步锻炼
from datetime import datetime,timedelta    #导入日期库中的日期时间和时间间隔两个模块
distance=0                                 #初始距离置0
start=datetime(2000,1,1)                   #开始时间
end=datetime(2020,10,1)                    #结束时间
delta=timedelta(1)                         #时间间隔
while start<=end:                          #循环遍历每一天
    if start.day==1 or start.weekday()==0: #月初或周一时加两公里
        distance+=2
    else:                                  #其他时间加一公里
        distance+=1
    start+=delta                           #别忘了while循环最后加上间隔
print(distance)                            #输出结果:8879