函數(shù)基礎
目標
- 函數(shù)的快速體驗
- 函數(shù)的基本使用
- 函數(shù)的參數(shù)
- 函數(shù)的返回值
- 函數(shù)的嵌套調(diào)用
- 在模塊中定義函數(shù)
01. 函數(shù)的快速體驗
- 所謂函數(shù),就是把 具有獨立功能的代碼塊組織為一個小模塊,在需要的時候 調(diào)用
- 函數(shù)的使用包含兩個步驟:
1.定義函數(shù) —— 封裝獨立的功能
2.調(diào)用函數(shù) —— 享受 封裝的成果 - 函數(shù)的作用,在開發(fā)程序時,使用函數(shù)可以提高編寫的效率以及代碼的 重用
02. 函數(shù)基本使用
2.1 函數(shù)的定義
定義函數(shù)的格式如下:
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比泗洪網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式泗洪網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋泗洪地區(qū)。費用合理售后完善,十年實體公司更值得信賴。
def 函數(shù)名():
函數(shù)封裝的代碼
……
- def 是英文 define 的縮寫
- 函數(shù)名稱應該能夠表達 函數(shù)封裝代碼的功能,方便后續(xù)的調(diào)用
- 函數(shù)名稱的命名應該 符合 標識符的命名規(guī)則
- 可以由 字母、下劃線和 數(shù)字組成
- 不能以數(shù)字開頭
- 不能與關鍵字重名
2.2 函數(shù)調(diào)用
調(diào)用函數(shù)很簡單的,通過 函數(shù)名() 即可完成對函數(shù)的調(diào)用
2.3 第一個函數(shù)演練
需求
- 1.編寫一個打招呼 say_hello 的函數(shù),封裝三行打招呼的代碼
- 2.在函數(shù)下方調(diào)用打招呼的代碼
name = "hello"
# 解釋器知道這里定義了一個函數(shù)
def say_hello():
print("hello 1")
print("hello 2")
print("hello 3")
print(name)
# 只有在調(diào)用函數(shù)時,之前定義的函數(shù)才會被執(zhí)行
# 函數(shù)執(zhí)行完成之后,會重新回到之前的程序中,繼續(xù)執(zhí)行后續(xù)的代碼
say_hello()
print(name)
- 定義好函數(shù)之后,只表示這個函數(shù)封裝了一段代碼而已
- 如果不主動調(diào)用函數(shù),函數(shù)是不會主動執(zhí)行的
思考
2.4 PyCharm 的調(diào)試工具
- F8 Step Over可以單步執(zhí)行代碼,會把函數(shù)調(diào)用看作是一行代碼直接執(zhí)行
- F7 Step Into可以單步執(zhí)行代碼,如果是函數(shù),會進入函數(shù)內(nèi)部
2.5 函數(shù)的文檔注釋
- 在開發(fā)中,如果希望給函數(shù)添加注釋,應該在 定義函數(shù) 的下方,使用 連續(xù)的三對引號
- 在 連續(xù)的三對引號之間編寫對函數(shù)的說明文字
- 在 函數(shù)調(diào)用位置,使用快捷鍵 CTRL + Q 可以查看函數(shù)的說明信息
注意:因為 函數(shù)體相對比較獨立,函數(shù)定義的上方應該和其他代碼(包括注釋)保留 兩個空行
03. 函數(shù)的參數(shù)
演練需求
- 開發(fā)一個 sum_2_num 的函數(shù)
- 函數(shù)能夠?qū)崿F(xiàn) 兩個數(shù)字的求和 功能
演練代碼如下:
def sum_2_num():
num1 = 10
num2 = 20
result = num1 + num2
print("%d + %d = %d" % (num1, num2, result))
sum_2_num()
思考一下存在什么問題
函數(shù)只能處理 **固定數(shù)值** 的相加
如何解決?
- 如果能夠把需要計算的數(shù)字,在調(diào)用函數(shù)時,傳遞到函數(shù)內(nèi)部就好了!
3.1 函數(shù)參數(shù)的使用
- 在函數(shù)名的后面的小括號內(nèi)部填寫 參數(shù)
- 多個參數(shù)之間使用 , 分隔
def sum_2_num(num1, num2):
result = num1 + num2
print("%d + %d = %d" % (num1, num2, result))
sum_2_num(50, 20)
3.2 參數(shù)的作用
- 函數(shù),把 具有獨立功能的代碼塊組織為一個小模塊,在需要的時候 調(diào)用
- 函數(shù)的參數(shù),增加函數(shù)的 通用性,針對 相同的數(shù)據(jù)處理邏輯,能夠 適應更多的數(shù)據(jù)
- 在函數(shù) 內(nèi)部,把參數(shù)當做 變量使用,進行需要的數(shù)據(jù)處理
- 函數(shù)調(diào)用時,按照函數(shù)定義的參數(shù)順序,把 希望在函數(shù)內(nèi)部處理的數(shù)據(jù),通過參數(shù)傳遞
3.3 形參和實參
- 形參:定義函數(shù)時,小括號中的參數(shù),是用來接收參數(shù)用的,在函數(shù)內(nèi)部 作為變量使用
- 實參:調(diào)用函數(shù)時,小括號中的參數(shù),是用來把數(shù)據(jù)傳遞到 函數(shù)內(nèi)部用的
04. 函數(shù)的返回值
- 在程序開發(fā)中,有時候,會希望 一個函數(shù)執(zhí)行結(jié)束后,告訴調(diào)用者一個結(jié)果,以便調(diào)用者針對具體的結(jié)果做后續(xù)的處理
- 返回值是函數(shù) 完成工作后,最后給調(diào)用者的 一個結(jié)果
- 在函數(shù)中使用 return 關鍵字可以返回結(jié)果
- 調(diào)用函數(shù)一方,可以 使用變量來 接收函數(shù)的返回結(jié)果
注意: return 表示返回,后續(xù)的代碼都不會被執(zhí)行
def sum_2_num(num1, num2):
"""對兩個數(shù)字的求和"""
return num1 + num2
# 調(diào)用函數(shù),并使用 result 變量接收計算結(jié)果
result = sum_2_num(10, 20)
print("計算結(jié)果是 %d" % result)
05. 函數(shù)的嵌套調(diào)用
- 一個函數(shù)里面 又調(diào)用了 另外一個函數(shù),這就是 函數(shù)嵌套調(diào)用
- 如果函數(shù) test2 中,調(diào)用了另外一個函數(shù) test1
那么執(zhí)行到調(diào)用 test1 函數(shù)時,會先把函數(shù) test1 中的任務都執(zhí)行完才會回到 test2 中調(diào)用函數(shù) test1 的位置,繼續(xù)執(zhí)行后續(xù)的代碼
def test1():
print("*" * 50)
print("test 1")
print("*" * 50)
def test2():
print("-" * 50)
print("test 2")
test1()
print("-" * 50)
test2()
06. 使用模塊中的函數(shù)
模塊是 Python 程序架構的一個核心概念
- 模塊就好比是 工具包,要想使用這個工具包中的工具,就需要 導入 import這個模塊
- 每一個以擴展名 py 結(jié)尾的 Python 源代碼文件都是一個 模塊
- 在模塊中定義的 全局變量 、 函數(shù)都是模塊能夠提供給外界直接使用的工具
6.1 使用模塊
- 可以 在一個 Python 文件中 定義 變量 或者 函數(shù)
- 然后在 另外一個文件中使用 import 導入這個模塊
- 導入之后,就可以使用 模塊名.變量 / 模塊名.函數(shù) 的方式,使用這個模塊中定義的變量或者函數(shù)
模塊可以讓 曾經(jīng)編寫過的代碼方便的被 復用!
6.2 模塊名也是一個標識符
- 標示符可以由 字母、下劃線和 數(shù)字組成
- 不能以數(shù)字開頭
- 不能與關鍵字重名
注意:如果在給 Python 文件起名時,以數(shù)字開頭是無法在 PyCharm 中通過導入這個模塊的
6.3 Pyc 文件(了解)
C 是 compiled 編譯過的意思
操作步驟
- 瀏覽程序目錄會發(fā)現(xiàn)一個 pycache的目錄
- 目錄下會有一個 file_name.cpython-XX.pyc 文件, cpython-XX 表示Python 解釋器的版本
- 這個 pyc 文件是由 Python 解釋器將 模塊的源碼轉(zhuǎn)換為 字節(jié)碼
Python 這樣保存 字節(jié)碼是作為一種啟動 速度的優(yōu)化
字節(jié)碼
- Python 在解釋源程序時是分成兩個步驟的
首先處理源代碼,編譯生成一個二進制 字節(jié)碼
再對 字節(jié)碼進行處理,才會生成 CPU 能夠識別的 機器碼 - 有了模塊的字節(jié)碼文件之后,下一次運行程序時,如果在 上次保存字節(jié)碼之后沒有修改過源代碼,Python 將會加載 .pyc 文件并跳過編譯這個步驟
- 當 Python 重編譯時,它會自動檢查源文件和字節(jié)碼文件的時間戳
如果你又修改了源代碼,下次程序運行時,字節(jié)碼將自動重新創(chuàng)建
模塊是 Python 程序架構的一個核心概念
網(wǎng)站題目:python基礎_函數(shù)
新聞來源:http://vcdvsql.cn/article44/gjijee.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊、網(wǎng)站設計公司、網(wǎng)站導航、動態(tài)網(wǎng)站、靜態(tài)網(wǎng)站、做網(wǎng)站
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)