| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> python练习——万年历 -> 正文阅读 |
|
[Python知识库]python练习——万年历 |
目录 一、题目描述A:先输出提示语句,并接受用户输入的年、月。 B:根据用户输入的年,先判断是否是闰年。 C:根据用户输入的月来判断月的天数。 F:相加D与E的天数,得到总天数。 H:根据G的值,格式化输出这个月的日历! 二、解析1、分析????????根据题目的八个要求,可以看出有些功能是重复或者说需要相互调用的,所以可以用模块的思想将每个要求封装成函数; 2、功能①判断是否是闰年函数????????根据闰年的判断规则,如果年是4的倍数,但不是100的倍数则是闰年或者是400的整数倍也是闰年,所以函数需要传入一个参数(年份)
②判断输入月的天数的函数????????除了2月份会根据平年和闰年发生变化以外, 每月的天数是已经确定好的;所以此时需要调用已经定义好的判断闰年的函数才能确定二月的天数;所以函数需要传入两个参数(月份和年份) ? ? ? ? 此时有两个小技巧,一个是判断月份是那月,最开始用的是用相等加上or去判断是否满足条件,其实可以将大月或者小月的月份写到一个列表中,然后再通过in去判断;第二个是在确定天数时,可以先定义好一个常用值,然后根据月份去修改其值,最后返回常用值即可,这样就少了几行的赋值以及返回的代码
③计算年份距离1900的总天数的函数? ? ? ? 因为平年跟闰年的天数不一样,所以要调用判断闰年的函数,确定其一年的总天数; ? ? ? ? 总天数也就是相当于求每年的天数之和即可;所以需要去遍历每年的天数求其总和即为结果;所以函数需要传入一个参数(年份)
④ 月份距离1月1日的天数的函数? ? ? ? 距离1月1日的天数也就是每月天数的总和,此时就先需要确定其每月的天数,也就是需要调用之前定义的函数,还需要知道的是其年份判断是否闰年,所以函数需要传入两个参数(年份和月份) ? ? ? ? 遍历每月的天数(通过调用函数而来),然后将其求和,得到的就是需要的结果
⑤确定星期几的函数? ? ? ? 首先通过调用求年份距离的天数和月份的天数得到其天数总和,所以函数需要传入两个参数(月份和年份) ? ? ? ? 然后将总和加一(因为得到的是月份,而算天数时要奖当日计算再内),然后对7求余即为星期几
⑥格式化输出日历函数? ? ? ? 输出有两种格式,一种是星期日在第一天,一种是星期日在最后一天; ? ? ? ? 第一种方式:星期日在第一天,根据得到的星期几函数(也就是当月1号的星期几函数),可以确定第一天的位置(也就是1的位置); ? ? ? ? 日历也就是输出1到总天数(根据月份确定)在对应的位置(星期几),由于1号的位置已经确定,而一号前面的则为空,所以单独遍历输出空格,然后再输出日历; ? ? ? ? 一周对应的是七天,也就是每七天进行一次换行,所以还需要定义一个计数器 ? ? ? ? 第二种方式:也就是星期日在最后一天,其他逻辑都是一样的,只是在确定1号的位置不一样; ? ? ? ? 本来周日的位置为第一个,但是现在变成了最后一个,也就是位置向后移了6位,所以只需要计算位置的时候先将其加上,然后再求余即可
三、源码
四、经验?
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 14:51:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |