节目输出中包含“无”...为什么?

时间:2011-01-19 00:13:18

标签: python function return-value

我搜索了论坛并发现了类似的问题,但没有运气解决我的问题。

我的代码旨在使用递归交换每个单词的每两个字母并打印结果。对于具有偶数字母的单词,输出中包含单词“无”,我不知道如何修复...

这是代码:

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'的输出是badcNone,除了单词None之外,这是正确的。 'abcde'的输出是'badce',这是正确的......

提前感谢您的帮助!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

没有在这里,因为你的函数什么也没有返回。 有一种情况你没有返回任何东西

if length(headline) <= 0:

在Python中,如果没有返回函数并且您尝试访问返回值,则该值将为None。