- 2

Решение задачи запись слова в обратно порядке (Рекурсия)

Помогите разобраться в решении задачи. def spell(txt): #ваш коd if len(txt) == 0: return txt else: return spell(txt[1:]) + txt[0] txt = input() print(spell(txt)) Нашёл решение в обсуждениях. Не понятно зачем к выводу добавляется txt[0], какую цель выполняет ?

28th Jul 2021, 2:17 AM
Vladislav Yakovenko
Vladislav Yakovenko - avatar
4 Réponses
+ 1
Строка кода return spell(txt[1:])+txt[0] возвращает повторный вызов функции spell() с текстом без первого символа до тех пор пока не станет пустой плюсуя каждый раз первый символ. В итоге получается нечто типа матрёшки с первым символом внутри и выглядит как: return txt[2]+txt[1]+txt[0] если текст состоит из трех букв ☺️ Более подробную информацию о поведении рекурсивных функций лучше загуглить.
28th Jul 2021, 10:45 AM
Solo
Solo - avatar
0
Решил проще def spell (txt): for i in (txt): print (i) txt = list(input()) txt.reverse() spell(txt)
30th Mar 2022, 12:26 PM
Евгений Ковалев
Евгений Ковалев - avatar
0
Как вариант, но без рекурсии def spell(txt): #ваш код n = len(txt) while n!=0: n-=1 print(txt[n]) txt = input() spell(txt)
29th Sep 2022, 9:41 AM
Виктор Ульдинович
Виктор Ульдинович - avatar
- 1
def spell(txt): if len(txt) == 0: return txt else: return spell(txt[1:])+txt[0]+'\n' txt = input() print(spell(txt))
17th Mar 2022, 11:49 AM
Grisha