python 简单万年历

该博客介绍了一个Python程序,用于生成指定年份的日历。程序首先判断是否为闰年,然后利用循环和条件判断输出每个月的日期,包括星期的排列。博客内容适合初学者,展示了Python日期处理和格式化输出的基本技巧。
摘要由CSDN通过智能技术生成
year=int(input('输入年份'))
rennian=year//4 -year//100 +year//400 #闰年的个数
c=(year+rennian)%7 #0-6  0代表星期天  1代表星期一 6代表星期6
m=c-1 #用于日历开头占位置的原始参数
if c==0: #因为0为星期天 前面要占6位
    m=6
a=[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] #创建月份天数列表
h ={1:'二',2:'三',3:'四',4:'五',5:'六',6:'七',7:'八',8:'九',9:'十',10:'十一',11:'十二'} #创建月份名称字典
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0: #判断闰年
    a[1] = 29 #闰年 直接替换a列表里面的28
b=c-1 #用于下面控制输出换行的参数
print(f'        今年为{year}年')
print('          一月') #因为一月在循环外所以要打印一次
print(' 一  二   三   四  五  六  七') #同样在循环外所以要打印一次
while m!=0: #根据上面的m参数来进行占位
    print('*',end='   ') #通过*来展示占位
    m=m-1
for i in range(12): #作为下面a列表的定位参数
    for e in range(1,a[i]+1): #开始打印每个月的天数
        if b%7==0: #当输出数为7个时换行
            print(f'\n{e:2}',end='  ')
            b=1 #重置参数b 方便进行下一次换行
        else:
            print(f'{e:2}',end='  ')
            b=b+1 #当参数没有到7时逐一递加直到加到7换行
    print()
    if i <11:
        print(f'           {h.get(i+1)}月') #通过定位字典里面的参数实现月份的打印
        print(' 一  二   三  四  五   六  七')
        for l in range(b%7): #因为开头占位在循环外所以重新写一遍换行代码 占位的个数就是上个月余下来的数
            print(' ',end='   ')

如果对你有帮助  求点赞  本人也是刚学python的菜鸟

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_74750838

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值