Здравствуйте, хотелось бы спросить ответа у старших, вобщем какие в коде есть стилистические ошибки, имеет ли место быть такой стиль написания кода, и что бы вы мне порекомендовали. P.S Я знаю что я не учел что в англ. языке после разряда сотен нужно говорить ‘and’ просто не берем это во внимание
#Если записать числа от 1 до 5 английскими словами (one, two, three, four, five), то используется всего 3 + #3 + 5 + 4 + 4 = 19 букв.
#Сколько букв понадобится для записи всех чисел от 1 до 1000 (one thousand) включительно?
#Примечание: Не считайте пробелы и дефисы.
def count_letters_one(number): #функция для счета букв однозначных чисел
sum1 = 0
if len(str(number)) == 1:
if number == 1:
sum1 += 3
elif number == 2:
sum1 += 3
elif number == 3:
sum1 += 5
elif number == 4:
sum1 += 4
elif number == 5:
sum1 += 4
elif number == 6:
sum1 += 3
elif number == 7:
sum1 += 5
elif number == 8:
sum1 += 5
elif number == 9:
sum1 += 4
elif number == 0:
sum1 += 0
return sum1
def count_list(list): #функция принимает список, возвращает сумму элементов
accum = 0
for element in list:
acc += element
return accum
def count_letters_two(number): # функция для посчета букв в двузначных числах
sum2 = 0
if len(str(number)) == 2:
if str(number)[0] == '1':
if number == 11:
sum2 += 6
elif number == 12:
sum2 += 6
elif number == 13:
sum2 += 8
elif number == 14:
sum2 += 8
elif number == 15:
sum2 += 7
elif number == 16:
sum2 += 7
elif number == 17:
sum2 += 9
elif number == 18:
sum2 += 8
elif number == 19:
sum2 += 8
elif number == 10:
sum2 += 3
elif str(number)[0] == '2':
sum2 = sum2 + count_letters_one(int(str(number)[1])) + 6
elif str(number)[0] == '3':
sum2 = sum2 + count_letters_one(int(str(number)[1])) + 6
elif str(number)[0] == '4':
sum2 = sum2 + count_letters_one(int(str(number)[1])) + 5
elif str(number)[0] == '5':
sum2 = sum2 + count_letters_one(int(str(number)[1])) + 5
elif str(number)[0] == '6':
sum2 = sum2 + count_letters_one(int(str(number)[1])) + 5
elif str(number)[0] == '7':
sum2 = sum2 + count_letters_one(int(str(number)[1])) + 7
elif str(number)[0] == '8':
sum2 = sum2 + count_letters_one(int(str(number)[1])) + 6
elif str(number)[0] == '9':
sum2 = sum2 + count_letters_one(int(str(number)[1])) + 6
return sum2
def count_letters_three(number): #функция для подсчета букв в трехзначных числах
sum3 = 0
if len(str(number)) == 3:
if str(number)[1] == 0:
sum3 = sum3 + count_letters_one(int(str(number)[0])) + 7 +count_letters_one(int(str(number)[2]))
else:
sum3 = sum3 + count_letters_one(int(str(number)[0])) + int(count_letters_two(int(str(number)[1:]))) + 7
return sum3
print(11 + count_list(list(map(count_letters_three,range(1,1000)))))#не делал функцию для подсчета #четырехзначныхчисел, просто прибавил сумму букв 'one thousand'