利用Python函数实现一个万历表完整示例


Posted in Python onJanuary 23, 2021

前言

大家可以根据格式化打印字符去调一下最后的输出,不过有中文好像不好调整,可以换成星期的单词,这样应该会好一点,format()函数可以用来格式化打印字符,format()可以使用字符串去调用,也可以独自使用。

可以点进格式化打印字符了解一下哦

示例代码

# 判断是否闰年
def isleap(year):
 return year % 4 == 0 and year % 100 != 0 or year % 400 == 0

# 判断月的天数
def month_days(year,month):
 if month in [1,3,5,7,8,10,12]:
 return 31
 if month == 2:
 if isleap(year):
 return 29
 else:
 return 28
 return 30

# 1900年到输入年份的总天数
def total_days(year):
 s = 0
 for i in range(1900,year):
 if isleap(i):
 s += 366
 else:
 s += 365
 return s

# 1月到输入月份的天数
def days(year,month):
 s = 0
 for i in range(1,month):
 s += month_days(year,i)
 return s

# 获取某年某月的日历
def monthcalendar(year,month):
 total = total_days(year) + days(year, month)
 a = total % 7
 print('星期日'.center(8, ' '), end='')
 print('星期一'.center(8, ' '), end='')
 print('星期二'.center(8, ' '), end='')
 print('星期三'.center(8, ' '), end='')
 print('星期四'.center(8, ' '), end='')
 print('星期五'.center(8, ' '), end='')
 print('星期六'.center(8, ' '), end='')
 print()
 count = 0
 for i in range(0, month_days(year, month) + a + 1):
 if i <= a:
 print(format(' ','10'), end='')
 count += 1
 else:
 print(format(str(i - a),'^10'), end='')
 count += 1
 if count == 7:
 count = 0
 print()
 print()

# 输出某年一年的日历
def yearcalendar(year):
 for i in range(1,13):
 print(f'{i}月:')
 monthcalendar(year,i)
 print()

# 开始函数
def start():
 while True:
 print('-------欢迎来到万历表查询页面-------')
 print('1.查询某年的日历\n2.查询某年某月的日历\n3.退出查询')
 print('---------------------------------')
 n = int(input('请输入你的操作:'))
 if n == 1:
 year = int(input('请输入要查询的年份:'))
 yearcalendar(year)
 elif n == 2:
 year = int(input('请输入要查询的年份:'))
 month = int(input('请输入1-12:'))
 monthcalendar(year,month)
 elif n == 3:
 print('退出成功')
 break
 else:
 print('指令错误,请重新输入!!!')
if __name__ == '__main__':
 start()

总结

到此这篇关于利用Python函数实现一个万历表的文章就介绍到这了,更多相关Python函数实现万历表内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python 异常处理实例详解
Mar 12 Python
Python EOL while scanning string literal问题解决方法
Sep 18 Python
Python实现的HTTP并发测试完整示例
Apr 23 Python
python selenium UI自动化解决验证码的4种方法
Jan 05 Python
Python中变量的输入输出实例代码详解
Jul 28 Python
Tensorflow 多线程设置方式
Feb 06 Python
Python实现一个简单的毕业生信息管理系统的示例代码
Jun 08 Python
python 实现关联规则算法Apriori的示例
Sep 30 Python
python 对一幅灰度图像进行直方图均衡化
Oct 27 Python
基于Python爬取搜狐证券股票过程解析
Nov 18 Python
利用python如何实现猫捉老鼠小游戏
Dec 04 Python
python 可视化库PyG2Plot的使用
Jan 21 Python
python将YUV420P文件转PNG图片格式的两种方法
Jan 22 #Python
如何使用Python进行PDF图片识别OCR
Jan 22 #Python
详解pandas映射与数据转换
Jan 22 #Python
python实现简单的井字棋游戏(gui界面)
Jan 22 #Python
Django url 路由匹配过程详解
Jan 22 #Python
浅析pandas随机排列与随机抽样
Jan 22 #Python
python 合并多个excel中同名的sheet
Jan 22 #Python
You might like
基于mysql的论坛(5)
2006/10/09 PHP
深入php list()函数的详解
2013/06/05 PHP
PHP过滤★等特殊符号的正则
2014/01/27 PHP
PHP文件操作简单介绍及函数汇总
2020/12/11 PHP
js对文章内容进行分页示例代码
2014/03/05 Javascript
调试代码导致IE出错的避免方法
2014/04/04 Javascript
深入理解javascript原型链和继承
2014/09/23 Javascript
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
JavaScript弹出新窗口并控制窗口移动到指定位置的方法
2015/04/06 Javascript
jQuery实现为图片添加镜头放大效果的方法
2015/06/25 Javascript
JavaScript实现仿新浪微博大厅和腾讯微博首页滚动特效源码
2015/09/15 Javascript
一些实用性较高的js方法
2016/04/19 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
原生js实现省市区三级联动代码分享
2018/02/12 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
如何以Angular的姿势打开Font-Awesome详解
2018/04/22 Javascript
Vue+tracking.js 实现前端人脸检测功能
2020/04/16 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)
2017/07/30 Python
利用python打印出菱形、三角形以及矩形的方法实例
2017/08/08 Python
python使用Matplotlib画条形图
2020/03/25 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
python matplotlib实现双Y轴的实例
2019/02/12 Python
python自制包并用pip免提交到pypi仅安装到本机【推荐】
2019/06/03 Python
详解python 降级到3.6终极解决方案
2020/02/06 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
2020/06/08 Python
某个公司的Java笔面试题
2016/03/11 面试题
农民入党思想汇报
2014/01/03 职场文书
教师校本培训方案
2014/02/26 职场文书
家长学校培训材料
2014/08/20 职场文书
琅琊山导游词
2015/02/05 职场文书
关于springboot配置druid数据源不生效问题(踩坑记)
2021/09/25 Java/Android
Java8利用Stream对列表进行去除重复的方法详解
2022/04/14 Java/Android
win10频率超出范围怎么办?win10老显示超出工作频率范围的解决方法
2022/07/07 数码科技