- Python程序設(shè)計案例教程:從入門到機器學習(微課版)
- 張思民
- 969字
- 2019-12-06 14:23:22
2.5 函數(shù)
在Python中,將用于實現(xiàn)某種特定功能的若干條語句組合在一起,稱為函數(shù)。本節(jié)將簡要介紹Python中的函數(shù)定義及使用方法。
2.5.1 函數(shù)的定義與調(diào)用
1.函數(shù)定義的一般形式
函數(shù)由關(guān)鍵字def來定義,其一般形式為:

其中,參數(shù)可以為空。當有多個參數(shù)時,參數(shù)之間用逗號“,”分隔。當函數(shù)無返回值,可以省略return語句。
【例2-15】創(chuàng)建一個名為Hello的函數(shù),其作用為輸出“歡迎進入Python世界”的字符內(nèi)容。
創(chuàng)建該函數(shù)的程序段如下:

在程序中調(diào)用Hello()函數(shù),將顯示“歡迎進入Python世界”的字符內(nèi)容。
【例2-16】創(chuàng)建一個名為sum()的函數(shù),其作用為計算n以內(nèi)的整數(shù)之和(包含n)。
下面為實現(xiàn)計算n以內(nèi)的整數(shù)之和的函數(shù)程序段:

2.函數(shù)的調(diào)用
在Python中,直接使用函數(shù)名調(diào)用函數(shù)。如果定義的函數(shù)包含參數(shù),則調(diào)用函數(shù)時也必須使用參數(shù)。
【例2-17】創(chuàng)建顯示如下排列字符的函數(shù),并編寫程序調(diào)用該函數(shù)。

程序代碼如下:

將程序保存為ex2_17.py。
運行程序:
python ex2_17.py
程序運行結(jié)果如下:

【例2-18】應(yīng)用函數(shù),計算1~100的和。
程序代碼如下:

將程序保存為ex2_18.py。
運行程序:
python ex2_18.py
程序運行結(jié)果如下:
5050
2.5.2 局部變量與全局變量
在函數(shù)體內(nèi)部定義的變量或函數(shù)參數(shù)稱為局部變量,該變量只在該函數(shù)內(nèi)部有效。在函數(shù)體外部定義的變量稱為全局變量,全局變量在變量定義后的代碼中都有效。當全局變量與局部變量同名時,則在定義局部變量的函數(shù)中,全局變量被屏蔽,只有局部變量有效。
全局變量在使用前要先用關(guān)鍵字global聲明。
【例2-19】全局變量與局部變量同名的示例。
程序代碼如下:

將程序保存為ex2_19.py。
運行程序:
python ex2_19.py
程序運行結(jié)果如下:
局部變量x = 30 全局變量x = 10
2.5.3 常用內(nèi)置函數(shù)
Python內(nèi)置函數(shù)是python系統(tǒng)內(nèi)部創(chuàng)建的,在Python的程序中,可以隨時調(diào)用這些函數(shù),不需要另外定義。
例如,最常見的print()是內(nèi)置函數(shù),在程序中直接使用:
print("Hello World!")
而平方根函數(shù)sqrt()不是內(nèi)置函數(shù),使用該函數(shù)時需要引用math模塊:
import math y = math.sqrt(25)
Python常用內(nèi)置函數(shù)如表2.3所示。
表2.3 常用內(nèi)置函數(shù)

【例2-20】數(shù)學運算函數(shù)示例。
程序代碼如下:

將程序保存為ex2_20.py。
運行程序:
python ex2_20.py
程序運行結(jié)果如下:

2.5.4 匿名函數(shù)lambda
在Python中,可以使用匿名函數(shù)。匿名函數(shù)即沒有函數(shù)名的函數(shù)。
通常,用lambda聲明匿名函數(shù)。
例如,計算兩個數(shù)的和,可以寫成:
add = lambda x, y : x+y print(add(1,2))
輸出的結(jié)果為3。
從上面示例可以看到,lambda表達式的計算結(jié)果相當于函數(shù)的返回值。
【例2-21】用lambda表達式,求三個數(shù)的和。
程序代碼如下:

將程序保存為ex2_21.py。
運行程序:
python ex2_21.py
程序的運行結(jié)果如下:
60 4 8 16
- Functional Python Programming
- Instant Testing with CasperJS
- JavaScript 網(wǎng)頁編程從入門到精通 (清華社"視頻大講堂"大系·網(wǎng)絡(luò)開發(fā)視頻大講堂)
- 匯編語言程序設(shè)計(第2版)
- Flash CS6中文版應(yīng)用教程(第三版)
- GameMaker Programming By Example
- Mastering Predictive Analytics with Python
- Yocto for Raspberry Pi
- Go語言開發(fā)實戰(zhàn)(慕課版)
- 平面設(shè)計經(jīng)典案例教程:CorelDRAW X6
- Python語言科研繪圖與學術(shù)圖表繪制從入門到精通
- 黑莓(BlackBerry)開發(fā)從入門到精通
- jQuery從入門到精通(微課精編版)
- Arduino Electronics Blueprints
- Swift Essentials(Second Edition)