- Python 3 數據分析與機器學習實戰
- 龍馬高新教育
- 1023字
- 2020-09-25 10:55:25
4.3 函數

在實際編程中,會有一段程序經常用到的情況,如果每次都重新寫這段程序會很浪費時間,可以把這部分程序事先存儲起來,以后需要時直接調用即可。函數就實現了這樣的功能,它是一段組織好的、用來實現某些功能的代碼段,可重復使用。函數能提高應用的模塊性和代碼的重復利用率。
函數一般包括系統內置的函數和自定義函數。
Python的內置函數有很多,如前面用到的print函數,常見的內置函數根據功能的不同,大致可分為數學運算類、字符串處理類、類型轉換類、序列處理類等,本書重點在于機器學習和數據處理,對內置函數就不再詳細陳述,讀者可以查找聯機文檔了解Python的內置函數。下面介紹Python的自定義函數的使用方法。
自定義函數的基本語法格式如下。
def 函數名(參數列表): 函數體 return [表達式]
說明:
函數代碼塊以def關鍵詞開頭,后接函數標識符名稱和小括號(()),后面再跟一個冒號(:)。
小括號用于定義參數,可以不包含參數,如果包含多個參數,參數之間以逗號分隔。函數內容縮進。
return [表達式]表示函數返回,選擇性地返回一個值給調用方。不帶表達式的return相當于返回None,省略return也相當于返回None。
下面來看幾個實例。
【實例4-7】建立一個自定義函數,將要打印的內容傳遞給函數,在函數體內打印傳遞來的內容。
函數定義如下:
def myprint(str): print(str)
上面的函數代碼體中只有一條語句,函數名稱為“myprint”,輸入參數命名為“str”,用于接收外部傳來的內容,函數體中使用打印函數來打印外部傳送來的字符。
函數的調用:函數調用的方法就是直接寫出自定義的函數名就可以,如果有參數,直接提供參數,另外這個實例最后沒有return語句,就是不需要返回任何值。
函數定義及調用如下圖所示。

【實例4-8】定義一個函數,輸入長和寬,在函數中計算矩形的面積。
def area(height, width): return height*width
上面的函數使用return把計算結果返回,調用這個函數時需要提供長和寬。程序運行結果如下圖所示。

【實例4-9】建立一個數字比較函數,并比較輸入數字。
分析:這個自定義函數用于實現數字比較,因此應有兩個輸入參數,在函數體中,使用條件語句判斷兩個參數的大小,并輸出結果,程序代碼如下。
def compare(num1, num2): if num1 > num2: print("%s大于%s" % (num1, num2)) elif num2 > num1: print("%s大于%s" % (num2, num1)) else: print("%s等于%s" % (num1, num2))
這個函數相較前面幾個函數來說更為復雜,其中使用條件語句,根據輸入的兩個參數判斷大小并顯示結果。
這個函數的調用和其他函數的調用一樣,使用函數名,并提供參數。例如:
compare(3,5) compare(6,5)
程序運行結果如下圖所示。

當然,自定義函數在使用時,還涉及許多細節,如全局變量和局部變量。函數調用時參數也有多種情況,這些本書不再詳細闡述。
- HTML5+CSS3+JavaScript從入門到精通:上冊(微課精編版·第2版)
- 自然語言處理實戰:預訓練模型應用及其產品化
- DevOps for Networking
- Learning RabbitMQ
- Rust編程從入門到實戰
- Java Web及其框架技術
- Unity Shader入門精要
- 鋒利的SQL(第2版)
- Mastering KnockoutJS
- Getting Started with LLVM Core Libraries
- PySpark Cookbook
- Android玩家必備
- Learning Material Design
- 智能手機故障檢測與維修從入門到精通
- Learning Nessus for Penetration Testing