Python递归返回非

2024-04-25 09:41:11 发布

您现在位置:Python中文网/ 问答频道 /正文

这会很有趣。。。 给出以下python代码:

def getBinary(binaryInput, kSize, beginBit):
    if int(binaryInput[beginBit + kSize-1])==1:
        print 'entered!!!'
        shortE = binaryInput[beginBit:kSize+beginBit]
        print 'shortE is now: ', shortE
        print 'kSize is now: ', kSize
        return (shortE,kSize)
    else :
        print 'else entered...'
        kSize -=1
        getBinary(binaryInput, kSize, beginBit)

result = getBinary("{0:b}".format(6), 3, 0)
print result

输出为:

^{pr2}$

我的意思是既然shortE是11,kSize是2,为什么返回值是None?在


Tags: 代码ifisdefresultelsenowint
2条回答

当函数结束时没有执行return语句,它返回None。而不是

getBinary(binaryInput, kSize, beginBit)

你是说

^{pr2}$

else部分缺少代码:

def getBinary(binaryInput, kSize, beginBit):
    if int(binaryInput[beginBit + kSize-1])==1:
        print 'entered!!!'
        shortE = binaryInput[beginBit:kSize+beginBit]
        print 'shortE is now: ', shortE
        print 'kSize is now: ', kSize
        return (shortE,kSize)
    else :
        print 'else entered...'
        kSize -=1
        return getBinary(binaryInput, kSize, beginBit)
        # ^^^^

相关问题 更多 >