'''

万年历

b:根据用户输入的年,先判断是否是闰年。

C:根据用户输入的月来判断月的天数

D:用循环计算用户输入的年份距1900年月1日的总天数。

E:用循环计算用户输入的月份距输入的年份的1月1日共有多少天。

F:相加D与E的天数,得到总天数。

G:用总天数来计算输入月的第一天的星期数。

H:根据G的值,格式化输出这个月的日历!

'''

#b #考虑闰年平年条件都知道吧?这个是基操,

def leap_year(year):

#(三元表达式) (基操)

#其实吧if else删除也可以,return就有返回True,False的效果

return True if (year%4 == 0 and year%100 != 0) or year%400 == 0 else False

# print(leap_year(2000))

#c

def Day(year, month):

#定义平年的每个月的天数,放入列表中

ping_year = [31,28,31,30,31,30,31,31,30,31,30,31]

#调用上面判断平年闰年的函数,是闰年就执行下面的,no就执行return的 (基操)

if leap_year(year):

ping_year[1] = 29

return ping_year[month-1]

# print(Day(2019,11))

#d

def how_day(year,month):

day = 0

for i in range(1900,year):

#年份累加

day += 366 if leap_year(i) else 365

for j in range(1, month):

#月天数累加 调用上面的函数

day += Day(year, j)

return day

print(how_day(1900,2))

#e

def month_day(year, month):

days = 0

ping_year = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

for i in range(1,month):

if leap_year(year):

ping_year[1] = 29

days = days + ping_year[i-1]

else:

days = days +ping_year[i-1]

return days

# print(month_day(2020,5))

#f

def zong_day(year, month):

sum2 = how_day(year, month)

return sum2

# print(zong_day(2020,11))

#G

def week(year, month):

WEEK = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]

return WEEK[(how_day(year,month)+1)%7]

# print(week(2020,10))

#H

def show():

year = int(input("输入年份:"))

month = int(input("输入月份:"))

print("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六")

msum_day=how_day(year,month)

#解释一下为什么要+1,简单的说:从1号到5号是几天?计算得话:5-1=4(天),

#显然不对,所以要加上本身的那天,也就是5-1+1=5(天),这么说应该能明白了吧?

mweek=(msum_day + 1) % 7

mmonth_day=Day(year, month)

for j in range(mweek):

print('\t\t',end="")

for i in range(1,mmonth_day+1):

#控制七天,换行

if (mweek + i) %7 == 0:

print(str(i)+"\t\t",end="")

print()

else:

print(str(i) + "\t\t", end="")

show()

总结:(代码可以复制粘贴,逻辑思维要有)

万年历确实是一个很考验基本功的题目

要考虑的因素很多比如平年,闰年,输入-2000,月份啊,天数啊,简单点就是,""用户""贼搞事情,不输入年月日,

给你整一堆花里花哨的输入,........当然我是没考虑这些哈哈哈,懒,还有就是麻烦,不考虑极端因素

但是最基本的就是你要考虑平年闰年,星期几的问题,我输出的时候,对应的日期是不是在对应的星期下面等等

对于函数的运用,逻辑都是一个考验,函数的封装调用,优化代码,都是靠自己想的,别说ctrl+c,ctrl+v, run一下 好了,那你凉透透的了

我现在,写的这个代码还是可以优化的,这代表着我现在目前这个阶段的一个思维逻辑,以后可能再回来看,可能就觉得自己傻啊,这个,这个啥啥的,原来可以优化,毕竟现在也是入门级

我专门百度了一下这个万年历的方法,发现一个博主写的贼溜,直接导包(import datetime, date, timedelta)如何直接用,哈哈哈

机智的一批,当然,我们的目的是实现这个功能是可以用,要是是为了锻炼直接的思维逻辑还是要自己写的哈

