久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

《計(jì)算機(jī)二級(jí)Python語(yǔ)言程序設(shè)計(jì)考試》第5章:函數(shù)和代碼復(fù)用

 昵稱A4812 2019-02-21

注明:本系列課程專為全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí) Python 語(yǔ)言程序設(shè)計(jì)考試服務(wù)

目錄

考綱考點(diǎn)

知識(shí)導(dǎo)圖

1,、函數(shù)的基本使用

函數(shù)的定義

函數(shù)的使用

2、函數(shù)的參數(shù)傳遞

可選參數(shù)傳遞

參數(shù)名稱傳遞

函數(shù)的返回值

3,、變量的作用域

局部變量

全局變量

4,、代碼復(fù)用

5、實(shí)例解析:軟文的詩(shī)詞風(fēng)

本章小結(jié)


考綱考點(diǎn)

  • 函數(shù)的定義和使用

  • 函數(shù)的參數(shù)傳遞: 可選參數(shù)傳遞,、參數(shù)名稱傳遞,、函數(shù)的返回值

  • 變量的作用域: 局部變量和全局變量

知識(shí)導(dǎo)圖

1、函數(shù)的基本使用

函數(shù)的定義

  • 函數(shù)是一段具有特定功能的,、可重用的語(yǔ)句組,,通過(guò)函數(shù)名來(lái)表示和調(diào)用。經(jīng)過(guò)定義,,一組語(yǔ)句等價(jià)于一個(gè)函數(shù),,在需要使用這組語(yǔ)句的地方,直接調(diào)用函數(shù)名稱即可,。

  • 因此,,函數(shù)的使用包括兩部分:函數(shù)的定義函數(shù)的使用

  • 函數(shù)是一種功能抽象,。

  • Python定義一個(gè)函數(shù)使用def保留字,,語(yǔ)法形式如下:

def <函數(shù)名>(<參數(shù)列表>):

        <函數(shù)體>

return <返回值列表>

  • 函數(shù)名可以是任何有效的Python標(biāo)識(shí)符

  • 參數(shù)列表是調(diào)用該函數(shù)時(shí)傳遞給它的值,可以有零個(gè),、一個(gè)或多個(gè),,當(dāng)傳遞多個(gè)參數(shù)時(shí)各參數(shù)由逗號(hào)分隔,當(dāng)沒(méi)有參數(shù)時(shí)也要保留圓括號(hào),。

  • 函數(shù)體是函數(shù)每次被調(diào)用時(shí)執(zhí)行的代碼,,由一行或多行語(yǔ)句組成。

  1. # 定義一個(gè)對(duì)整數(shù)n求階乘的函數(shù)
  2. def fact(n):
  3. s = 1
  4. for i in range(1, n+1):
  5. s *= i
  6. return s
  • 如果需要返回值,,使用保留字return和返回值列表,。函數(shù)可以沒(méi)有return語(yǔ)句,,函數(shù)體結(jié)束后會(huì)將控制權(quán)返回給調(diào)用者。

函數(shù)的使用

  • 定義后的函數(shù)不能直接運(yùn)行,,需要經(jīng)過(guò)“調(diào)用”才能運(yùn)行,。調(diào)用函數(shù)的基本方法如下:

<函數(shù)名>(<實(shí)際賦值參數(shù)列表>)

  1. #定義一個(gè)對(duì)整數(shù)n求階乘的函數(shù)
  2. def fact(n):
  3. s = 1
  4. for i in range(1, n+1):
  5. s *= i
  6. return s
  7. # 調(diào)用整數(shù)階乘的函數(shù)
  8. print(fact(100))
  • 具體來(lái)說(shuō),函數(shù)的使用一共分為四個(gè)步驟:

   1. 函數(shù)定義

使用def保留字將一段代碼定義為函數(shù),,需要確定函數(shù)的名字,、參數(shù)的名字、參數(shù)的個(gè)數(shù),,使用參數(shù)名稱作為形式參數(shù)(占位符)編寫(xiě)函數(shù)內(nèi)部的功能代碼,。

   2. 函數(shù)調(diào)用

通過(guò)函數(shù)名調(diào)用函數(shù)功能,對(duì)函數(shù)的各個(gè)參數(shù)賦予實(shí)際值,,實(shí)際值可以是實(shí)際數(shù)據(jù),,也可以是在調(diào)用函數(shù)前已經(jīng)定義過(guò)的變量。

   3.函數(shù)執(zhí)行

