震惊!!!还能用Pyhton纯手工打造万年历?这个真的没想到!

本文通过Python实现万年历功能,详细解析确定每月第一天星期、控制输出格式及异常处理的关键步骤,适合初学者提升日期处理和字符串格式化技能。
摘要由CSDN通过智能技术生成

食用完本文,你将掌握

  1. 如何快速确定两个日期之间有多少天.
  2. 字符串常见的格式化处理方式.
  3. for … in 循环的灵活应用
  4. 异常的捕获与处理
    话不多说,直接开始现场纯手工打造~

1. 题目需求:万年历(按单月查看)

1.从控制台输入年份,输入月份,输出如下的万年历:
2021年4月

2. 思路分析:将该月天数,以7天为一行、按顺序进行输出,有以下关键点:

2.1. 如何确定当月1号在星期几?

a). 已知公元元年1月1号星期一(即公元1年1月1号,ps:没有公元0年,且本文以现行格里高利历为准,不考虑儒略历),可以通过该月第一天与公元元年1月1号的天数差,对7取模,来确定该月第一天对应的星期几.

b). 天数差 = (公元0年该年的天数差)+该年1月1号该月1号的天数差)

2.2. 如何进行将列数控制在7列,且每列只输出7个数 ?

a).上述天数差对7取模的结果,即上月月末在本月的占位,可以在打印时输出对应的空字符串
b).对空字符串本月天数进行打印,且end = " ",当空格数与打印的天数的个数是7的倍数时,进行一次换行( print() ).

2.3. 如何进行字符串的格式化输出?

		# %s任意类型,%d整数,%f浮点数
		year = 2021 
		month = 3
        print('%23s' % (f'公历{year}年{month}月'))  # 23表示占位符,即这条数据输出的宽度
        print('%2d ' % i,end=' ')   # 输出宽度为2的数字
        print('%2s %2s %2s %3s %2s %2s %2s' % ('一', '二', '三', '四', '五', '六', '日'))   # 此处前后一一对应
        
        print('{0:.3}'.format(3.1415926))    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值