#python #python-3.x #dictionary #keyerror
#python #python-3.x #словарь #ошибка ключа
Вопрос:
Я новичок в Python и в настоящее время пытаюсь создать программу, которая создаст список ежегодных процентных изменений дохода.
Это то, что у меня есть до сих пор:
revs = {}
for year in range(14, 20):
revs[year] = float(input("Revenue in {0}: ".format(year)))
revs_change = []
for year in range(14, 20):
next_year = year 1
revs_change.append((revs[next_year] - revs[year])/revs[year])
print(revs_change[0])
Ошибка появляется в 8-й строке, и это как-то связано с использованием переменной next_year.
Спасибо!
Комментарии:
1. Вы пишете ключи с 14 по 19, а затем пытаетесь прочитать ключи с 14 по 20.
Ответ №1:
Если вы собираетесь распечатать значения year
и next_year
, проблема в том, что для revs[next_year=20]
нет значения.
Один из способов — сделать вот так-
start = 14
end = 21
for year in range(start, end):
revs[year] = float(input("Revenue in {0}: ".format(year)))
revs_change = []
for year in range(start, end-1):
next_year = year 1
print(f"Year: {year}, Next Year: {next_year}n")
revs_change.append( (revs[next_year] - revs[year])/revs[year] )
print(revs_change[0])
Комментарии:
1. Спасибо! Какова функция этой строки печати при создании списка? Это просто для проверки того, что были введены правильные годы?
Ответ №2:
В Python конечный предел для любого заданного вами диапазона будет приниматься за исключением этого верхнего предела, т. Е. Если вы установите верхний предел равным 20, он будет равен 19. Укажите верхний предел равным 21, чтобы получить желаемый результат