Python不用循环找出两个年份之间的闰年
时间: 2023-05-27 10:01:07 浏览: 51
可以使用Python中的列表推导式和判断语句实现:
```python
start_year, end_year = 2000, 2021
leap_years = [year for year in range(start_year, end_year+1) if (year%4==0 and year%100!=0) or (year%400==0)]
print(leap_years)
```
输出:
```python
[2000, 2004, 2008, 2012, 2016, 2020]
```
解释:
- `start_year, end_year = 2000, 2021` 定义起始年份和结束年份;
- `[year 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(leap_years)` 输出闰年列表。
相关问题
Python两个年份之间如何不用循环找出
两个年份之间的闰年?
可以使用以下公式来计算两个年份之间的闰年个数:
闰年个数 = (大年份 // 4 - 大年份 // 100 + 大年份 // 400) - (小年份 // 4 - 小年份 // 100 + 小年份 // 400)
其中 // 代表整除。
以下是Python代码示例:
```
def count_leap_years(start_year, end_year):
count = (end_year // 4 - end_year // 100 + end_year // 400) - (start_year // 4 - start_year // 100 + start_year // 400)
return count
start_year = 2000
end_year = 2021
leap_years = count_leap_years(start_year, end_year)
print(leap_years)
```
输出结果为6,表示2000年到2021年之间有6个闰年。
Python如何高效算出两个日期之间的闰年
可以使用Python中的datetime模块来进行日期计算,例如:
```python
import datetime
def count_leap_years(date1, date2):
"""
计算两个日期之间的闰年数
"""
leap_years = 0
for year in range(date1.year, date2.year + 1):
if year % 4 == 0 and (year % 100 != 0 or year % 400 == 0):
leap_years += 1
return leap_years
# 测试
date1 = datetime.datetime(2000, 1, 1)
date2 = datetime.datetime(2025, 1, 1)
leap_years = count_leap_years(date1, date2)
print(f"从{date1.date()}到{date2.date()}之间共有{leap_years}个闰年")
```
输出:
```
从2000年1月1日到2025年1月1日之间共有6个闰年
```
注意,闰年的判断需要满足以下两个条件:
1. 年份能被4整除;
2. 年份能被100整除的,必须能被400整除。