函數(shù)被調(diào)用后,,使用實(shí)際參數(shù)(賦予形式參數(shù)的實(shí)際值)參與函數(shù)內(nèi)部代碼的運(yùn)行,,如果有結(jié)果則進(jìn)行輸出。

   4.函數(shù)返回

函數(shù)執(zhí)行結(jié)束后,,根據(jù)return保留字的指示決定是否返回結(jié)果,如果返回結(jié)果,,則結(jié)果將被放置到函數(shù)被調(diào)用的位置,,函數(shù)使用完畢,程序繼續(xù)運(yùn)行,。

2,、函數(shù)的參數(shù)傳遞

可選參數(shù)傳遞

  • 函數(shù)的參數(shù)在定義時(shí)可以指定默認(rèn)值,當(dāng)函數(shù)被調(diào)用時(shí),,如果沒(méi)有傳入對(duì)應(yīng)的參數(shù)值,,則使用函數(shù)定義時(shí)的默認(rèn)值替代,函數(shù)定義時(shí)的語(yǔ)法形式如下:

def <函數(shù)名>(<非可選參數(shù)列表>, <可選參數(shù)> = <默認(rèn)值>):

        <函數(shù)體>

        return <返回值列表>

  • 需要注意,,可選參數(shù)一般都放置在非可選參數(shù)的后面,,即定義函數(shù)時(shí),先給出所有非可選參數(shù),,然后再分別列出每個(gè)可選參數(shù)及對(duì)應(yīng)的默認(rèn)值,。

  1. >>>def multiply(x, y = 10):
  2. print(x*y)
  3. >>>multiply(99)
  4. 990
  5. >>>multiply(99, 2)
  6. 198

參數(shù)名稱傳遞

  • Python語(yǔ)言同時(shí)支持函數(shù)按照參數(shù)名稱方式傳遞參數(shù),語(yǔ)法形式如下:

<函數(shù)名>(<參數(shù)名> = <實(shí)際值>)

  1. >>>def multiply(x, y = 10):
  2. print(x*y)
  3. >>>multiply(x = 99)
  4. 990
  5. >>>multiply(y = 2, x = 99)
  6. 198

函數(shù)的返回值

  • return語(yǔ)句用來(lái)結(jié)束函數(shù)并將程序返回到函數(shù)被調(diào)用的位置繼續(xù)執(zhí)行,。

  • return語(yǔ)句可以出現(xiàn)在函數(shù)中的任何部分,,同時(shí)可以將0個(gè)、1個(gè)或多個(gè)函數(shù)運(yùn)算的結(jié)果返回給函數(shù)被調(diào)用處的變量,。

  1. >>>def multiply(x, y = 10):
  2. return x*y
  3. >>>s = multiply(99, 2)
  4. >>>print(s)
  5. 198
  • 函數(shù)可以沒(méi)有return,,此時(shí)函數(shù)并不返回值,。當(dāng)函數(shù)使用return返回多個(gè)值,可以使用一個(gè)變量或多個(gè)變量保存結(jié)果,。

  1. >>>def multiply(x, y = 10):
  2. return x*y, x+y
  3. >>>s = multiply(99, 2)
  4. >>>print(s)
  5. (198, 101)
  6. >>>a,b = multiply(99, 2)
  7. >>>print(a)
  8. 198
  9. >>>print(b)
  10. 101

3,、變量的作用域

  • 根據(jù)程序中變量所在的位置和作用范圍,變量分為局部變量全局變量,。

  • 局部變量?jī)H在函數(shù)內(nèi)部,,且作用域也在函數(shù)內(nèi)部,全局變量的作用域跨越多個(gè)函數(shù),。

局部變量

  • 局部變量指在函數(shù)內(nèi)部使用的變量,,僅在函數(shù)內(nèi)部有效,當(dāng)函數(shù)退出時(shí)變量將不再存在,。

  1. >>>def multiply(x, y = 10):
  2. z = x*y # z是函數(shù)內(nèi)部的局部變量
  3. return z
  4. >>>s = multiply(99, 2)
  5. >>>print(s)
  6. 198
  7. >>>print(z)
  8. Traceback (most recent call last):
  9. File "<pyshell#11>", line 1, in <module>
  10. print(z)
  11. NameError: name 'z' is not defined
  • 變量z是函數(shù)multiple()內(nèi)部使用的變量,,當(dāng)函數(shù)調(diào)用后,變量z將不存在,。

