Можно ли сократить/упростить данный код?
Код простой, но занимает довольно много строк, можно ли его сократить/упростить?
match_date = "07.12.2022 21:45".split(".")
day = str(int(match_date[0]))
month = int(match_date[1])
match_time = str(match_date[2].split(" ")[1])
if month == 1:
print(day + "-го " + "января в " + match_time)
if month == 2:
print(day + "-го " + "февраля в " + match_time)
if month == 3:
print(day + "-го " + "марта в " + match_time)
if month == 4:
print(day + "-го " + "апреля в " + match_time)
if month == 5:
print(day + "-го " + "мая в " + match_time)
if month == 6:
print(day + "-го " + "июня в " + match_time)
if month == 7:
print(day + "-го " + "июля в " + match_time)
if month == 8:
print(day + "-го " + "августа в " + match_time)
if month == 9:
print(day + "-го " + "сентября в " + match_time)
if month == 10:
print(day + "-го " + "октября в " + match_time)
if month == 11:
print(day + "-го " + "ноября в " + match_time)
if month == 12:
print(day + "-го " + "декабря в " + match_time)
Ответы (3 шт):
Автор решения: Сергей Ш
→ Ссылка
lst = ["января", "февраля", "марта", "апреля", "мая", "июня", "июля",
"августа", "сентября", "октября", "ноября", "декабря"]
data, time = "07.12.2022 21:45".split()
day, month, _ = data.split('.') # day, month, year = data.split('.')
print(f'{day}-го {lst[int(month) - 1]} в {time}')
Автор решения: Эникейщик
→ Ссылка
Лучше словарь:
months = {1: "января", 2: "февраля" итд
print(day + "-го " + months[month] + match_time)
Автор решения: Gawain
→ Ссылка
Странно, что никто не написал про datetime
import locale
import datetime
locale.setlocale(locale.LC_TIME, 'ru_RU.UTF-8')
match_date = "07.12.2022 21:45"
date_object = datetime.datetime.strptime(match_date, "%d.%m.%Y %H:%M")
date_string = date_object.strftime("%e-го %B в %H:%M")
print(date_string)