迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中确定闰年

作者:迹忆客 最近更新:2023/04/26 浏览次数:

本文将讨论称为闰年的术语。 我们还将看到一个 Python 实现来检查特定年份是否为闰年。


闰年介绍

地球绕太阳一周比 365 天多 6 小时。

假设我们不在 2 月增加一天(即 29 日)。 在那种情况下,它最终会导致我们在不同的季节看到许多宗教和政治事件(尽管日期保持不变)。

它建议我们每 4 年增加一天,即 6 x 4 = 24。但是,这并不那么简单,因为额外的 6 小时并不准确。

地球在大约 365 天 5 小时 48 分 46 秒内完成公转,与上一段中讨论的陈述相差 11 分 14 秒。 这种微妙的差异使我们执行更复杂的计算以保持同一季节的日期。

因此,我们说一年必须符合以下条件才有资格成为闰年:

  1. 直接取消资格:如果所考虑的年份不能被 4 整除,则它不符合闰年的条件。 例如,2077 不能被 4 整除(即 2077 % 4 != 0),因此它不是闰年。
  2. 如果年份可以被 4 整除但不能被 100 整除,则该年为闰年。 例如,2024 可以被 4 整除但不能被 100 整除(即 2024 % 4 == 0 和 2024 % 100 != 0),因此它有资格成为闰年。
  3. 如果这个数能被4和100整除,那么我们就检查年份是否也能被400整除。如果是,那年就是闰年; 否则,该年将不是闰年。

比如4000能被4、100、400整除,所以是闰年。 从数学上讲,如果年 %4 == 0,年 %100 == 0 和年 %400 == 0,则该年为闰年。

以下部分提供了一个完整的 Python 实现,它将确定一年是否符合闰年的条件。 在对闰年概念有了基本的了解之后,让我们看一下不同的实现来检查年份是否是闰年。


通过 Python 中的简单 if-else 结构确定闰年

以下实现使用简单的 if-else 结构来确定闰年。

  1. 对于给定的年份输入,我们首先检查是否满足第二个条件; 如果是,则表明我们的积极判断(即该年是闰年)。
  2. 如果输入的年份不满足第 3 行中给出的复合条件,我们将检查输入的年份是否符合第三个条件并相应地显示我们的决定。
  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

如果我们想跳过使用日历模块,我们可以将简单的复合条件与三元条件运算符结合使用。

此外,存在许多其他选项来实现所需的程序(例如,匹配案例构造)。 我们让极客们去探索和实现不同的变体。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Django 中的 Slug

发布时间:2023/05/04 浏览次数:173 分类:Python

本篇文章旨在定义一个 slug 以及我们如何使用 slug 字段在 Python 中使用 Django 获得独特的帖子。

Django ALLOWED_HOSTS 介绍

发布时间:2023/05/04 浏览次数:181 分类:Python

本文展示了如何创建您的 Django 网站,为公开发布做好准备,如何设置 ALLOWED_HOSTS 以及如何在使用 Django 进行 Web 部署期间修复预期的主要问题。

Django 中的 Select_related 方法

发布时间:2023/05/04 浏览次数:129 分类:Python

本文介绍了什么是查询集,如何处理这些查询以及我们如何利用 select_related() 方法来过滤 Django 中相关模型的查询。

在 Django 中上传媒体文件

发布时间:2023/05/04 浏览次数:198 分类:Python

在本文中,我们简要介绍了媒体文件以及如何在 Django 项目中操作媒体文件。

Django 返回 JSON

发布时间:2023/05/04 浏览次数:106 分类:Python

在与我们的讨论中,我们简要介绍了 JSON 格式,并讨论了如何借助 Django 中的 JsonResponse 类将数据返回为 JSON 格式。

在 Django 中创建对象

发布时间:2023/05/04 浏览次数:59 分类:Python

本文的目的是解释什么是模型以及如何使用 create() 方法创建对象,并了解如何在 Django 中使用 save() 方法。

在 Django 中为多项选择创建字段

发布时间:2023/05/04 浏览次数:75 分类:Python

在本文中,我们将着眼于为多项选择创建一个字段,并向您展示如何允许用户在 Django 中进行多项选择。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便