python制作万年历
最近进行python基础培训,课下作业制作万年历,之前没做过,感觉里面还是有很多需要学的。所谓万年历,就是咱们电脑或者手机的日期会记录每个月每天对应星期几。用python来制作万年历,就是从键盘输入年份和月份,然后输出对应的日历表。在制作过程中有如下问题需要思考:
万年历的起始时间,也就是从哪一天算起?
平年和闰年的天数不一样,同时,每个月的天数不一样,如何对输入日期距离起始日期的天数求和?
如何打印出万年历的样子?
针对这些问题进行思考,可以让逻辑更清楚。首先,万年历从1990年1月1日开始,对应星期一。求输入日期到1990年1月1日的天数可分为两部分,比如输入2019年9月,那么需要分别计算2018年12月31日到1990年1月1日的天数,以及2019年8月31号到2019年1月1号的天数,最后加1(关于加1这个还没懂,我的程序后面没有加1是对的,但是如果我加1,就错开一位了)。由于里面涉及到平年和闰年,所以需要先判断,同时之后求每个月天数时还要判断平年和闰年,所以直接写个判断函数。
#判断平年和闰年
def leap_year(year):if(year%4==0 and year%100==0) or (year%400==0):return Trueelse:return False
下面需要计算每个月的天数 ,其中需要注意2月份要判断平年和闰年,调用leap_year()函数即可。
#计算每个月的天数
def monthdays(year,month):if month==2:if leap_year(year):days=29else:days=28elif month in[4,6,9,11]:days=30else:days=31return days
接下来我们计算输入年份year和月份month代表的日期,距离1990年1月1日的天数,如前面所说需要分成两部分,
#计算总天数
def totaldays(year,month):yearday=0for i in range(1990,year):#计算输入年份之前的if leap_year(i):yearday+=366else:yearday+=365for i in range(1,month):#注意不能包括该月份yearday+=monthdays(year,i)return yearday
完成现在准备工作之后,就进行显示函数,利用Input()函数从控制台输入,打印过程需要注意
#显示函数
year=int(input("请输入年"))
month=int(input("请输入月"))
week=(totaldays(year,month))%7 #计算该月第一天是周几
print('日\t一\t二\t三\t四\t五\t六\t')
for i in range(0,week): #前面打印week个空格print("\t",end="")
for i in range(1,monthdays(year,month)+1): #c从week+1的位置开始打印数字if (totaldays(year,month)+i)%7==0: #天数为7的倍数时,记住要换行print(i,end="\n")else:print(i,end="\t")
运行之后,结果如下:
不过我还是没弄懂,有些程序是求出总天数之后加1,然后去模7,但是我这个程序出来结果是对的,一直想不明白,如果有知道的,麻烦指点一下,对了,如果print出来的是一二三四五六日,这种程序需要稍微改动一下,这里就不说了,大家可以自己思考一下。
python制作万年历相关推荐
- python万年历制作_利用Python制作万年历
第一个Python小程序,制作简易万年历.现在开始学习Python的目的主要是为了学习人工智能 写这个小程序的目的主要是了解一下Python的简单语法使用,其实写这个程序之前,我还没有看Python的 ...
- 用python制作万年历
- python交互式日历制作图片_2.利用Python制作电子版电影台历
2020嗖的一下就要过去了,想买一个豆瓣电影台历,官方价格是98,想着有点贵,就想利用学习的Python制作一个电子版的台历,效果图如下 非周六周日 带Tips 周六周日 界面整体的布局:头部仿台历便 ...
- 怎么用python自制计算公式_手把手教你用python制作简易计算器,能够记录你使用的情况...
话不多说,首先先看效果图,它能够记录你在使用过程中的历史,方便你查看是否有错: 接下来就仔细分析一下是如何制作的: 简易计算器 第一步:导入资源库 在过程中使用到了tkinter这个资源库,win+R ...
- 用 Python 制作可视化报表,这也太快了!
作者 | 小F 来源 | 法纳斯特 在数据展示中使用图表来分享自己的见解,是个非常常见的方法. 这也是Tableau.Power BI这类商业智能仪表盘持续流行的原因之一,这些工具为数据提供了精美的图 ...
- Get了!用Python制作数据预测集成工具 | 附代码
作者 | 李秋键 责编 | 晋兆雨 大数据预测是大数据最核心的应用,是它将传统意义的预测拓展到"现测".大数据预测的优势体现在,它把一个非常困难的预测问题,转化为一个相对简单的描述 ...
- 碉堡的小程序:用 Python 制作演示迷宫算法的 gif 动画
微信改版,加星标不迷路! 碉堡的小程序:用 Python 制作演示迷宫算法的 gif 动画 作者:neozhaoliang 本文要介绍的是我写的一个有趣的小程序,一个脱离了低级趣味的程序,一个有益于广 ...
- Python制作当年第一款手机游戏-贪吃蛇游戏(练习)
前言: 文章利用Python pygame做一个贪吃蛇的小游戏而且讲清楚每一段代码是用来干嘛的. 据说是贪吃蛇游戏是1976年,Gremlin公司推出的经典街机游戏,那我们今天用Python制作的这个 ...
- python制作解压工具_使用python制作一个解压缩软件
python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是 ...
最新文章
- 第十五届智能车竞赛不公平竞争情况反映以及审议结果
- Win10安装bash慢的解决方案
- Keras创建者深度思考:不要将AI作为操纵用户的工具
- mybaits二十八:逆向工程
- 判断python模型是否安装的办法
- python app服务器_Python应用02 Python服务器进化
- arcgis悬挂点修改_ArcGis拓扑的那些事儿(拓扑应用过程三)
- SAP Fiori应用里对国际化RTL需求(right-to-left)的支持
- c++中vector使用说明
- 调用gensim库训练word2vec词向量
- 实战!轻松搭建图像分类 AI 服务
- weightedrandomSamplers(2)
- 回溯法 —— 求解子集和问题
- linux安装consul集群
- 一文带你弄懂 CDN 技术的原理
- NVivo 12 Mac的大规模部署
- c语言里什么叫double,c语言double什么意思
- 回顾 12 个面向 Web 开发人员的在线代码编辑器
- 持续集成与持续部署(五)03-TravisCI——Travis CI和Docker的持续集成之所使用的基础组件、dockerfile配置、docker部署脚本
- 算法导论------递归算法的时间复杂度求解