Форум сайта python.su
Здравствуйте, хотелось бы спросить ответа у старших, вобщем какие в коде есть стилистические ошибки, имеет ли место быть такой стиль написания кода, и что бы вы мне порекомендовали. 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'
Офлайн
Interesting and amazing how your post is! It Is Useful and helpful for me That I like it very much, and I am looking forward to hearing from your next. Little Alchemy
Офлайн
candymikaи че тама интересного и прекрасного
Interesting and amazing
Funee_monkeeне про меня кнешно но вот мне кажтся
хотелось бы спросить ответа у старших
# что вашу конструкцию такого вида elif number == 13: sum2 += 8 elif number == 14: sum2 += 8 # можно заменить на такого вида конструкцию elif num in [13, 14]: sum2 += 8
Отредактировано AD0DE412 (Ноя. 4, 2021 11:14:56)
Офлайн