Python第八課

重點(diǎn):函數(shù)的參數(shù)和返回值,函數(shù)的嵌套調(diào)用脊另,模塊簡(jiǎn)介导狡,列表
時(shí)間:2019年12月13日
課程:黑馬Python基礎(chǔ)-14、15偎痛、16章(142.1 - 157.4)

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

142.1 沒(méi)有參數(shù)的函數(shù)
過(guò)于死板(hm-05-函數(shù)的參數(shù))
思考一下存在什么問(wèn)題
函數(shù)只能處理 固定數(shù)值 的相加

如何解決旱捧?

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

143.2 函數(shù)參數(shù)的使用以及作用

  • 在函數(shù)名的后面的小括號(hào)內(nèi)部填寫(xiě) 參數(shù)
  • 多個(gè)參數(shù)之間使用 , 分隔
def sum_2_num(num1, num2):

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

sum_2_num(50, 20)

參數(shù)的作用

  • 函數(shù),把 具有獨(dú)立功能的代碼塊 組織為一個(gè)小模塊谓谦,在需要的時(shí)候 調(diào)用
  • 函數(shù)的參數(shù)贫橙,增加函數(shù)的 通用性,針對(duì) 相同的數(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ù)通過(guò)參數(shù) 傳遞

144.3 形參和實(shí)參

  • 形參定義 函數(shù)時(shí)娜膘,小括號(hào)中的參數(shù)逊脯,是用來(lái)接收參數(shù)用的,在函數(shù)內(nèi)部 作為變量使用
  • 實(shí)參調(diào)用 函數(shù)時(shí)竣贪,小括號(hào)中的參數(shù)军洼,是用來(lái)把數(shù)據(jù)傳遞到 函數(shù)內(nèi)部 用的

145.1 返回值的應(yīng)用場(chǎng)景和格式

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

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

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

   return num1 + num2

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

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

146.2 改造求和函數(shù)(hm-06-函數(shù)的返回值)

147.2 return關(guān)鍵字的注意事項(xiàng)

? return表示返回跑杭,下方的代碼不回被執(zhí)行铆帽。

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

148.1 函數(shù)嵌套調(diào)用的執(zhí)行線路圖(hm-07-函數(shù)的嵌套調(diào)用)

? 掌握函數(shù)嵌套調(diào)用的執(zhí)行順序邏輯

149.2【擴(kuò)展】用百度網(wǎng)站舉例說(shuō)明函數(shù)的調(diào)用線路

150.1 分割線演練:利用參數(shù)增加分割線的靈活度

? hm-08-打印分割線

def print_line(char, times):

   print(char * times)

151.2 打印多條分割線

? hm-09-打印多條分割線

def print_line(char, times):

   print(char * times)


def print_lines():

   row = 0
   
   while row < 5:
       print_line("-", 50)

       row += 1

152.3 增加多行分割線函數(shù)的參數(shù)

def print_line(char, times):

   print(char * times)


def print_lines(char, times):

   row = 0
   
   while row < 5:
       print_line(char, times)

       row += 1

153.4 【擴(kuò)展】Pycharm給函數(shù)增加文檔注釋

? 鼠標(biāo)停留函數(shù)名(創(chuàng)建),點(diǎn)擊 Insert documentation string stub 德谅,給函數(shù)及參數(shù)添加注釋

? 查看文檔注釋:F1

16. 模塊簡(jiǎn)介

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

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

155.2 使用模塊演練
步驟

  • 新建 hm_10_分隔線模塊.py
    • 復(fù)制 hm_09_打印多條分隔線.py 中的內(nèi)容愧驱,最后一行 print 代碼除外
    • 增加一個(gè)字符串變量

name = "黑馬程序員"

import hm_10_分隔線模塊

hm_10_分隔線模塊.print_line("-", 80)
print(hm_10_分隔線模塊.name)

體驗(yàn)小結(jié)

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

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

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

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

注意:如果在給 Python 文件起名時(shí)掏颊,以數(shù)字開(kāi)頭 是無(wú)法在 PyCharm 中通過(guò)導(dǎo)入這個(gè)模塊的157.4 【科普】pyc文件可以提高程序執(zhí)行速度
Ccompiled 編譯過(guò) 的意思
操作步驟

  1. 瀏覽程序目錄會(huì)發(fā)現(xiàn)一個(gè) __pycache__ 的目錄
  2. 目錄下會(huì)有一個(gè) hm_10_分隔線模塊.cpython-35.pyc 文件糟红,cpython-35 表示 Python 解釋器的版本
  3. 這個(gè) pyc 文件是由 Python 解釋器將 模塊的源碼 轉(zhuǎn)換為 字節(jié)碼
    • Python 這樣保存 字節(jié)碼 是作為一種啟動(dòng) 速度的優(yōu)化

