2011-01-19 46 views
0

我搜索了论坛,发现了类似的问题,但没有解决我的问题的运气。程序输出中包含“无”...为什么?

我的代码旨在使用递归交换每个单词的每两个字母并打印结果。对于数量均匀的字母组成单词,单词“无”是包含在输出,我不知道如何解决......

下面的代码:

def encryptLine(line, count): 
    headline = line[count:] 

    if length(headline) > 0: 
     if count == length(line) - 1: 
      new = headline 
      return new 
     elif count <= length(line): 
      new = head(tail(headline)) + head(headline) 
     new = new + str(encryptLine(line, count+2)) 
     return new 

print(encryptLine('abcd', 0)) 

输出为' abcd'是badc无人,除了None这个词之外是正确的。 'abcde'的输出是'badce',这是正确的...

在此先感谢您的帮助!

+0

什么语言? – 2011-01-19 00:16:30

+1

您是否尝试调试它? – 2011-01-19 00:17:03

+0

你的length(),head()和tail()函数是什么? – 2011-01-19 00:19:53

回答

8

添加return ""函数定义,那就是

def encryptLine(line, count): 
    headline = line[count:] 

    if length(headline) > 0: 
     if count == length(line) - 1: 
      new = headline 
      return new 
     elif count <= length(line): 
      new = head(tail(headline)) + head(headline) 
     new = new + str(encryptLine(line, count+2)) 
     return new 
    return "" 

否则,该函数将返回None如果length(headline) > 0不成立。

2

没有在这里,因为你的函数什么都不返回。 有1情况下返回什么是

if length(headline) <= 0:

在Python中,如果没有回报功能和您尝试访问到一个返回值,该值将是无。