函数没有返回,但我不知道我做错了什么

时间:2018-06-15 15:21:35

标签: python-3.x function

def isIn(char, aStr):
    ord = len(aStr) -1
    high = ord
    low = 0
    num = (high + low) // 2
    def compare(num, char):
        nonlocal low
        if aStr[num] == char:
            return aStr[num] == char
        elif aStr[num] > char:
            high = num
            num = (high + low) // 2
            return compare(num, char)
        else:
            low = num
            num = (high + low) // 2
            return compare(num, char) 
    compare(num, char)

isIn('c', 'abcdefghijk')

我想知道为什么这段代码无法给我任何结果。我是python的新手。这是在线课程的作业。有人能帮助我吗?

教授的指示: instruction from the professor

1 个答案:

答案 0 :(得分:1)

为了返回值,函数(使用def <function name>定义)必须包含return语句。 isIn不包含return语句(compare的一部分除外,它不计算在内)。

此外,我怀疑你打算取消最后一行 - 你打算定义isIn然后调用它。目前最后一行是isIn函数定义的一部分,因此它不会作为脚本的一部分被调用(除非你在其他地方调用它)。

顺便说一下,请不要发布代码截图,因为它们很难测试,与屏幕阅读器不兼容,图像主机可能会脱机。见Discourage screenshots of code and/or errors