全局變量

  • 全局變量指在函數(shù)之外定義的變量,,在程序執(zhí)行全過(guò)程有效。全部變量在函數(shù)內(nèi)部使用時(shí),,需要提前使用保留字global聲明,,語(yǔ)法形式如下:

global <全局變量>

  1. >>>n = 2 #n是全局變量
  2. >>>def multiply(x, y = 10):
  3. global n
  4. return x*y*n # 使用全局變量n
  5. >>>s = multiply(99, 2)
  6. >>>print(s)
  7. 396
  • 上例中,變量n是全局變量,,在函數(shù)multiply()中使用時(shí)需要在函數(shù)內(nèi)部使用global聲明,,定義后即可使用。

  • 如果未使用保留字global聲明,,即使名稱相同,,也不是全局變量。

  1. >>>n = 2 #n是全局變量
  2. >>>def multiply(x, y = 10):
  3. n = x*y
  4. return n # 此處的n不是全局變量
  5. >>>s = multiply(99, 2)
  6. >>>print(s)
  7. 198
  8. >>>print(n) #不改變外部全局變量的值
  9. 2

4,、代碼復(fù)用

  • 函數(shù)是程序的一種基本抽象方式,,它將一系列代碼組織起來(lái)通過(guò)命名供其他程序使用。

  • 函數(shù)封裝的直接好處是代碼復(fù)用,,任何其他代碼只要輸入?yún)?shù)即可調(diào)用函數(shù),,從而避免相同功能代碼在被調(diào)用處重復(fù)編寫(xiě)。代碼復(fù)用產(chǎn)生了另一個(gè)好處,,當(dāng)更新函數(shù)功能時(shí),,所有被調(diào)用處的功能都被更新。

  • 模塊化設(shè)計(jì)指通過(guò)函數(shù)的封裝功能將程序劃分成主程序,、子程序和子程序間關(guān)系的表達(dá),。模塊化設(shè)計(jì)是使用函數(shù)設(shè)計(jì)程序的思考方法,以功能塊為基本單位,,一般有兩個(gè)基本要求:

緊耦合:盡可能合理劃分功能塊,,功能塊內(nèi)部耦合緊密,;

松耦合:模塊間關(guān)系盡可能簡(jiǎn)單,功能塊之間耦合度低,。

  • 耦合性指程序結(jié)構(gòu)中各模塊之間相互關(guān)聯(lián)的程度,,它取決于各模塊間接口的復(fù)雜程度和調(diào)用方式。

  • 緊耦合指模塊或系統(tǒng)間關(guān)系緊密,,存在較多或復(fù)雜的相互調(diào)用,。緊耦合的缺點(diǎn)在于更新一個(gè)模塊可能導(dǎo)致其它模塊變化,復(fù)用較困難,。

  • 松耦合一般基于消息或協(xié)議實(shí)現(xiàn),,系統(tǒng)間交互簡(jiǎn)單。

  • 使用函數(shù)只是模塊化設(shè)計(jì)的必要非充分條件,,根據(jù)計(jì)算需求合理劃分函數(shù)十分重要,。一般來(lái)說(shuō),完成特定功能或被經(jīng)常復(fù)用的一組語(yǔ)句應(yīng)該采用函數(shù)來(lái)封裝,,并盡可能減少函數(shù)間參數(shù)和返回值的數(shù)量,。

