当前位置: 首页 > news >正文

练习题:41

目录

Python题目

题目

题目分析

需求理解

关键知识点

闰年判断规则分析

代码逻辑分析

代码实现

代码解释

运行思路

1. 程序启动与输入获取

2. 闰年判断逻辑执行

3. 结果输出

总结

结束语

Python题目

题目

闰年的判断规则是:普通年份能被 4 整除但不能被 100 整除的为闰年,世纪年份能被 400 整除的是闰年。编写一个 Python 程序,输入一个年份,判断该年份是否为闰年,并输出相应的结果。

题目分析

需求理解

本题的核心需求是编写一个 Python 程序,根据用户输入的年份,判断该年份是否为闰年,并输出对应的判断结果。

关键知识点

要解决这个问题,需要掌握以下 Python 基础知识点:

  1. 输入函数input() 函数用于从用户那里获取输入信息。在本题中,借助该函数获取用户输入的年份。不过要注意,input() 返回的是字符串类型,所以需要使用 int() 函数将其转换为整数类型,才能进行后续的数值运算。
  2. 条件判断语句if-else 语句是 Python 中用于实现条件判断的关键语句。本题要依据闰年的判断规则,运用该语句来判断输入的年份是否为闰年,并根据判断结果执行不同的代码块。
  3. 逻辑运算符and 和 or 是 Python 中的逻辑运算符。and 表示逻辑与,只有当所有条件都为真时,整个表达式才为真;or 表示逻辑或,只要有一个条件为真,整个表达式就为真。在本题中,需要使用这两个逻辑运算符来组合闰年判断的条件。
  4. 取模运算符% 是 Python 中的取模运算符,用于计算两个数相除的余数。在本题中,通过该运算符判断年份能否被 4、100 或 400 整除。

闰年判断规则分析

闰年的判断规则包含两种情况:

  1. 普通年份:普通年份指的是不是整百的年份。对于普通年份,若能被 4 整除但不能被 100 整除,那么该年份就是闰年。例如 2004 年,2004 能被 4 整除(2004 % 4 = 0),且不能被 100 整除(2004 % 100 ≠ 0),所以 2004 年是闰年;而 2005 年,2005 不能被 4 整除(2005 % 4 ≠ 0),所以 2005 年不是闰年。
  2. 世纪年份:世纪年份指的是整百的年份,如 1900 年、2000 年。对于世纪年份,只有能被 400 整除时,才是闰年。例如 2000 年,2000 能被 400 整除(2000 % 400 = 0),所以 2000 年是闰年;而 1900 年,1900 不能被 400 整除(1900 % 400 ≠ 0),所以 1900 年不是闰年。

代码逻辑分析

  1. 获取输入:程序首先使用 input() 函数获取用户输入的年份,并使用 int() 函数将其转换为整数类型,以便后续进行数值运算。
  2. 条件判断:使用 if-else 语句结合逻辑运算符 and 和 or 对输入的年份进行判断。判断条件 (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0) 涵盖了普通年份和世纪年份的判断规则。
  3. 输出结果:根据判断结果,使用 print() 函数输出相应的信息,告知用户输入的年份是否为闰年。

代码实现

# 获取用户输入的年份
year = int(input("请输入一个年份: "))

