【人生苦短,我用Python】Python免費精品課連載(3)——函數與遞歸

Python課程學習:零基礎入門學習Python - 阿里雲大學

前面學習了Python的基礎語法後,本文我們來看Python的函數與遞歸。

如果你學過C語言,那麼對於函數和遞歸肯定不會陌生。下面就來看看在Python中,是如何使用的。

一、函數

函數是組織好的,可重複使用的,用來實現單一,或相關聯功能的代碼段。無論在哪門編程語言當中,函數(在某些語言里稱作方法,意義是相同的)都扮演著至關重要的角色。函數能提高應用的模塊性和代碼的重複利用率。

Python提供了許多內建函數,比如print(),你可以直接使用,當然你也可以自己創建函數,這叫做用戶自定義函數。

在一些編程語言當中,函數聲明和函數定義是區分開的,比如C語言,函數聲明和函數定義可以出現在不同的文件中,但在Python中,函數聲明和函數定義是視為一體的。比如:

def function(params): block return expression/value

在定義了函數之後,就可以使用該函數了,但是在Python中要注意一個問題,就是在Python中不允許前向引用,即在函數定義之前,不允許調用該函數。

下面是函數定義與調用的一個示例:

# 定義函數def printme( str ): "列印傳入的字元串" print str; return; # 調用函數printme("調用用戶自定義函數!");

具體可點擊文章開頭的鏈接進行學習。

二、遞歸

程序調用自身的編程技巧稱為遞歸( recursion)。遞歸做為一種演算法在程序設計語言中廣泛應用。 一個過程或函數在其定義或說明中有直接或間接調用自身的一種方法,它通常把一個大型複雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重複計算,大大地減少了程序的代碼量。

在使用遞歸時,需要注意以下幾點:

  • 遞歸就是在過程或函數里調用自身
  • 必須有一個明確的遞歸結束條件,稱為遞歸出口。

注意: 切勿忘記遞歸出口,避免函數無限調用。

從前有座山,山裡有座廟,廟裡有個老和尚,正在給小和尚講故事!講的什麼故事呢?『從前有座山,山裡有座廟,廟裡有個老和尚,正在給小和尚講故事!講的什麼故事呢?』……

不斷調用這個故事的內容,這就是遞歸。這個故事可以一直講下去,這就是沒有遞歸出口,造成了死循環。

下面的這個圖也可以很好地說明遞歸概念。

Python中的遞歸該如何學習呢?來看看吧:零基礎入門學習Python - 阿里雲大學

推薦閱讀:

如何在用 Python 編程時添加中文注釋?
Python離JIT還有多遠?
從零開始寫Python爬蟲 --- 2.2 Scrapy 選擇器和基本使用
草根學Python(三)List 和 Tuple
用 Python 解析李小璐的微博,驚呆了!

TAG:Python | 编程语言 | 函数 |