當使用遞歸時並有返回值時,調用自身函數時須要加上return語句以下:
def daxiao(biao1,biao2):
#判斷兩個列表的大小,根據裏面的元素大小
#若是biao1大於biao2,返回1,
#若是biao1小於biao2,返回0
#若是二者相等,返回3
geshu1=len(biao1)
geshu2=len(biao2)
b1=int(biao1[0])
b2=int(biao2[0]) #這裏只能比較數值大小,不能經過字符串直接比較大小
print(biao1)
print(biao2)
print(b1,b2,'d')
if b1>b2 :
print(b1,b2)
return 1
elif b1<b2 :
return 0
else:
if(geshu1==geshu2==1):
print('same name')
return 3
elif(geshu1==1 and geshu2>1):
return 0
elif(geshu1>1 and geshu2==1):
return 1
else:
# a=daxiao(biao1[-geshu1+1:],biao2[1-geshu2:])
# return a
#上面兩句和這一句是等價的
return daxiao(biao1[-geshu1+1:],biao2[1-geshu2:])
這裏的return必需要加上,否則返回值就是none,
由於調用函數時,是向裏傳輸數據,不加return時,就無法往回傳輸數據。方法裏的return只是跳出被調用的那一層函數,當調到最外層時,語句是在調用的函數那裏,運行下去沒有return就返回None。
因此必須在調用函數後加個return.要麼像綠色的那樣加兩句,要麼像紅色的直接返回就好。
https://www.cnblogs.com/yechenkai/p/7143475.htmlhtml