5、實(shí)例解析:軟文的詩(shī)詞風(fēng)

  • 軟文的詩(shī)詞風(fēng)將原有文章根據(jù)標(biāo)點(diǎn)符號(hào)重新切分成短句并居中排版,,對(duì)小屏幕閱讀十分有利,。使用程序?qū)⑵胀ㄎ恼伦兂绍浳牡脑?shī)詞風(fēng)十分有趣

  1. txt = '''
  2. 人生得意須盡歡,莫使金樽空對(duì)月,。
  3. 天生我材必有用,,千金散盡還復(fù)來(lái)。
  4. '''
  5. linewidth = 30 # 預(yù)定的輸出寬度
  6. def lineSplit(line):
  7. plist = [',', '!', '?', ',,', ',。', ',!', ',?']
  8. for p in plist:
  9. line = line.replace(p, '\n')
  10. return line.split('\n')
  11. def linePrint(line):
  12. global linewidth
  13. print(line.center(linewidth, chr(12288)))
  14. newlines = lineSplit(txt)
  15. for newline in newlines:
  16. linePrint(newline)
  • 原始文本使用變量txt保存,程序運(yùn)行效果如下,。

  1. >>>
  2.            人生得意須盡歡            
  3.            莫使金樽空對(duì)月            
  4.            天生我材必有用            
  5.            千金散盡還復(fù)來(lái) 

原始文本使用變量txt保存,,程序運(yùn)行效果如下。

  1. txt = '''
  2. 三國(guó)演義 上卷
  3. 羅貫中
  4. 滾滾長(zhǎng)江東逝水,,浪花淘盡英雄,。是非成敗轉(zhuǎn)頭空。青山依舊在,,幾度夕陽(yáng)紅,。
  5. 白發(fā)漁樵江渚上,慣看秋月春風(fēng),。一壺濁酒喜相逢,。古今多少事,,都付笑談中。
  6. --調(diào)寄《臨江仙》
  7. 第一回 宴桃園豪杰三結(jié)義 斬黃巾英雄首立功
  8. 話說(shuō)天下大勢(shì),,分久必合,,合久必分。周末七國(guó)分爭(zhēng),,并入于秦,。及秦滅之后,
  9. 楚,、漢分爭(zhēng),,又并入于漢。漢朝自高祖斬白蛇而起義,,一統(tǒng)天下,,后來(lái)光武中興,
  10. 傳至獻(xiàn)帝,,遂分為三國(guó),。
  11. '''
  1. >>>
  2.            三國(guó)演義 上卷            
  3.              羅貫中              
  4.            滾滾長(zhǎng)江東逝水            
  5.             浪花淘盡英雄            
  6.            是非成敗轉(zhuǎn)頭空            
  7.             青山依舊在             
  8.             幾度夕陽(yáng)紅             
  9.            白發(fā)漁樵江渚上            
  10.             慣看秋月春風(fēng)            
  11.            一壺濁酒喜相逢            
  12.             古今多少事             
  13.             都付笑談中             
  14.           --調(diào)寄《臨江仙》 
  15.   第一回 宴桃園豪杰三結(jié)義 斬黃巾英雄首立功    
  16.             話說(shuō)天下大勢(shì)            
  17.              分久必合             
  18.              合久必分             
  19.             周末七國(guó)分爭(zhēng)            
  20.              并入于秦             
  21.             及秦滅之后             
  22.             楚、漢分爭(zhēng)             
  23.             又并入于漢             
  24.          漢朝自高祖斬白蛇而起義          
  25.              一統(tǒng)天下             
  26.             后來(lái)光武中興            
  27.              傳至獻(xiàn)帝             
  28.             遂分為三國(guó)    
  • 當(dāng)每句長(zhǎng)度超過(guò)變量linewdith后,,顯示效果并不好,。這需要修改函數(shù)linePrint(),當(dāng)一個(gè)短句行數(shù)超過(guò)限制時(shí),,分行居中顯示,。

  1. def linePrint(line):
  2. global linewidth
  3. while len(line) > linewidth:
  4. print(line[0:linewidth])
  5. line = line[linewidth:]
  6. print(line.center(linewidth, chr(12288)))

本章小結(jié)

本章講解了函數(shù)的基本使用方法,包括函數(shù)的定義和調(diào)用,。進(jìn)一步具體講解了函數(shù)的參數(shù)傳遞方法和變量的作用域,,包括可選參數(shù)傳遞、參數(shù)名稱傳遞和函數(shù)的返回值,,初步介紹了函數(shù)的作用和代碼復(fù)用,。通過(guò)軟文的詩(shī)詞風(fēng)實(shí)例幫助讀者理解函數(shù)的定義和使用。

古代的詩(shī)詞歌賦是填詞怡情,,當(dāng)代的詩(shī)詞歌賦則是風(fēng)格怡情,,快來(lái)造個(gè)自己風(fēng)格吧?,!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多