python基礎(chǔ)_函數(shù)-創(chuàng)新互聯(lián)

函數(shù)基礎(chǔ)

目標(biāo)

  • 函數(shù)的快速體驗(yàn)
  • 函數(shù)的基本使用
  • 函數(shù)的參數(shù)
  • 函數(shù)的返回值
  • 函數(shù)的嵌套調(diào)用
  • 在模塊中定義函數(shù)

01. 函數(shù)的快速體驗(yàn)

  • 所謂函數(shù),就是把 具有獨(dú)立功能的代碼塊 組織為一個(gè)小模塊,在需要的時(shí)候 調(diào)用
  • 函數(shù)的使用包含兩個(gè)步驟:
    1.定義函數(shù) —— 封裝 獨(dú)立的功能
    2.調(diào)用函數(shù) —— 享受 封裝 的成果
  • 函數(shù)的作用,在開發(fā)程序時(shí),使用函數(shù)可以提高編寫的效率以及代碼的 重用

02. 函數(shù)基本使用

2.1 函數(shù)的定義

定義函數(shù)的格式如下:

成都創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元蕭山做網(wǎng)站,已為上家服務(wù),為蕭山各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
def 函數(shù)名():

    函數(shù)封裝的代碼
    ……
  • def 是英文 define 的縮寫
  • 函數(shù)名稱 應(yīng)該能夠表達(dá) 函數(shù)封裝代碼 的功能,方便后續(xù)的調(diào)用
  • 函數(shù)名稱 的命名應(yīng)該 符合 標(biāo)識符的命名規(guī)則
    • 可以由 字母、下劃線數(shù)字 組成
    • 不能以數(shù)字開頭
    • 不能與關(guān)鍵字重名

2.2 函數(shù)調(diào)用

調(diào)用函數(shù)很簡單的,通過 函數(shù)名() 即可完成對函數(shù)的調(diào)用

2.3 第一個(gè)函數(shù)演練

需求

  • 1.編寫一個(gè)打招呼 say_hello 的函數(shù),封裝三行打招呼的代碼
  • 2.在函數(shù)下方調(diào)用打招呼的代碼
name = "hello"

# 解釋器知道這里定義了一個(gè)函數(shù)
def say_hello():
    print("hello 1")
    print("hello 2")
    print("hello 3")

print(name)
# 只有在調(diào)用函數(shù)時(shí),之前定義的函數(shù)才會被執(zhí)行
# 函數(shù)執(zhí)行完成之后,會重新回到之前的程序中,繼續(xù)執(zhí)行后續(xù)的代碼
say_hello()

print(name)
  • 定義好函數(shù)之后,只表示這個(gè)函數(shù)封裝了一段代碼而已
  • 如果不主動調(diào)用函數(shù),函數(shù)是不會主動執(zhí)行的

思考

  • 能否將 函數(shù)調(diào)用 放在 函數(shù)定義 的上方?

    • 不能!
    • 因?yàn)樵?使用函數(shù)名 調(diào)用函數(shù)之前,必須要保證 Python 已經(jīng)知道函數(shù)的存在
    • 否則控制臺會提示 NameError: name 'say_hello' is not defined (名稱錯誤:say_hello 這個(gè)名字沒有被定義)

2.4 PyCharm 的調(diào)試工具

  • F8 Step Over 可以單步執(zhí)行代碼,會把函數(shù)調(diào)用看作是一行代碼直接執(zhí)行
  • F7 Step Into 可以單步執(zhí)行代碼,如果是函數(shù),會進(jìn)入函數(shù)內(nèi)部

2.5 函數(shù)的文檔注釋

  • 在開發(fā)中,如果希望給函數(shù)添加注釋,應(yīng)該在 定義函數(shù) 的下方,使用 連續(xù)的三對引號
  • 連續(xù)的三對引號 之間編寫對函數(shù)的說明文字
  • 函數(shù)調(diào)用 位置,使用快捷鍵 CTRL + Q 可以查看函數(shù)的說明信息
    注意:因?yàn)?函數(shù)體相對比較獨(dú)立,函數(shù)定義的上方應(yīng)該和其他代碼(包括注釋)保留 兩個(gè)空行

03. 函數(shù)的參數(shù)

演練需求

  1. 開發(fā)一個(gè) sum_2_num 的函數(shù)
  2. 函數(shù)能夠?qū)崿F(xiàn) 兩個(gè)數(shù)字的求和 功能
    演練代碼如下:
def sum_2_num():

    num1 = 10
    num2 = 20
    result = num1 + num2

    print("%d + %d = %d" % (num1, num2, result))

sum_2_num()

思考一下存在什么問題

函數(shù)只能處理 **固定數(shù)值** 的相加

如何解決?

  • 如果能夠把需要計(jì)算的數(shù)字,在調(diào)用函數(shù)時(shí),傳遞到函數(shù)內(nèi)部就好了!

3.1 函數(shù)參數(shù)的使用

  • 在函數(shù)名的后面的小括號內(nèi)部填寫 參數(shù)
  • 多個(gè)參數(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ù),把 具有獨(dú)立功能的代碼塊 組織為一個(gè)小模塊,在需要的時(shí)候 調(diào)用
  • 函數(shù)的參數(shù),增加函數(shù)的 通用性,針對 相同的數(shù)據(jù)處理邏輯,能夠 適應(yīng)更多的數(shù)據(jù)
    1. 在函數(shù) 內(nèi)部,把參數(shù)當(dāng)做 變量 使用,進(jìn)行需要的數(shù)據(jù)處理
    2. 函數(shù)調(diào)用時(shí),按照函數(shù)定義的參數(shù)順序,把 希望在函數(shù)內(nèi)部處理的數(shù)據(jù),通過參數(shù) 傳遞

