python求2000—3000年的所有闰年(3种方法)
时间: 2024-10-11 08:12:08 浏览: 64
在Python中,有几种常见的方法来找出2000年至3000年间的所有闰年。以下是三种常见的方式:
1. **传统闰年规则** (基于年份是否能被4整除):
```python
start_year = 2000
end_year = 3000
leap_years = [year for year in range(start_year, end_year + 1) if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)]
leap_years
```
此方法只适用于满足传统闰年规则(能被4整除且不被100整除,或者能被400整除)的年份。
2. **使用calendar模块**:
```python
import calendar
leap_years = [year for year in range(start_year, end_year + 1) if calendar.isleap(year)]
leap_years
```
这个方法利用了Python `calendar` 模块的 `isleap()` 函数,它直接返回给定年份是否为闰年的布尔值。
3. **lambda函数结合filter()**:
```python
from itertools import filterfalse
is_leap = lambda y: y % 4 == 0 and (y % 100 != 0 or y % 400 == 0)
leap_years = list(filter(is_leap, range(start_year, end_year + 1)))
```
这里定义了一个lambda函数用于判断是否是闰年,然后用`filter()`函数筛选出符合条件的年份。
阅读全文