'''

万年历

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

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

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

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

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

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

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

'''

def leap_year(year):

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]

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)

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写入表格

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! import xlwt #导入xlwt 库 book =xlwt.workboo ...

  2. python万年历_python万年历

    ''' 万年历 b:根据用户输入的年,先判断是否是闰年. C:根据用户输入的月来判断月的天数 D:用循环计算用户输入的年份距1900年月1日的总天数. E:用循环计算用户输入的月份距输入的年份的1月1 ...

  3. 怎么用python写名字_python中的__name__ 到底是个什么玩意?应该怎么用到它?

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:Python进击者 ( 想要学习Python?Pyth ...

  4. python写负数_python 负数

    python基础知识 python_1 Python解释器 CPython C语言开发的Python解释器,最广泛 IPython 一个交互式.功能增强的CPython Pypy Python语言写的 ...

  5. python写音乐_Python国产库推荐之musicpy:让你用代码来写音乐

    你想过用代码来写音乐吗?这里给大家介绍一个国人写的库 musicpy,让你用简洁的语法通过乐理逻辑写出优美的音乐. 这个库可以让你用非常简洁的语法,来表达一段音乐的音符,节奏等等信息,并且可以简单地输 ...

  6. 怎么用python写数据库_Python实现数据库编程方法详解

    本文实例讲述了Python实现数据库编程方法.分享给大家供大家参考.具体分析如下: 用PYTHON语言进行数据库编程, 至少有六种方法可供采用. 我在实际项目中采用,不但功能强大,而且方便快捷.以下是 ...

  7. python写情书_Python程序员用文字加密的方式,给女程序员写情书,一周后牵手回家_TONOW...

    谁说程序员不浪漫,尤其是Python程序员,对文字加密后,写情书只有特定的人才能看懂. image 在某公司,有这样一位Python程序员,我们叫他小福,由于性格比较内向,一直没有女朋友,直到今年6月 ...

  8. python写驱动程序_Python 我的第一个程序

    第一个python程序就出错,帮我看看 新手如何运行第一个python程序你知道最绝望的事是什么吗,是你见过最美的一棵树,那棵树不在了,你知道这辈子你都不会再遇见那么美的树了,永远不会,于是你看见森林 ...

  9. python写循环_Python 循环

    要计算1+2+3,我们可以直接写表达式: 要计算1+2+3+...+10000.直接写表达式就不太可能了.为了让计算机能计算成千上万次的重复运算,我们就需要循环语句. Python的循环有两种,一种是 ...

  10. python写我爱你_Python初体验之我爱你

    前言 大家好,我是阿皮.接下来的一段时间就让我们一起学习python吧! 阿皮会和大家一起学习,因为阿皮也是一个小白呢!(当然阿皮报了某编程的课,不会误导大家的,阿皮会结合自己的理解和大家分享的) 阿 ...

最新文章

  1. New Android Application 的介绍
  2. C#计时器,记录程序运行时长
  3. [翻译]How JavaScript Timers Work
  4. python使用xlrd库处理excel__API常见基本操作
  5. Zephyr OS 内核篇: 内核链表
  6. javascript:this 关键字
  7. 玩转GIT系列之【git submodule update出错提示子模组未对路径注册】
  8. java编写猫抓老鼠程序_Java抓鱼程序
  9. Spring 静态代理+JDK动态代理和CGLIB动态代理
  10. 苹果手机屏幕镜像搜索不到电视_康佳电视投屏不了,3个办法解决!
  11. 17 CoCos Creator-Node Tree 层级管理器
  12. python的自省机制
  13. atomic头文件编译_c++11 多线程(3)atomic 总结
  14. Boot Option中没有USB启动选项的解决办法
  15. 讯飞翻译机抢镜背后,跨语种沟通迈入全新时代
  16. php文字超出省略号,文字超过规定行数时自动生成省略号
  17. 绝顶高手是这样快速画美女的!
  18. 【soft6星评论】伯俊软件借用中台撬动新一轮互联网化
  19. [渝粤教育] 中国矿业大学 货币金融学 参考 资料
  20. css一个点,用纯CSS从一个点到另一个点绘制一条线(路径)

热门文章

  1. 研究生生存指南之论文
  2. Linux 网易云音乐问题汇总
  3. 计算机为什么逻辑判断准确,逻辑判断之评价型答题技巧
  4. 禾川伺服驱动器X2E-750调试记录
  5. 软件等于计算机程序加数据加什么,南航计算机软件数据结构上机实践报告
  6. Cocos2dx之UI组件
  7. java计算机毕业设计基于安卓Android的团务智慧管理APP(源码+系统+mysql数据库+Lw文档)
  8. mysql必须记住的单词_如何真正记住英语单词?
  9. CSS的三种引入方式(行内样式、内部样式、外部样式)
  10. 使用python的netCDF4库读取.nc文件 和 创建.nc文件