利用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函數實現萬歷表內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: