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]

嗯,我还在学习python,并试图在每行、每函数调用中打印一个字母。这应该使用递归来完成

在这里,我因为错误而挣扎。只需要再多看一眼,看看有没有什么东西不见了

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。我会检查建议,并张贴工作代码。这肯定有帮助。