利用Python怎么输出一个月份日历表

  介绍

利用Python怎么输出一个月份日历表?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

一、题目要求与分析

根据输入的年和月,打印该月的日历。如图所示:

利用Python怎么输出一个月份日历表

题目分析:复杂的问题往往很简单,只需要找到拆分点即可,就像这种题可以分为三个函数:

? ?函数1:计算并返回某年某月某日是星期几;

? ?函数2:判断某年是否是闰年;

? ?函数3:打印所给年月的日历。

emmm……这么一分析可能会引起很多人若有所思,对的,你的现在的思路完全正确,之所以要判定某一个日子是星期几是因为我们要知道每月的1号是周几才行(注意找日历的规律),那之所以要判定是否是闰年是因为有了二月份这一特殊的存在,最后之所以要打印,好吧,你不打印我怎么看。

为了方便起见,我们在这里直接把函数的名字给定一下:

? ?函数1:天(y、m, d)——y为年,m为月,d为天

? ?函数2:isLeapYear(年)——注意这种小驼峰的命名方式,一看就是正规军

? ?函数3:日历(y、m)——打印,打印,这里会遇到很多格式性问题

二,先看源代码

纯手工打造,你不喜欢看也不得行,今天你需要把它研究一波再走咯~

def 天(y), m, d): #计算y年m月d日是星期几=,,y0  y 作用;(14,安康;m)//12=,,x  y0  +, y0//4,安康,y0//100, +, y0 //400=,,m0  m  +, 12 *((14,安康;m)//12),安康;2   ,d0 =,(时间+ d  x  +, 31 * m0//12), %, 7   ,return  d0  #注意,周日是0      def  isLeapYear(年):#判断一年是否闰年=,,isLeapYear  True    4,if  year  %,,==0:, #整除可不是等于0天   100年,if  year  %,,==0:   400年,if  year  %,,==0:   isLeapYear =, True   ,其他的:   ,isLeapYear =False   ,其他的:=,,isLeapYear  True    ,其他的:=,,isLeapYear  False  #注意是一个等号还是两个等号   return  isLeapYear      def 日历(y), m):, #打印y年m月日历   ,打印(& # 39;,{}年{}月& # 39;.format (y、m))   ,打印(& # 39;将苏\ tM \ tTu \ tW \ t \ \特遣部队tsa # 39;)   ,#请在下面编写代码   ,# * * * * * * * * * *,Begin  * * * * * * * * * *, #   ,month_1 =, (1、3、5、7、8、10、12)=,month_2  (4、6、9、11)   momth_number =, 0   ,if  isLeapYear (y):, #计算这个月有多少天==,if  m  2:   month_number =, 29岁   ,其他的:   ,if  m  month_1拷贝:   ,month_number =31   ,if  m  month_2拷贝:   month_number  30岁=,   ,其他的:==,if  m  2:   ,month_number =28   ,其他的:   ,if  m  month_1拷贝:   ,month_number =31   ,if  m  month_2拷贝:=,month_number  30,   ,=,table 天(y), m, 1), #空格,排列输出   ,for  j  range 拷贝(时间+ 1,month_number  1):, #注意加一   ,if  j ==, 1:   ,打印(“\ t", *,表,最终获得=,& # 39;& # 39;)=,,j  str (j)   ,打印(j  +,“\ t",最终获得=,& # 39;& # 39;)=,,j  eval (j)   ,if  (j  +,天(y), m, 1)), %, 7,==, 0:   ,打印(“\ r")   ,打印(“\ r")   ,   for  (y、m),拷贝((2020年,12),,(2017 2),(2)2016年]:   ,日历(y),米)   ,打印(& # 39;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # 39;)

三,我们来逐个fenxi

<强>(1)天(y, m, d)函数

这个函数没有什么实质性的技术含量,因为这里涉及到一个数学的问题,比如,直接用数学公式,下边我提供一下本函数用的三个数学公式:

利用Python怎么输出一个月份日历表

假如给定了y, m, d,则上边的d0就是要求的星期几。

<强>注意:强星期日代表的数字是0,切记,但别问我咋知道的。

函数就这样出来了:

def 天(y), m, d):=,,y0  y 作用;(14,安康;m)//12=,,x  y0  +, y0//4,安康,y0//100, +, y0 //400=,,m0  m  +, 12 *((14,安康;m)//12),安康;2   ,d0 =,(时间+ d  x  +, 31 * m0//12), %, 7   d0, return 

<强> (2)disLeapYear(年)函数

利用Python怎么输出一个月份日历表