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的新手。这是在线课程的作业。有人能帮助我吗?
教授的指示:
答案 0 :(得分:1)
为了返回值,函数(使用def <function name>
定义)必须包含return
语句。 isIn
不包含return语句(compare
的一部分除外,它不计算在内)。
此外,我怀疑你打算取消最后一行 - 你打算定义isIn
然后调用它。目前最后一行是isIn
函数定义的一部分,因此它不会作为脚本的一部分被调用(除非你在其他地方调用它)。
顺便说一下,请不要发布代码截图,因为它们很难测试,与屏幕阅读器不兼容,图像主机可能会脱机。见Discourage screenshots of code and/or errors