我需要以“1 月 1 日”格式輸入 5 個日期并按時間順序排列它們。
one = input('birthday 1: ')
two = input('birthday 2: ')
three = input('birthday 3: ')
four = input('birthday 4: ')
five = input('birthday 5: ')
months=['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december']
ord_months=[]
birthday1 = one.split() # converts "january 1" into a list of ['january', '1']
birthday2 = two.split()
birthday3 = three.split()
birthday4 = four.split()
birthday5 = five.split()
for i in range(12): # range of 12 for 12 months
if birthday1[0] == months[i]: # calls index 0 of months, in the example above it would be january
ord_months.append(i) # adds the value of i to the ord_months list
for i in range(12):
if birthday2[0] == months[i]:
ord_months.append(i)
for i in range(12):
if birthday3[0] == months[i]:
ord_months.append(i)
for i in range(12):
if birthday4[0] == months[i]:
ord_months.append(i)
for i in range(12):
if birthday5[0] == months[i]:
ord_months.append(i)
ord_months.sort()
print("month:", ord_months[0] 1, 'day:', birthday1[1])
print("month:", ord_months[1] 1, 'day:', birthday2[1])
print("month:", ord_months[2] 1, 'day:', birthday3[1])
print("month:", ord_months[3] 1, 'day:', birthday4[1])
print("month:", ord_months[4] 1, 'day:', bir
我列出了月份,然后將它們轉換為數字,然后對數字進行排序。這命令幾個月而不是幾天,我對如何做感到困惑。
uj5u.com熱心網友回復:
我建議你依賴 Python 的 buitin "datetime" 模塊。下面的代碼應該可以做你想做的事,而且作業量要少得多:
from datetime import datetime
one = input('birthday 1: ')
two = input('birthday 2: ')
three = input('birthday 3: ')
four = input('birthday 4: ')
five = input('birthday 5: ')
one = datetime.strptime(one, '%B %d')
two = datetime.strptime(two, '%B %d')
three = datetime.strptime(three, '%B %d')
four = datetime.strptime(four, '%B %d')
five = datetime.strptime(five, '%B %d')
birthdays = [one, two, three, four, five]
birthdays = sorted(birthdays)
for birthday in birthdays:
print (f"month: {birthday.strftime('%B')}, day: {birthday.strftime('%d')}")
您可以在此處找到有關日期時間的更多資訊: https ://docs.python.org/3/library/datetime.html# ,并詳細說明“strptime”和“strftime”在此處所做的事情: https://docs.python .org/3/library/datetime.html#strftime-and-strptime-behavior
您還可以像這樣簡化它(并擴展其功能):
from datetime import datetime
n_birthdays = int(input('Number of birthdays to ask for: '))
birthdays = []
for n in range (n_birthdays):
birthdays.append(datetime.strptime((input(f'birthday {n 1}: ')), '%B %d'))
birthdays = sorted(birthdays)
for birthday in birthdays:
print (f"month: {birthday.strftime('%B')}, day: {birthday.strftime('%d')}")
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/529007.html
標籤:Python日期
上一篇:DayJS一月的最后一天