python万年历_python万年历相关推荐

  1. python打印万年历_python青苔计划(六)打印万年历

    青苔计划 /(ㄒoㄒ)/~~ 我这样的小白 万年历打完,感觉身体被掏空 请给我暖暖的拥抱 ╮(╯╰)╭ ----------正经的分割线---------- 任务要求 刚看到要打印万年历,我彻底懵逼了 ...

  2. python画代码-Python教程_Python画Mandelbrot集 代码

    Python教程_Python画Mandelbrot集 代码 作者:Comet 来源: 课课家 www.kokojia.com点击数:278发布时间:2015-06-19 11:17:19 曼德勃罗集 ...

  3. c语言实现爬虫功能,用C/C 扩展Python语言_python 调用c语言 python实现简单爬虫功能_python实现简单爬虫...

    用C/C 扩展Python语言 Python是一门功能强大的脚本语言,它的强大不仅表现在功能上,还表现在其扩展性上.她提供大量的API以方便程序员利用C/C++对Python进行扩展.因为执行速度慢几 ...

  4. python编程语言_python编程语言的简要历史

    python编程语言 The Python programming language is a general-purpose programming language that has carved ...

  5. 2019最新Python学习教程(Python视频教程_Python学习教程_Python学习路线):你心目中编程界的MVP是谁?

    2019最新Python学习教程(Python视频教程_Python学习教程_Python学习路线):你心目中编程界的MVP是谁?编程界的王者是渐落寞的Java还是大火的Python? 是不是你们也喜 ...

  6. python万年历_Python实现的简单万年历例子分享

    #!/usr/bin/env python2 #-*- coding:utf-8 -*- __author__ = 'jalright' """ 使用python实现万年 ...

  7. python万年历源代码_python万年历实现代码 含运行结果

    本文实例为大家分享了python实现万年历的具体代码,供大家参考,具体内容如下 #coding:utf-8 def leap_year(year):#判断平瑞年 if year%4==0 and ye ...

  8. python万年历实现代码_python万年历实现代码 含运行结果

    本文实例为大家分享了python实现万年历的具体代码,供大家参考,具体内容如下 #coding:utf-8 def leap_year(year):#判断平瑞年 if year%4==0 and ye ...

  9. python中调用万年历_python 打印万年历

    题目:打印万年历 已知条件 闰年条件:能被4整除且不能被100整除,或者能被400整除 1900年1月1日 是周一 解题思路 判断闰年; 判断当月有多少天; 这个月的1号是从周几开始的; 格式化打印日 ...

最新文章

  1. 编程之美2.9 斐波那契数列
  2. mysqldump造成Buffer Pool污染的研究 [转]
  3. Python开发第一篇 基础篇(下)
  4. ldd3笔记_2_加载模块方法, 模块程序组成【ZT】
  5. vscode调试Flutter
  6. 不小心点了计算机一键还原怎么操作,电脑一键还原在哪里?电脑怎样一键还原系统...
  7. 【Mysql】之基础sql语句模板
  8. 网络流行语“不作不死”英文入选美国词典
  9. 2022好用的便签记事日程提醒软件有哪些
  10. 7-22 循环日程表
  11. Hibernate 中 SessionFactory的创建
  12. jQuery学习小征途
  13. 安装搜狗输入法无法切到搜狗
  14. 【优化求解】基于加权黑猩猩算法WCHoA求解单目标问题matlab源码
  15. TX2 Install OpenCV(4.0.0)
  16. Step by Step WebMatrix网站开发之二:使用WebMatrix(3)
  17. Day9、ListView常用事件、点击按钮和点击每行的背景转换器Selector
  18. 为什么总是有人说 Java 啰嗦,却没人说 C++ 啰嗦?
  19. JVM在OOM日志排查
  20. (微软允许的激活方式)win8的激活以及重装系统后二次激活

热门文章

  1. [漏洞检测]Proxpy Web Scan设计与实现(未完待续)
  2. Socket网络编程--Libev库学习(3)
  3. 雨林木风与微软数年博弈:蚂蚁和大象共舞
  4. 亚马逊出的平板电脑_亚马逊推出新款平板电脑,售价90美元
  5. java jdom_JAVA JDOM生成XML
  6. 数独解题程序的python实现_python实现自动解数独小程序
  7. python几种排序_Python实现几种排序算法
  8. maven netty 配置_使用Springboot整合开发Netty(一个表白的小案例)
  9. 值得收藏的图片网站,设计素材不愁,还能承包你一年壁纸
  10. 电商页面设计需要的素材模板|好的模板就是好的参考