Python 代码阅读合集介绍:为什么不推荐Python初学者直接看项目源码
本篇阅读的代码在日期类型上实现了类似range
的功能,生成一个在两个指定日期之间的日期列表。
本篇阅读的代码片段来自于30-seconds-of-python。
daterange
from datetime import timedelta, date
def daterange(start, end):
return [start + timedelta(n) for n in range(int((end - start).days))]
# EXAMPLES
from datetime import date
daterange(date(2020, 10, 1), date(2020, 10, 5))
# [date(2020, 10, 1), date(2020, 10, 2), date(2020, 10, 3), date(2020, 10, 4)]
daterange
函数接收一个开始日期和一个终止日期,返回这两个日期之间的日期列表,包括开始日期,不包括终止日期。
函数使用datetime
模块里的类型和方法对日期进行处理。
- 首先将两个
date
类型的日期相减,得到timedelta
类型的日期差值timedelta = date1 - date2
。 - 然后通过
timedelta
的days
属性获取相差的天数。 - 将天数差值转换为
int
数据后,通过range
函数生成一个从零开始的可迭代对象,并用for
语句进行访问。 - 最后使用
date2 = date1 + timedelta
的运算形式,通过对开始日期加上相差日期,计算中间的日期。最后形成一个date
类型的列表。
具体datetime
模块的内容和相关的计算规则可以查看Python
的官方文档。
网友评论