递归函数,每行打印一个字母表的字母,每个函数调用一个

时间:2016-06-04 01:18:50

标签: python recursion

好吧,我还在学习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:                                                                                                                                                                                     
^                                                                                                                                                                                                  

任何指针都会非常有用。

1 个答案:

答案 0 :(得分:2)

要解决您眼前的问题,您还没有正确缩进。您在发布的 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)

这仍然会在基本情况下为您提供超出范围的索引,但我希望您能解决这个问题。

顺便说一句,这个单词拼写了#34;光标",以防你关心。