利用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记录详细调用堆栈日志的方法
May 05 Python
pyqt5实现俄罗斯方块游戏
Jan 11 Python
python买卖股票的最佳时机(基于贪心/蛮力算法)
Jul 05 Python
对python 中re.sub,replace(),strip()的区别详解
Jul 22 Python
pytorch中tensor张量数据类型的转化方式
Dec 31 Python
Python调用Windows API函数编写录音机和音乐播放器功能
Jan 05 Python
对tensorflow 中tile函数的使用详解
Feb 07 Python
Python3标准库glob文件名模式匹配的问题
Mar 13 Python
Pytorch转onnx、torchscript方式
May 25 Python
PyQt5 QDockWidget控件应用详解
Aug 12 Python
Python Spyder 调出缩进对齐线的操作
Feb 26 Python
pytorch交叉熵损失函数的weight参数的使用
May 24 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
smarty的保留变量问题
2008/10/23 PHP
php 采集书并合成txt格式的实现代码
2009/03/01 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
thinkphp常见路径用法分析
2014/12/02 PHP
PHP中的魔术方法总结和使用实例
2015/05/11 PHP
php实现保存周期为1天的购物车类
2017/07/07 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
2020/01/26 PHP
比较新旧两个数组值得增加和删除的JS代码
2013/10/30 Javascript
JS弹出层的显示与隐藏示例代码
2013/12/27 Javascript
Javascript基础_嵌入图像的简单实现
2016/06/14 Javascript
Vue.use源码分析
2017/04/22 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
vue中监听路由参数的变化及方法
2019/12/06 Javascript
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
详解使用Python处理文件目录的相关方法
2015/10/16 Python
详解python中的json的基本使用方法
2016/12/21 Python
opencv python 傅里叶变换的使用
2018/07/21 Python
Python Threading 线程/互斥锁/死锁/GIL锁
2019/07/21 Python
python实现将文件夹内的每张图片批量分割成多张
2019/07/22 Python
python数据分析工具之 matplotlib详解
2020/04/09 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
2020/06/15 Python
用CSS3将你的设计带入下个高度
2009/08/08 HTML / CSS
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
美国批发供应商:Kole Imports
2019/04/10 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
英国计算机商店:Technextday
2019/12/28 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
2013年办公室秘书的个人自我鉴定
2013/10/24 职场文书
机械化及自动化毕业生的自我评价分享
2013/11/06 职场文书
幼儿园大班教学反思
2014/02/10 职场文书
入党个人总结范文
2015/03/02 职场文书
考研英语辞职信
2015/05/13 职场文书
六年级作文之关于梦
2019/10/22 职场文书
Golang 实现超大文件读取的两种方法
2021/04/27 Golang