在 Python 中确定闰年
本文将讨论称为闰年的术语。 我们还将看到一个 Python 实现来检查特定年份是否为闰年。
闰年介绍
地球绕太阳一周比 365 天多 6 小时。
假设我们不在 2 月增加一天(即 29 日)。 在那种情况下,它最终会导致我们在不同的季节看到许多宗教和政治事件(尽管日期保持不变)。
它建议我们每 4 年增加一天,即 6 x 4 = 24。但是,这并不那么简单,因为额外的 6 小时并不准确。
地球在大约 365 天 5 小时 48 分 46 秒内完成公转,与上一段中讨论的陈述相差 11 分 14 秒。 这种微妙的差异使我们执行更复杂的计算以保持同一季节的日期。
因此,我们说一年必须符合以下条件才有资格成为闰年:
- 直接取消资格:如果所考虑的年份不能被 4 整除,则它不符合闰年的条件。 例如,2077 不能被 4 整除(即 2077 % 4 != 0),因此它不是闰年。
- 如果年份可以被 4 整除但不能被 100 整除,则该年为闰年。 例如,2024 可以被 4 整除但不能被 100 整除(即 2024 % 4 == 0 和 2024 % 100 != 0),因此它有资格成为闰年。
- 如果这个数能被4和100整除,那么我们就检查年份是否也能被400整除。如果是,那年就是闰年; 否则,该年将不是闰年。
比如4000能被4、100、400整除,所以是闰年。 从数学上讲,如果年 %4 == 0,年 %100 == 0 和年 %400 == 0,则该年为闰年。
以下部分提供了一个完整的 Python 实现,它将确定一年是否符合闰年的条件。 在对闰年概念有了基本的了解之后,让我们看一下不同的实现来检查年份是否是闰年。
通过 Python 中的简单 if-else 结构确定闰年
以下实现使用简单的 if-else 结构来确定闰年。
- 对于给定的年份输入,我们首先检查是否满足第二个条件; 如果是,则表明我们的积极判断(即该年是闰年)。
- 如果输入的年份不满足第 3 行中给出的复合条件,我们将检查输入的年份是否符合第三个条件并相应地显示我们的决定。
- 现在,如果该年不符合上述任何条件,我们就断定该年不是闰年。
示例代码:
yearValue = int(input("Enter a year: "))
## here, yearValue means the year we want to check.
if yearValue % 4 ==0 and yearValue % 100!=0: ## condition 2
print(yearValue, "is a leap year")
elif yearValue % 4 ==0 and yearValue % 100==0: ## condition 3
if yearValue % 400==0:
print(yearValue, "qualifies as a leap year")
else:
print(yearValue, "does not qualify as a leap year")
else:
print(yearValue, "does not qualify as a leap year") ## Condition 1
现在,我们将通过采用不同的输入值在三个条件中的每一个条件下评估我们的程序。
输出评估第一个条件:
Enter a year: 2027
2027 does not qualify as a leap year
输出评估第二个条件:
Enter a year: 2024
2024 is a leap year
输出评估第三个条件:
Enter a year: 4000
4000 qualifies as a leap year
通过Python中的日历模块判断闰年
Python 的日历模块是执行涉及日期的计算的可靠工具之一。 它遵循欧洲惯例(即,将星期一显示为一周的第一天)并作为 Python 的 Unix cal 程序等价物。
它提供了几个实用程序来进行日期输入和操作(包括显示日历)。
isleap()
方法是日历模块的功能之一。 让我们看下面的例子来理解日历模块和 isleap() 方法的使用。
示例代码:
import calendar
yearValue = int(input("Enter a year: "))
if calendar.isleap(yearValue):
print(yearValue,"qualifies as a leap year")
else:
print(yearValue,"does not qualify as a leap year")
上面代码的第一行导入了日历模块。 第二行从用户那里获取整数年输入并将其分配给 yearValue 变量。
calendar.isLeap()
方法接受一个整数年值,并在参数是否为闰年时返回 true 或 false。 因此,我们可以应用决策语句来显示我们的个性化消息。
让我们通过运行不同年份的程序来测试这段代码:
第一次运行:
Enter a year: 2027
2027 does not qualify as a leap year
第二次运行:
Enter a year: 2024
2024 qualifies as a leap year
第三次运行:
Enter a year: 4000
4000 qualifies as a leap year
使用 Python 中的日历模块通过条件运算符确定闰年
我们可以将条件运算符与日历模块结合起来实现相同的目的。 条件运算符是一个三元条件结构,可以用作简单的 if-else 结构的替代品。
示例代码:
import calendar
y = int(input("Enter a year: "))
# [statement_on_True] if [condition] else [statement_on_false]
print(y,"is a leap year") if (calendar.isleap(y)) else print(y,"is not a leap year")
上面的代码使用条件运算符来显示某年是否为闰年。 条件运算符的语法在第 4 行的代码中有详细注释。
多次运行的输出:
第一次运行:
Enter a year: 2027
2027 is not a leap year
第二次运行:
Enter a year: 2024
2024 is a leap year
第三次运行:
Enter a year: 4000
4000 is a leap year
如果我们想跳过使用日历模块,我们可以将简单的复合条件与三元条件运算符结合使用。
此外,存在许多其他选项来实现所需的程序(例如,匹配案例构造)。 我们让极客们去探索和实现不同的变体。
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串