【蓝桥】——2020年11届省赛Python组必会真题+解析+代码——跑步锻炼

题目

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

解析

大佬(小蓝刷题) ——2020年第十一届蓝桥杯省赛Python组(真题+解析+代码):跑步锻炼

知识点
datetime模块中的date类
	date类对象表示一个日期。日期2由年、月、日组成
date类的构造函数如下:
 	date(year,month,day)
	构造函数,接收年、月、日三个参数,返回一个date对象

常用函数方法:
	timetuple():返回一个time的时间格式对象,等价于time.localtime()
	today():返回当前日期date对象,等价于fromtimestamp(time.time())
	toordinal():返回公元公历开始到现在的天数。公元1年1月1日为1
	weekday():返回星期几。0(星期一)到6(星期日)
	year,month,day:返回date对象的年、月、日

代码

from datetime import datetime,timedelta
start = datetime(2000,1,1)
end = datetime(2020,10,1)
age = 0
d = timedelta(1)
while start <= end :
    if start.day == 1 or start.weekday()==0:
        #如果日期是月初(start.day == 1)或者周一(start.weekday()==0)
        age += 2  #加两公里
    else:
        age += 1  #其他时间加一公里
    start += d
print(age)


#示例方法weekday()、day()、isoweekday()
# from datetime import datetime,timedelta
# s = datetime.now()
# #date.isoweekday()返回的1-7代表周一到周日
# print(s.isoweekday())   #输出5
# #date.weekday()返回的0-6代表周一到周日
# print(s.weekday())  #输出4
# print(s)    #2022-04-08 09:39:36.046943
# print(s.day)    #8

**

如果有不同意见的朋友,或者有不同思路的大佬们,欢迎在评论区讨论!

**

【蓝桥】——2020年11届省赛Python组必会真题+解析+代码——跑步锻炼_第1张图片

你可能感兴趣的:(新人刷算法,python,算法)