Python实例32:万年历制作
1. 万年历功能介绍
程序实现输入某年某月,打印输出当月日历功能。
2. 实例代码
# coding=utf-8 # 第一步:定义月份与名称对应的字典
month_dict = {1: '一月', 2: '二月', 3: '三月', 4: '四月', 5: '五月', 6: '六月',7: '七月', 8: '八月', 9: '九月', 10: '十月', 11: '十一月', 12: '十二月'}# 第二步:is_leap_year(year)函数判断是否为闰年
def is_leap_year(year):if year % 4 == 0 and year % 100 != 0 or year % 400 == 0: return True else: return False # 第三步:get_num_of_days_in_month(year, month)函数获取每月的天数
def get_num_of_days_in_month(year, month):if month in (1, 3, 5, 7, 8, 10, 12): return 31 elif month in (4, 6, 9, 11): return 30 elif is_leap_year(year): return 29 else: return 28 # 第四步:get_total_num_of_day(year, month)函数获取自1800年1月1日以来经过的天数
def get_total_num_of_day(year, month):days = 0 for y in range(1800, year): if is_leap_year(y): days += 366 else: days += 365for m in range(1, month): days += get_num_of_days_in_month(year, m)return days # 第五步: get_start_day(year, month)函数获取每月1日为星期几。星期日返回0,星期一返回1,依次类推,星期六返回6.
def get_start_day(year, month):return (3 + get_total_num_of_day(year, month)) % 7 # 第六步:get_month_name(month)函数获取每月的名称
def get_month_name(month):return month_dict[month] # 第七步:print_month_title(year, month)函数打印日历的首部
def print_month_title(year, month):print(' ', get_month_name(month), ' ', year, ' ')print('-------------------------------------')print(' 日 一 二 三 四 五 六 ')# 第八步:print_month_body(year, month)函数打印日历的数字部分
def print_month_body(year, month):"""'打印日历正文格式说明:空两个空格,每天的长度为5需要注意的是print加逗号会多一个空格"""i = get_start_day(year, month)# print(i)print(' ' * i, end='') # 从星期几开始则空5*几个空格for j in range(1, get_num_of_days_in_month(year, month)+1): print( '%5d' %j, end='') # 宽度控制,4+1=5i += 1 if i % 7 == 0: # i用于计数和换行 print(' ') # 每换行一次行首继续空格 # 第九步:主函数部分
year = int(input("请输入年份:"))
month = int(input("请输入当年月份:"))
print_month_title(year, month)
print_month_body(year, month)
3. 运行结果
Python实例32:万年历制作相关推荐
- 从零开始学习python | 实例讲解如何制作Python模式程序
本文分享自华为云社区<从零开始学习python | 通过示例学习如何制作Python模式程序>,原文作者:Yuchuan . Python编程语言很容易学习.易于语法实现的各种库使其脱颖而 ...
- python实例32[简单的HttpServer]
通常地我们要在不同平台间共享文件,samba,ftp,cifs,ntfs的设置都是有点复杂的, 我们可以使用python提供的httpserver来提供基于http方式跨平台的文件共享. 一 命令行启 ...
- python+百度翻译api制作中英文互转的代码应用实例
本篇文章主要讲解,python+百度翻译api制作中英文互转的代码应用实例 作者:任聪聪 前提准备 1.python 3.9版本 2.注册百度翻译开发者 地址:https://fanyi-api.ba ...
- python万年历制作_利用Python制作万年历
第一个Python小程序,制作简易万年历.现在开始学习Python的目的主要是为了学习人工智能 写这个小程序的目的主要是了解一下Python的简单语法使用,其实写这个程序之前,我还没有看Python的 ...
- arcgis python 教程-按区域消除--arcgis python实例教程
按区域消除--arcgis python实例教程 目的:对应细碎多边形,合并到周围的大多边形中,同时要求在同一个区域.例如对于处理多个县组成的图斑,某一个县的细碎多边形不能合并到别的县 使用方法: 工 ...
- [转载] 快速入门(完整):Python实例100个(基于最新Python3.7版本)
参考链接: Python | NLP餐厅评论的分析 Python3 100例 原题地址: http://www.runoob.com/python/python-100-examples.html g ...
- 【转载】快速入门(完整):Python实例100个(基于最新Python3.7版本)
原题地址: http://www.runoob.com/python/python-100-examples.html git地址: https://github.com/RichardFu123/P ...
- 咸鱼ZTMS实例—加速传感器制作平衡仪
咸鱼ZTMS实例-加速传感器制作平衡仪 MMA7660FC 加速度传感器基本使用 制作水平仪 MMA7660FC MMA7660FC可在六个方向定制垂直水平座向 集成了众多智能的运动功能,如方向.震动 ...
- 【转】Python实例100个
Python3 100例 原题地址: http://www.runoob.com/python/python-100-examples.html git地址: https://github.com/R ...
最新文章
- Python程序员的“避坑”指南
- mysqldump 备份报错
- 深入理解groupByKey、reduceByKey区别——本质就是一个local machine的reduce操作
- lunix系统安装及分区补充安装包
- VS2008 快捷键大全
- shell脚本详解(八)——一键部署自动化装机(PXE无人值守)
- 第十二届交博会正式启动 百度智慧交管解决方案助城市开启智能交通新纪元
- [学习OpenCV攻略][001][Ubuntu安装及配置]
- 吴恩达深度学习——深层神经网络
- USB端口在Mac上不起作用?这是修复方法
- 智伴机器人自动关机后怎么开机_智伴机器人
- 如何选择适合你的兴趣爱好(四十六),豫剧
- Linux命令 - df命令
- webim--web端即时通讯的实现
- get与navigate方法
- vb UBound 数据上界
- 如今的iOS开发者优胜劣汰,如何提升让自己不被淘汰?
- 降了!京东物流全体员工公积金调整,由12%降到5%!
- 认知电子战 (1.1):传统电子战
- 数据结构童话版 003新的学生