python怎么打印输出语句 (python怎么用函数打印日历)

如何在 Python 中打印日历?Python提供了一个内置的函数来打印日历,它还允许基于日历执行许多操作,有很多方法可以打印日历。让我们看看如何打印python日历。

python打印输出字符串,python怎么用函数打印日历

如何在Python中使用calendar

Python提供了一个内置模块calendar来打印输出日历,并允许执行其他各种操作。calendar模块有许多类和函数,可用于打印理想化的日历。日历从星期一开始,到星期日结束。在下面的代码中,我们使用 calendar.month()函数打印一个特定的月份,该函数有两个参数年份和月份。

python打印输出字符串,python怎么用函数打印日历

输出:

python打印输出字符串,python怎么用函数打印日历

不使用calendar模块打印输出日历

在不使用calendar模块的情况下打印日历可能是一件复杂的事情,通过使用循环、if-else判断、数学计算来实现。

python打印输出字符串,python怎么用函数打印日历

在Python中打印全年日历

我们使用calendar模块在python中打印全年日历,calendar.calendar()函数,以年份为参数。

python打印输出字符串,python怎么用函数打印日历

输出:

python打印输出字符串,python怎么用函数打印日历

calendar模块其他用法

  • 使用calendar.isleap()判断闰年
  • 使用calendar.leapdays()返回在两个年份之间的闰年总数。
  • 使用calendar.monthrange()返回一个元组数据(两个整数)。第一个:代表本月起始星期数(0:星期一 … 6:星期天)第二个:代表本月最后一天的日期数,即该月天数
  • 使用calendar.monthlen()返回指定月的天数。

python打印输出字符串,python怎么用函数打印日历

文中涉及代码:

import calendar
y=2023  
m=3
print(calendar.month(y,m))

month ={1:'January', 2:'February', 3:'March',
        4:'April', 5:'May', 6:'June', 7:'July',
        8:'August', 9:'September', 10:'October',
        11:'November', 12:'December'}

day =(y-1)% 400
day = (day//100)*5 + ((day % 100) - (day % 100)//4) + ((day % 100)//4)*2
day = day % 7

nly=[31,28,31,30,31,30,31,31,30,31,30,31]
ly =[31,29,31,30,31,30,31,31,30,31,30,31]
s=0

if y % 4 == 0:
    for i in range(m-1):
        s+= ly[i]
else:
    for i in range(m-1):
        s+= nly[i]

day+=s%7
day=day%7

space=''
space=space.rjust(2, ' ')

print('Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa')

if m==9 or m==4 or m==6 or m==11:
    for i in range(31+day):
        if i<=day:
            print(space, end=' ')
        else:
            print("{:02d}".format(i-day), end=' ')
            if (i+1)%7== 0:
                print()
elif m==2:
    if y%4==0:
        p=30
    else:
        p=29
    for i in range(p+day):
        if i<=day:
            print(space, end=' ')
        else:
            print("{:02d}".format(i-day), end =' ')
            if (i+1)% 7==0:
                print()
else:
    for i in range(32+day):
        if i<=day:
            print(space, end=' ')
        else:
            print("{:02d}".format(i-day), end=' ')
            if (i+1)%7==0:
                print()

print()

print (calendar.calendar(2023))

print(calendar.isleap(2022))  # False

print(calendar.leapdays(2000,2023))  # 6

print(calendar.monthrange(2023,3))  # (2, 31)

print(calendar.monthlen(2023,3))  # 31

感谢阅读,关注我,精彩继续!