少說話多寫程式碼之Python學習037——建立函式03(函式的使用 )遞迴
阿新 • • 發佈:2018-11-08
前面學會了如何建立函式,至於函式引數列表的使用,函式內部作用域,函式過載等等,Python中的函式與其他語言的函式並無不同,所以這裡不再說明。我們一般學習的第一門程式語言大多是C語言,
學習C語言我們每每學的都是遞迴,二分查詢,氣泡排序以及各種排序等等。那麼我們選一兩樣看看Python中如何實現。
看看遞迴和二分法查詢,看看函式的使用。
遞迴,遞迴最大特點是函式自己呼叫自己,直到最終返回一個值,然後層層返回。
我們看兩個例子,一個數的階乘、一個數的冪。
我們用自己理解的方式實現階乘,如下
def factorial(n): if(n<=0): return 1 result=n; for i in range(1,n): result = result*i return result #呼叫 print(factorial(0)) print(factorial(1)) print(factorial(3))
輸出
1
1
6
改用遞迴實現,
#遞迴實現
def factorialStandard(n):
if n<=0:
return 1
else:
return n*factorial(n-1)
#呼叫
print(factorial(0))
print(factorial(1))
print(factorial(3))
輸出
1
1
6
再來看冪次方的實現,
先用冪次方的定義來實現,
#此處只考慮n為正數 def myPower(x,n): if(n<=0): return 1 result=1 for i in range(n): result =result*x return result #呼叫 print(myPower(1,0)) print(myPower(1,1)) print(myPower(2,3))
輸出
1
1
8
改為遞迴實現冪次方
#遞迴實現冪
def myPowerStandard(x,n):
if n<=0:
return 1
else:
return x*myPowerStandard(x,n-1)
#呼叫
print(myPowerStandard(1,0))
print(myPowerStandard(2,3))
輸出
1
8
工程檔案下載:https://download.csdn.net/download/yysyangyangyangshan/10766620