字節(jié)碼

  • Python 在解釋源程序時(shí)是分成兩個(gè)步驟的

    1. 首先處理源代碼,編譯 生成一個(gè)二進(jìn)制 字節(jié)碼
    2. 再對(duì) 字節(jié)碼 進(jìn)行處理蚯舱,才會(huì)生成 CPU 能夠識(shí)別的 機(jī)器碼
  • 有了模塊的字節(jié)碼文件之后改化,下一次運(yùn)行程序時(shí),如果在 上次保存字節(jié)碼之后 沒(méi)有修改過(guò)源代碼枉昏,Python 將會(huì)加載 .pyc 文件并跳過(guò)編譯這個(gè)步驟

  • 當(dāng) Python 重編譯時(shí)陈肛,它會(huì)自動(dòng)檢查源文件和字節(jié)碼文件的時(shí)間戳

  • 如果你又修改了源代碼,下次程序運(yùn)行時(shí)兄裂,字節(jié)碼將自動(dòng)重新創(chuàng)建

提示:有關(guān)模塊以及模塊的其他導(dǎo)入方式句旱,后續(xù)課程還會(huì)逐漸展開(kāi)!
模塊是 Python 程序架構(gòu)的一個(gè)核心概念

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末晰奖,一起剝皮案震驚了整個(gè)濱河市谈撒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌匾南,老刑警劉巖啃匿,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡溯乒,警方通過(guò)查閱死者的電腦和手機(jī)夹厌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)裆悄,“玉大人矛纹,你說(shuō)我怎么就攤上這事」饧冢” “怎么了或南?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)艾君。 經(jīng)常有香客問(wèn)我采够,道長(zhǎng),這世上最難降的妖魔是什么冰垄? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任吁恍,我火速辦了婚禮,結(jié)果婚禮上播演,老公的妹妹穿的比我還像新娘。我一直安慰自己伴奥,他們只是感情好写烤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著拾徙,像睡著了一般洲炊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上尼啡,一...
    開(kāi)封第一講書(shū)人閱讀 51,727評(píng)論 1 305
  • 那天暂衡,我揣著相機(jī)與錄音,去河邊找鬼崖瞭。 笑死狂巢,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的书聚。 我是一名探鬼主播唧领,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼雌续!你這毒婦竟也來(lái)了斩个?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤驯杜,失蹤者是張志新(化名)和其女友劉穎受啥,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡滚局,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年居暖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片核畴。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡膝但,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谤草,到底是詐尸還是另有隱情跟束,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布丑孩,位于F島的核電站冀宴,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏温学。R本人自食惡果不足惜略贮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望仗岖。 院中可真熱鬧逃延,春花似錦、人聲如沸轧拄。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)檩电。三九已至拄丰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間俐末,已是汗流浹背料按。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留卓箫,地道東北人载矿。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像丽柿,于是被迫代替她去往敵國(guó)和親恢准。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一甫题、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 5,746評(píng)論 0 10
  • 1.模塊 每一個(gè)包目錄下面都會(huì)有一個(gè)init.py的文件馁筐,這個(gè)文件是必須存在的,否則坠非,Python就把這個(gè)目錄當(dāng)成...
    lmem閱讀 417評(píng)論 0 0
  • 一敏沉、模塊 1、模塊和導(dǎo)入 當(dāng)程序代碼量變得相當(dāng)大、邏輯結(jié)構(gòu)變得非常復(fù)雜的時(shí)候盟迟,我們最好把代碼按照邏輯和功能劃分成一...
    常大鵬閱讀 2,992評(píng)論 0 9
  • React Native封裝Form表單組件 為什么我們?cè)谝苿?dòng)端開(kāi)發(fā)中急需要一個(gè)完善的Form表單組件尼秋泳?做過(guò)移動(dòng)...
    光強(qiáng)_上海閱讀 9,882評(píng)論 5 16
  • 早上去公司把清潔衛(wèi)生做了一遍,心情確實(shí)就好了很多很多攒菠,人生中有好多好多次這樣的體驗(yàn)迫皱,俗話說(shuō)一屋不掃何以掃天下,這個(gè)...
    何德勝覺(jué)悟閱讀 149評(píng)論 6 5