python万年历实验报告_Python编程——万年历
2017年五月份日历
万年历这个题目几乎是不论学哪种编程语言必要尝试的一个小知识,综合了循环,逻辑关系判断等各编程语言的基础知识。今天我们一起用Python实现简单的万年历功能(查看某年各个月份日历和查看确定月份日历)。
网上大概浏览了一部分代码,发现实现方法都是大同小异,本篇文章代码可能会略有不同,可供参考。
记得之前在学C语言的时候就去写过万年历,现在已经忘得一干二净了,用Python实现万年历主要参考了两篇文章,第一篇是向右奔跑老大之前写的java版万年历,还有一篇是在网上找的C语言实现万年历,大家也可以去参考这两篇文章的方法。
难点
万年历实现的难点自我感觉有以下几个:
1.计算某年一月一日为周几
2.计算某年确定月份的第一天为周几
3.整个日历格式的设定(调试是真的烦)
万年历实现
1.计算某年一月一日为周几
这里我看到网上大部分都是写的1990年一月一日为周一这个点进行判断计算其他年份的一月一日,或者是确定月份的第一天。还有一种是计算从1——年份-1这一段时间的总天数,然后+1除以7去计算得到该年份的一月一日或者是确定月份的第一天为周几(这个应该是一种计算问题,具体更多实现方法可以自己去查),这里我采用的是计算从1——该年的上一年的总天数+1,计算该年份的一月一日的周几。
**2.计算某年确定月份的第一天为周几 **
同样的道理,计算总天数之后加上今年已经过去的月份的总天数再加1除以7取余得到
3.格式问题
这个没办法,只能自己去调试,调整到一个合适的输出格式即可
文字表述可能不清楚,可以参考代码+注释
实现代码
# -*-coding:utf-8 -*-
# @name :Python万年历
# @author :loading_miracle
class Calendar(object):
days = [31,28,31,30,31,30,31,31,30,31,30,31]
def __init__(self, year=2017):#初始化默认2017年
self.year = year
if self.yearDays(year) == 366:
self.days[1] = 29
self.totalDays = 0
for i in range(1, self.year):
self.totalDays += self.yearDays(i)
#判断每年的天数
def yearDays(self,year):
return 366 if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0 else 365
# 查看某个月的日历
def months(self,month):
totalDays = self.totalDays
for i in range(1,month):
totalDays+=self.days[i-1]
#计算确定月份的第一天为周几
self.week = (totalDays+1) % 7
self.show(month)
#查看全年日历
def wholeYear(self):
# 计算确定年份的一月一日为周几
self.week = (self.totalDays+1) % 7
for i in range(1,13):
self.show(i)
#显示输出函数
def show(self,month):
print '\t\t{}年{}月份日历'.format(self.year,month)
print 'Sun Mon Tues Web Thur Fri Sat'
print '-----------------------------------------'
begin = 1
for j in range(0, self.week):
print '%4s' % '',
while begin <= self.days[month - 1]:
print '%4d' % begin,
begin += 1
self.week = (self.week + 1) % 7
if self.week % 7 == 0:
print '\n\n'
if __name__ == "__main__":
data = Calendar()
data.wholeYear()
data.months(5)
效果截图
样例图
有问题的可以在下方评论,重点还是理解这个逻辑
python万年历实验报告_Python编程——万年历相关推荐
- python综合实验报告_Python程序设计实验报告五:综合运用三种基本结构进行程序设计(综合性实验)...
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名姚彩琴学号3190505129 成绩 日期 2020.4.22 指导老师修宇 [实验名称]综合运用三种基本结构进行程序设计(综合性实 ...
- python综合实验报告_Python程序设计 实验报告
安徽工程大学 Python程序设计 实验报告 班级:物流192 姓名:刘马汉卿学号:319005211 成绩: 日期:2020年4月29日 指导老师:修 ...
- python数据分析实验报告_Python数据分析综合小练习:销售数据分析
有这样一个小小的练习题: 卖电子商品的老板,每天记录了自己卖出的U盘,电脑支架,插座,电池,音箱,鼠标,usb数据线,手机充电线等数量,客户的需求是一方面,也可以通过客户购买关联性比较强的商品进行引导 ...
- python投资分析实验报告_Python的实验报告怎么写?
以面向对象程序设计实验为例: 一.实验目的了解面向对象程序设计思想 了解对象.类.封装.继承.方法.构造函数和析构函数基本概念 掌握定义类.成员变量.成员函数.静态变量和静态方法 掌握通过类定义实现继 ...
- spark编程基础python版实验报告_Spark编程基础(Python版)
章 大数据技术概述 1.1 大数据概念与关键技术 1.1.1 大数据的概念 1.1.2 大数据关键技术 1.2 代表性大数据技术 1.2.1 Hadoop 1.2.2 Spark 1.2.3 Flin ...
- python万年历实验报告_Python实现的简单万年历例子分享
#!/usr/bin/env python2 #-*- coding:utf-8 -*- __author__ = 'jalright' """ 使用python实现万年 ...
- python爬虫实验报告_python爬虫实验
原博文 2013-06-28 13:30 − 那天在新浪微博上看到北北出的题目,由于最近也在做类似的爬虫研究,所以就有了这个实验. 后来在QQ上和北北说了下,要求是啥都抓,就抓乌云的... 然后就开始 ...
- python数据分析实验报告_Python 数据分析入门实战
本训练营中,我们将学习怎么样使用 Python 进行数据分析.课程将从数据分析基础开始,一步步深入讲解.从 Python 的基础用法到数据分析的各种算法,并结合各种实例,讲解数据分析过程中的方方面面. ...
- python面向对象实验报告_Python 面向对象 | 菜鸟教程
Python 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触过 ...
最新文章
- Linux 下安装cnpm淘宝镜像命令npm
- Java切面理解_Spring AOP面向切面编程:理解篇
- UCenter实现同步登陆原理
- 2012年CS毕业生
- 人脸识别(二)——训练分类器
- 计算机与新闻业未来发展,计算机学院举办“智创未来,谈思维与职业发展”活动...
- 关于各种JOIN连接的解释说明【原创】
- 什么是云计算时代?学云计算能做什么呢
- EntityFramework Core并发导致显式插入主键问题
- JS获取短信验证码60秒
- ubuntu18.04窗口截图和选区截图快捷键
- BeX5使用疑难总结
- python爬虫入门实例
- Win11怎么设置鼠标箭头图案?Win11更换鼠标图案的方法
- 5s的app显示无法连接服务器,苹果手机无法连接到app store怎么办
- linux中grep的用法
- 科罗拉多州立大学计算机科学,科罗拉多州立大学的世界排名
- php 文件图片上传
- u检验、t检验、F检验、卡方检验详细分析
- 大数据算法_大数据算法解析,如何创建用户画像实现千人千面?