Python 递归函数,每行打印一个字母,每个函数调用打印一个字母
嗯,我还在学习python,并试图在每行、每函数调用中打印一个字母。这应该使用递归来完成 在这里,我因为错误而挣扎。只需要再多看一眼,看看有没有什么东西不见了Python 递归函数,每行打印一个字母,每个函数调用打印一个字母,python,recursion,Python,Recursion,嗯,我还在学习python,并试图在每行、每函数调用中打印一个字母。这应该使用递归来完成 在这里,我因为错误而挣扎。只需要再多看一眼,看看有没有什么东西不见了 def recursive_print(cursor): alphabet = 'abcdefghijklmnopqstuvwxyz' index = len(alphabet) - cursor if index > 0 recursive_print(index - 1) letter = alphabet[index]
def recursive_print(cursor):
alphabet = 'abcdefghijklmnopqstuvwxyz'
index = len(alphabet) - cursor
if index > 0
recursive_print(index - 1)
letter = alphabet[index]
print letter
print recursive_print(0)
错误如下:
NameError: name 'index' is not defined
sh-4.3$ python main.py
File "main.py", line 4
if index > 0:
^
任何指针都会很有帮助。要解决眼前的问题,您没有正确缩进。您发布的if语句中也缺少冒号。试试这个:
def recursive_print(curser):
alphabet = 'abcdefghijklmnopqstuvwxyz'
index = len(alphabet) - curser
if index > 0:
recursive_print(index - 1)
letter = alphabet[index]
print letter
print recursive_print(0)
接下来,您必须担心的是,由于没有正确处理索引而导致的无限递归。我相信问题是一个微不足道的心理错误:将递归更改为
recursive_print(curser + 1)
这仍然会给您一个超出基本情况范围的索引,但我希望您可以修复它
顺便说一句,这个词的拼写是“cursor”,以防万一。为了解决眼前的问题,您没有正确缩进。您发布的if语句中也缺少冒号。试试这个:
def recursive_print(curser):
alphabet = 'abcdefghijklmnopqstuvwxyz'
index = len(alphabet) - curser
if index > 0:
recursive_print(index - 1)
letter = alphabet[index]
print letter
print recursive_print(0)
接下来,您必须担心的是,由于没有正确处理索引而导致的无限递归。我相信问题是一个微不足道的心理错误:将递归更改为
recursive_print(curser + 1)
这仍然会给您一个超出基本情况范围的索引,但我希望您可以修复它
顺便说一句,这个词的拼写是“cursor”,以防万一。对我来说,这看起来像是无限递归。。。您是否尝试调用递归打印(游标+1)?另外,您的第一个索引将超出范围,它需要小于
len(字母表)
这看起来像是无限递归。。。您是否尝试调用递归打印(游标+1)?此外,您的第一个索引将超出范围,它需要小于len(字母表)
thanking@prune。我会检查建议,并张贴工作代码。这肯定有帮助。谢谢@prune。我会检查建议,并张贴工作代码。这肯定有帮助。