Всем привет! Можете объяснить почему мне выдаётся ошибка
KeyError: 1 в данном коде:
def First(l,val):
val += dict[l]
value = 0
dict = {
"1" : 3,
"2" : 3,
'3' : 5,
'4' : 4,
'5' : 4,
'6' : 3,
'7' : 5,
'8' : 5,
'9' : 4,
'10' : 3,
'11' : 6,
'12' : 6,
'13' : 8
}
i = 0
for x in range(1,1001):
line = list(str(x))
if x <= 13:
First(x,value)
print(value)
P.s Если кто то задался вопросом что это такое вообще, то я решаю 17 задачу Эйлера, а именно:
Сколько букв понадобится для записи всех чисел от 1 до 1000 (one thousand) включительно?
Возможно я использую не лучшие проверки, но в словаре я опишу все исключения при счёте на английском.
P.s(2) И если не трудно объясните пожалуйста как я могу вызвать
value в функции, не передавая туда ещё 1 значение? Если значение не передаётся, то вызывается ошибка. Знаю только про global перед переменной, но толком до конца и не понял ключ ли это к решению(похожих функций будет 3, поэтому возможно global и есть решение?). Если есть другие варианты, напишите пожалуйста