3.3 形參和實(shí)參

  • 形參:定義 函數(shù)時(shí),小括號中的參數(shù),是用來接收參數(shù)用的,在函數(shù)內(nèi)部 作為變量使用
  • 實(shí)參:調(diào)用 函數(shù)時(shí),小括號中的參數(shù),是用來把數(shù)據(jù)傳遞到 函數(shù)內(nèi)部 用的

04. 函數(shù)的返回值

  • 在程序開發(fā)中,有時(shí)候,會希望 一個(gè)函數(shù)執(zhí)行結(jié)束后,告訴調(diào)用者一個(gè)結(jié)果,以便調(diào)用者針對具體的結(jié)果做后續(xù)的處理
  • 返回值 是函數(shù) 完成工作后,最后 給調(diào)用者的 一個(gè)結(jié)果
  • 在函數(shù)中使用 return 關(guān)鍵字可以返回結(jié)果
  • 調(diào)用函數(shù)一方,可以 使用變量接收 函數(shù)的返回結(jié)果

    注意: return 表示返回,后續(xù)的代碼都不會被執(zhí)行

def sum_2_num(num1, num2):
    """對兩個(gè)數(shù)字的求和"""

    return num1 + num2

# 調(diào)用函數(shù),并使用 result 變量接收計(jì)算結(jié)果
result = sum_2_num(10, 20)

print("計(jì)算結(jié)果是 %d" % result)

05. 函數(shù)的嵌套調(diào)用

  • 一個(gè)函數(shù)里面 又調(diào)用另外一個(gè)函數(shù),這就是 函數(shù)嵌套調(diào)用
  • 如果函數(shù) test2 中,調(diào)用了另外一個(gè)函數(shù) test1
    那么執(zhí)行到調(diào)用 test1 函數(shù)時(shí),會先把函數(shù) test1 中的任務(wù)都執(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 程序架構(gòu)的一個(gè)核心概念

  • 模塊 就好比是 工具包,要想使用這個(gè)工具包中的工具,就需要 導(dǎo)入 import 這個(gè)模塊
  • 每一個(gè)以擴(kuò)展名 py 結(jié)尾的 Python 源代碼文件都是一個(gè) 模塊
  • 在模塊中定義的 全局變量 、 函數(shù) 都是模塊能夠提供給外界直接使用的工具

6.1 使用模塊

  • 可以 在一個(gè) Python 文件定義 變量 或者 函數(shù)
  • 然后在 另外一個(gè)文件中 使用 import 導(dǎo)入這個(gè)模塊
  • 導(dǎo)入之后,就可以使用 模塊名.變量 / 模塊名.函數(shù) 的方式,使用這個(gè)模塊中定義的變量或者函數(shù)

    模塊可以讓 曾經(jīng)編寫過的代碼 方便的被 復(fù)用!

6.2 模塊名也是一個(gè)標(biāo)識符

  • 標(biāo)示符可以由 字母、下劃線數(shù)字 組成
  • 不能以數(shù)字開頭
  • 不能與關(guān)鍵字重名

注意:如果在給 Python 文件起名時(shí),以數(shù)字開頭 是無法在 PyCharm 中通過導(dǎo)入這個(gè)模塊的

6.3 Pyc 文件(了解)

C 是 compiled 編譯過 的意思

操作步驟

  • 瀏覽程序目錄會發(fā)現(xiàn)一個(gè) pycache 的目錄
  • 目錄下會有一個(gè) file_name.cpython-XX.pyc 文件, cpython-XX 表示Python 解釋器的版本
  • 這個(gè) pyc 文件是由 Python 解釋器將 模塊的源碼 轉(zhuǎn)換為 字節(jié)碼
    Python 這樣保存 字節(jié)碼 是作為一種啟動 速度的優(yōu)化

字節(jié)碼

  • Python 在解釋源程序時(shí)是分成兩個(gè)步驟的
    首先處理源代碼,編譯 生成一個(gè)二進(jìn)制 字節(jié)碼
    再對 字節(jié)碼 進(jìn)行處理,才會生成 CPU 能夠識別的 機(jī)器碼
  • 有了模塊的字節(jié)碼文件之后,下一次運(yùn)行程序時(shí),如果在 上次保存字節(jié)碼之后 沒有修改過源代碼,Python 將會加載 .pyc 文件并跳過編譯這個(gè)步驟
  • 當(dāng) Python 重編譯時(shí),它會自動檢查源文件和字節(jié)碼文件的時(shí)間戳
    如果你又修改了源代碼,下次程序運(yùn)行時(shí),字節(jié)碼將自動重新創(chuàng)建

模塊是 Python 程序架構(gòu)的一個(gè)核心概念

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前題目:python基礎(chǔ)_函數(shù)-創(chuàng)新互聯(lián)
文章鏈接:http://muchs.cn/article28/cdsscp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、建站公司、移動網(wǎng)站建設(shè)、做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管