首页 > 编程语言 > 利用Python函数实现一个万历表完整示例
2021
01-23

利用Python函数实现一个万历表完整示例

前言

大家可以根据格式化打印字符去调一下最后的输出,不过有中文好像不好调整,可以换成星期的单词,这样应该会好一点,format()函数可以用来格式化打印字符,format()可以使用字符串去调用,也可以独自使用。

可以点进格式化打印字符了解一下哦

示例代码

# 判断是否闰年
def isleap(year):
 return year % 4 == 0 and year % 100 != 0 or year % 400 == 0

# 判断月的天数
def month_days(year,month):
 if month in [1,3,5,7,8,10,12]:
 return 31
 if month == 2:
 if isleap(year):
 return 29
 else:
 return 28
 return 30

# 1900年到输入年份的总天数
def total_days(year):
 s = 0
 for i in range(1900,year):
 if isleap(i):
 s += 366
 else:
 s += 365
 return s

# 1月到输入月份的天数
def days(year,month):
 s = 0
 for i in range(1,month):
 s += month_days(year,i)
 return s

# 获取某年某月的日历
def monthcalendar(year,month):
 total = total_days(year) + days(year, month)
 a = total % 7
 print('星期日'.center(8, ' '), end='')
 print('星期一'.center(8, ' '), end='')
 print('星期二'.center(8, ' '), end='')
 print('星期三'.center(8, ' '), end='')
 print('星期四'.center(8, ' '), end='')
 print('星期五'.center(8, ' '), end='')
 print('星期六'.center(8, ' '), end='')
 print()
 count = 0
 for i in range(0, month_days(year, month) + a + 1):
 if i <= a:
 print(format(' ','10'), end='')
 count += 1
 else:
 print(format(str(i - a),'^10'), end='')
 count += 1
 if count == 7:
 count = 0
 print()
 print()

# 输出某年一年的日历
def yearcalendar(year):
 for i in range(1,13):
 print(f'{i}月:')
 monthcalendar(year,i)
 print()

# 开始函数
def start():
 while True:
 print('-------欢迎来到万历表查询页面-------')
 print('1.查询某年的日历\n2.查询某年某月的日历\n3.退出查询')
 print('---------------------------------')
 n = int(input('请输入你的操作:'))
 if n == 1:
 year = int(input('请输入要查询的年份:'))
 yearcalendar(year)
 elif n == 2:
 year = int(input('请输入要查询的年份:'))
 month = int(input('请输入1-12:'))
 monthcalendar(year,month)
 elif n == 3:
 print('退出成功')
 break
 else:
 print('指令错误,请重新输入!!!')
if __name__ == '__main__':
 start()

总结

到此这篇关于利用Python函数实现一个万历表的文章就介绍到这了,更多相关Python函数实现万历表内容请搜索自学编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持自学编程网!

编程技巧