# 判断是否为闰年
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print(f"{year} 年是闰年。")
else:
    print(f"{year} 年不是闰年。")

    代码解释

    1. 获取用户输入:使用 input() 函数获取用户输入的年份,由于 input() 返回的是字符串类型,所以使用 int() 函数将其转换为整数类型。
    2. 判断闰年:根据闰年的判断规则,使用条件语句进行判断。(year % 4 == 0 and year % 100 != 0) 表示普通年份能被 4 整除但不能被 100 整除;(year % 400 == 0) 表示世纪年份能被 400 整除。使用 or 逻辑运算符将这两个条件组合起来。
    3. 输出结果:根据判断结果,使用 print() 函数输出相应的信息。

    运行思路

    1. 程序启动与输入获取

    • 当你运行这个 Python 程序时,程序首先会执行 year = int(input("请输入一个年份: ")) 这行代码。
      • input("请输入一个年份: ") 部分会在控制台显示提示信息 “请输入一个年份:”,然后等待用户输入。用户在控制台输入一个表示年份的数字后,按下回车键,输入的内容会作为字符串被 input() 函数获取。
      • 接着,int() 函数会尝试将这个字符串转换为整数类型。例如,如果用户输入的是 2024int("2024") 会把字符串 "2024" 转换为整数 2024,并将其赋值给变量 year。如果用户输入的不是有效的数字字符串,比如输入了字母或其他非数字字符,程序会抛出 ValueError 异常。

    2. 闰年判断逻辑执行

    • 程序继续执行到条件判断语句 if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
      • 首先来看 year % 4 == 0 and year % 100 != 0 这部分,它用于判断普通年份是否为闰年。year % 4 会计算 year 除以 4 的余数,如果余数为 0,说明 year 能被 4 整除;year % 100 会计算 year 除以 100 的余数,如果余数不为 0,说明 year 不能被 100 整除。只有当这两个条件同时满足时,这部分表达式的值才为 True。例如,对于年份 20242024 % 4 的结果是 0,2024 % 100 的结果是 24,所以 2024 % 4 == 0 and 2024 % 100 != 0 的值为 True
      • 再看 year % 400 == 0 这部分,它用于判断世纪年份是否为闰年。year % 400 会计算 year 除以 400 的余数,如果余数为 0,说明 year 能被 400 整除。例如,对于年份 20002000 % 400 的结果是 0,所以 2000 % 400 == 0 的值为 True
      • 整个条件判断语句使用 or 逻辑运算符将上述两部分连接起来。这意味着只要 year % 4 == 0 and year % 100 != 0 或者 year % 400 == 0 其中一个条件为 True,整个条件表达式 (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0) 的值就为 True

    3. 结果输出

    • 如果条件表达式的值为 True:说明输入的年份是闰年,程序会执行 print(f"{year} 年是闰年。") 这行代码。例如,当输入 2024 时,由于满足闰年条件,程序会在控制台输出 2024 年是闰年。
    • 如果条件表达式的值为 False:说明输入的年份不是闰年,程序会执行 else 语句块中的 print(f"{year} 年不是闰年。") 代码。例如,当输入 2025 时,不满足闰年条件,程序会在控制台输出 2025 年不是闰年。

    总结

    程序通过获取用户输入的年份,依据闰年的判断规则进行条件判断,最后根据判断结果输出相应的信息,告知用户该年份是否为闰年。在整个运行过程中,关键在于正确处理用户输入、准确运用取模运算和逻辑运算符进行闰年判断,以及根据判断结果输出合适的信息。

    结束语

    通过这道闰年判断的编程练习,你对 Python 的基础语法运用,尤其是条件判断、数据类型转换和输入输出操作,想必有了更扎实的理解。这看似简单的代码,实则蕴含着编程逻辑的精妙之处,将现实生活中的规则用代码准确无误地实现,这正是编程的魅力所在。

    在未来的学习中,你会遇到更多复杂的问题,但解决这道题的思路和方法都是宝贵的基石。不管是判断复杂的业务规则,还是处理海量的数据,扎实的基础都能让你游刃有余。要是在后续实践中,你对这道题的解法有新的思考,或者在其他编程挑战中遇到难题,随时都能回顾总结。编程之路,探索不止,期待你在代码世界里解锁更多精彩!

    相关文章:

  1. VideoPipe-使用VLC构建RTSP串流显示
  2. 核函数简述
  3. RagFlow+Ollama 构建RAG私有化知识库
  4. python进阶篇-面向对象
  5. 梁文锋亲自挂名DeepSeek发布新论文
  6. 将jar安装到Maven本地仓库中
  7. 用STC-ISP写延时函数
  8. vue从入门到精通(十):绑定样式
  9. 从零开始构建一个小型字符级语言模型的详细教程(基于Transformer架构)之一数据准备
  10. 6.【线性代数】—— 列空间和零空间
  11. spring cloud 微服务部署(2025年)第三章:Nacos、LoadBalancer、GateWay、Ribbon集成之网关Gateway部署
  12. 【Java】逻辑运算符详解:、|| 与、 | 的区别及应用
  13. 解锁D3.js与PlantUML的交互奥秘:探索知识图谱数据可视化新领域
  14. AI工具篇:利用DeepSeek+Kimi 辅助生成综述汇报PPT
  15. Spring Boot 自动装配原理深度剖析
  16. 网络分析仪E5071C的回波损耗测量
  17. Java:数组的定义与使用
  18. ES8中 async 和await的用法详细的总结
  19. SpringAI系列 - RAG篇(三) - ETL
  20. 【Linux网络编程】应用层协议HTTP(请求方法,状态码,重定向,cookie,session)
  21. 马上评|独生子女奖励不能“私了”,政府诚信是第一诚信
  22. 《中国医药指南》就“宫颈癌等论文出现男性病例”致歉:辞退涉事编辑
  23. 在海拔3980米驻守:“全国先进工作者”刘鹏与洛戈梁子警务站的9年
  24. 9金收官!跳水世界杯总决赛朱子锋、程子龙包揽男子10米台冠亚军
  25. 国家能源局:鼓励各地探索深远海、沙戈荒等可再生能源制氢场景
  26. 市场驱动的系统改造:丹麦零弃风经验研究