Python 递归 returns None
Python recursion returns None
这会很有趣...
给定以下 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
输出为:
else entered...
entered!!!
shortE is now: 11
kSize is now: 2
None
我的意思是因为 shortE
是 11 而 kSize
是 2,为什么 return 值是 None
?
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)
# ^^^^
当一个函数在没有执行 return
语句的情况下结束时,它 returns None
。而不是
getBinary(binaryInput, kSize, beginBit)
你是说
return getBinary(binaryInput, kSize, beginBit)
这会很有趣...
给定以下 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
输出为:
else entered...
entered!!!
shortE is now: 11
kSize is now: 2
None
我的意思是因为 shortE
是 11 而 kSize
是 2,为什么 return 值是 None
?
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)
# ^^^^
当一个函数在没有执行 return
语句的情况下结束时,它 returns None
。而不是
getBinary(binaryInput, kSize, beginBit)
你是说
return getBinary(binaryInput, kSize, beginBit)