用三种方法python编程输出2000年到3000年的所有闰年
时间: 2024-10-10 11:13:13 浏览: 54
在Python中,有几种常见的方法可以输出2000年到3000年间的所有闰年:
1. **基于规则的检查**:
```python
start_year = 2000
end_year = 3000
for year in range(start_year, end_year + 1):
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0): # 能被4整除且不能被100整除,或者能被400整除的是闰年
print(year)
```
2. **利用`dateutil.relativedelta`模块**:
```python
from datetime import datetime
import dateutil.relativedelta
start_date = datetime(2000, 1, 1)
end_date = datetime(3000, 12, 31)
leap_years = [str(date.date()) for date in pd.date_range(start=start_date, end=end_date, freq='Y') if date.year % 4 == 0 and (date.year % 100 != 0 or date.year % 400 == 0)]
print(leap_years)
```
这里需要安装`pandas`库。
3. **列表推导式**(如果允许使用第三方库`numpy`):
```python
import numpy as np
start_year = 2000
end_year = 3000
step = 1 if end_year - start_year >= 4 else 4 # 如果跨度小于5年,则步长为4
years = np.arange(start_year, end_year + 1, step)
leap_years = years[(years % 4 == 0) & (years % 100 != 0 or years % 400 == 0)]
leap_years = list(leap_years)
print(leap_years)
```
注意这需要安装`numpy`库。
阅读全文