第十一届蓝桥杯试题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 的设置