python统计两个年份间闰年个数
时间: 2024-10-21 16:13:47 浏览: 28
在Python中,我们可以创建一个函数来计算给定两个年份之间有多少个闰年。闰年的规则是:能被4整除的年份是闰年,但是能被100整除的不是,除非它同时也能被400整除。下面是一个简单的示例:
```python
def count_leap_years(start_year, end_year):
def is_leap(year):
return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
leap_years = sum(1 for year in range(start_year, end_year + 1) if is_leap(year))
return leap_years
# 使用这个函数
start_year = int(input("请输入起始年份:"))
end_year = int(input("请输入结束年份:"))
count = count_leap_years(start_year, end_year)
print(f"从{start_year}到{end_year}之间有{count}个闰年。")
相关问题
Python不用循环找出两个年份之间的闰年
可以使用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代码示例:
```python
def count_leap_years(start_year, end_year):
"""
统计两个年份之间出现闰年的次数
:param start_year: 起始年份
:param end_year: 结束年份
:return: 闰年次数
"""
count = 0
if start_year > end_year:
start_year, end_year = end_year, start_year
for year in range(start_year, end_year+1):
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
count += 1
return count
```
使用示例:
```python
print(count_leap_years(2000, 2020)) # 输出6,2000、2004、2008、2012、2016、2020是闰年
print(count_leap_years(2020, 2000)) # 同上,输出6
```
注意:上述代码中的判断闰年的方法是判断是否能被4整除且不能被100整除,或者能被400整除。这是目前公认的最准确的判断方法,因为它考虑了历法的规律和误差,能较精确地计算闰年。
阅读全文