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:万年历制作相关推荐

  1. 从零开始学习python | 实例讲解如何制作Python模式程序

    本文分享自华为云社区<从零开始学习python | 通过示例学习如何制作Python模式程序>,原文作者:Yuchuan . Python编程语言很容易学习.易于语法实现的各种库使其脱颖而 ...

  2. python实例32[简单的HttpServer]

    通常地我们要在不同平台间共享文件,samba,ftp,cifs,ntfs的设置都是有点复杂的, 我们可以使用python提供的httpserver来提供基于http方式跨平台的文件共享. 一 命令行启 ...

  3. python+百度翻译api制作中英文互转的代码应用实例

    本篇文章主要讲解,python+百度翻译api制作中英文互转的代码应用实例 作者:任聪聪 前提准备 1.python 3.9版本 2.注册百度翻译开发者 地址:https://fanyi-api.ba ...

  4. python万年历制作_利用Python制作万年历

    第一个Python小程序,制作简易万年历.现在开始学习Python的目的主要是为了学习人工智能 写这个小程序的目的主要是了解一下Python的简单语法使用,其实写这个程序之前,我还没有看Python的 ...

  5. arcgis python 教程-按区域消除--arcgis python实例教程

    按区域消除--arcgis python实例教程 目的:对应细碎多边形,合并到周围的大多边形中,同时要求在同一个区域.例如对于处理多个县组成的图斑,某一个县的细碎多边形不能合并到别的县 使用方法: 工 ...

  6. [转载] 快速入门(完整):Python实例100个(基于最新Python3.7版本)

    参考链接: Python | NLP餐厅评论的分析 Python3 100例 原题地址: http://www.runoob.com/python/python-100-examples.html g ...

  7. 【转载】快速入门(完整):Python实例100个(基于最新Python3.7版本)

    原题地址: http://www.runoob.com/python/python-100-examples.html git地址: https://github.com/RichardFu123/P ...

  8. 咸鱼ZTMS实例—加速传感器制作平衡仪

    咸鱼ZTMS实例-加速传感器制作平衡仪 MMA7660FC 加速度传感器基本使用 制作水平仪 MMA7660FC MMA7660FC可在六个方向定制垂直水平座向 集成了众多智能的运动功能,如方向.震动 ...

  9. 【转】Python实例100个

    Python3 100例 原题地址: http://www.runoob.com/python/python-100-examples.html git地址: https://github.com/R ...

最新文章

  1. Python程序员的“避坑”指南
  2. mysqldump 备份报错
  3. 深入理解groupByKey、reduceByKey区别——本质就是一个local machine的reduce操作
  4. lunix系统安装及分区补充安装包
  5. VS2008 快捷键大全
  6. shell脚本详解(八)——一键部署自动化装机(PXE无人值守)
  7. 第十二届交博会正式启动 百度智慧交管解决方案助城市开启智能交通新纪元
  8. [学习OpenCV攻略][001][Ubuntu安装及配置]
  9. 吴恩达深度学习——深层神经网络
  10. USB端口在Mac上不起作用?这是修复方法
  11. 智伴机器人自动关机后怎么开机_智伴机器人
  12. 如何选择适合你的兴趣爱好(四十六),豫剧
  13. Linux命令 - df命令
  14. webim--web端即时通讯的实现
  15. get与navigate方法
  16. vb UBound 数据上界
  17. 如今的iOS开发者优胜劣汰,如何提升让自己不被淘汰?
  18. 降了!京东物流全体员工公积金调整,由12%降到5%!
  19. 认知电子战 (1.1):传统电子战
  20. 数据结构童话版 003新的学生

热门文章

  1. 【记录】前端技能升级中坑集合
  2. java 门禁接口_java实现门禁系统
  3. 使用python爬取亚马逊商品switch到货通知、价格,并发送email通知
  4. 怎样减少企业中那些惊人的“无效工作”?
  5. ansa打开catia文件_据说这是最高效的前处理软件——ANSA
  6. DSP stm32F28379的使用笔记
  7. Intel Xeon Phi Coprocessor驱动程序MPSS的安装过程
  8. 100楼层和两个玻璃球
  9. 亚瑟阿伦的36个问题
  10. 区块链学习-智能合约与ICO