我希望有一个程序可以通过递归和if-else子句以这种方式向我显示单词:
P
y
y
腐霉菌
毕索
蟒蛇
为什么以下代码不起作用?它给了我一个超过最大递归深度的错误。
def oneToAll (word, x):
if -x < 0:
print(word[:-x])
oneToAll(word, x+1)
else:
return
wordOutside = "Python"
oneToAll(wordOutside, len(wordOutside))
最佳答案
def oneToAll (word, x):
if -x < 0:
print(word[:-x])
oneToAll(word, x-1)
elif x == 0:
print(word)
else:
return
wordOutside = "Python"
oneToAll(wordOutside, len(wordOutside))
这似乎有效。请注意,我现在使用
x-1
而不是x+1
递归,因为您希望x
始终朝着0
的方向努力。以这种方式实现,您必须处理
x == 0
的特殊情况。在这种情况下,您要打印整个字符串,而不是word[:0]
(始终为空字符串)。另请注意,我没有从0
分支进一步递归。这是因为到此为止,您已经完成了。实际上,您可以完全删除else
子句(尝试一下!)。关于python - 基本的字符串递归?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35923991/