Непрерывные ошибки ключа - PullRequest
0 голосов
/ 13 февраля 2019

Смысл моего кода в том, что должен быть ввод yyyymmdd, и ответ должен быть в виде строки, например, если ввод был «20191129», тогда вывод будет «29 ноября 2019 года»

Я продолжаю получать случайную "ключевую ошибку '0'" в моем коде, однако, и я не понимаю, почему это Вот мой код:

def format_date(date):
year = date[:3]
main_month = date[4:5]
main_day = date[6:]

if main_month <= '01' and main_month >= '12':
    return dic_month[main_month]

if main_day <= '01' and main_day >= '31':
    return dic_day[main_day]

month = dic_month[main_month]
day = dic_day[main_day]

return month + ' ' + day + ' ' + year

Вот словари, которые яв настоящее время использую:

dic_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'}

dic_day = {'1': '1st', '2': '2nd', '3': '3rd', '4': '4th', '5': '5th', '6': '6th', '7': '7th',
           '8': '8th', '9': '9th', '10': '10th', '11': '11th', '12': '12th', '13': '13th', '14': '14th',
           '15': '15th', '16': '16th', '17': '17th', '18': '18th', '19': '19th', '20': '20th', '21': '21st',
           '22': '22nd', '23': '23rd', '24': '24th', '25': '25th', '26': '26th', '27': '27th', '28': '28th',
           '29': '29th', '30': '30th', '31': '31st',}

Пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Так много ошибок ...

dic_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'}

dic_day = {'1': '1st', '2': '2nd', '3': '3rd', '4': '4th', '5': '5th', '6': '6th', '7': '7th',
           '8': '8th', '9': '9th', '10': '10th', '11': '11th', '12': '12th', '13': '13th', '14': '14th',
           '15': '15th', '16': '16th', '17': '17th', '18': '18th', '19': '19th', '20': '20th', '21': '21st',
           '22': '22nd', '23': '23rd', '24': '24th', '25': '25th', '26': '26th', '27': '27th', '28': '28th',
           '29': '29th', '30': '30th', '31': '31st',}

def format_date(date):
    year = date[:4]
    main_month = date[4:6]
    main_day = date[6:]

    if int(main_month) < 1 or int(main_month) > 12:
        return 'Wrong month'

    if int(main_day) < 1 or int(main_day) > 31:
        return 'Wrong day'

    month = dic_month[main_month]
    day = dic_day[main_day]

    return month + ' ' + day + ' ' + year


print(format_date('20190029')) # 'Wrong month'
print(format_date('20191129')) # 'November 29th 2019'
0 голосов
/ 13 февраля 2019

"key error '0'" означает, что вы пытаетесь получить доступ к записи dict с помощью ключа '0', но такой записи в этом диктанте не существует.

...