- 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], какую цель выполняет ?
4 ответов
+ 1
Строка кода return spell(txt[1:])+txt[0] возвращает повторный вызов функции spell() с текстом без первого символа до тех пор пока не станет пустой плюсуя каждый раз первый символ.
В итоге получается нечто типа матрёшки с первым символом внутри и выглядит как:
return txt[2]+txt[1]+txt[0] если текст состоит из трех букв ☺️
Более подробную информацию о поведении рекурсивных функций лучше загуглить.
0
Решил проще
def spell (txt):
for i in (txt):
print (i)
txt = list(input())
txt.reverse()
spell(txt)
0
Как вариант, но без рекурсии
def spell(txt):
#ваш код
n = len(txt)
while n!=0:
n-=1
print(txt[n])
txt = input()
spell(txt)
- 1
def spell(txt):
if len(txt) == 0:
return txt
else:
return spell(txt[1:])+txt[0]+'\n'
txt = input()
print(spell(txt))