Python基礎(chǔ)教程(郭江濤 于曉強(qiáng) 宋燕紅)全套教案課件_第1頁
Python基礎(chǔ)教程(郭江濤 于曉強(qiáng) 宋燕紅)全套教案課件_第2頁
Python基礎(chǔ)教程(郭江濤 于曉強(qiáng) 宋燕紅)全套教案課件_第3頁
Python基礎(chǔ)教程(郭江濤 于曉強(qiáng) 宋燕紅)全套教案課件_第4頁
Python基礎(chǔ)教程(郭江濤 于曉強(qiáng) 宋燕紅)全套教案課件_第5頁
已閱讀5頁,還剩832頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Python基礎(chǔ)教程(郭江濤于曉強(qiáng)宋燕紅)第1章

Python概述.ppt第2章

Python語言基礎(chǔ).ppt第3章

Python函數(shù).ppt第4章

Python面向?qū)ο蟪绦蛟O(shè)計.ppt第5章

Python模塊.ppt第6章

函數(shù)式編程.ppt第7章

I/O編程.ppt第8章

圖形界面編程.ppt第9章

多任務(wù)編程.ppt第10章

網(wǎng)絡(luò)編程.ppt全套可編輯PPT幻燈片課件(共10章)第1章Python概述課程描述Python誕生于20世紀(jì)90年代初,是一種解釋型、面向?qū)ο?、動態(tài)數(shù)據(jù)類型的高級程序設(shè)計語言,是最受歡迎的程序設(shè)計語言之一。本章介紹Python語言的基本情況。本章知識點(diǎn)1.1初識Python1.2開始Python編程1.3Python文本編輯器IDLE1.1初識Python1.1.1什么是Python1.1.2Python的特性1.1.1什么是PythonPython于20世紀(jì)80年代末由荷蘭人GuidovanRossum設(shè)計實(shí)現(xiàn)的。Python的發(fā)展歷史

1991年,VanRossum公布了0.9.0版本的Python源代碼,此版本已經(jīng)實(shí)現(xiàn)了類、函數(shù)以及列表、字典和字符串等基本的數(shù)據(jù)類型。本書將在第2章介紹基本數(shù)據(jù)類型,第3章介紹函數(shù),第4章介紹類。0.9.0版本還集成了模塊系統(tǒng),VanRossum將模塊描述為Python主要的編程單元。1962年,美國空軍委托蘭德公司的PaulBaran來研究如何在遭受核打擊后保持對導(dǎo)彈和轟炸機(jī)的控制和指揮,建立一個在核打擊下逃生的軍事研究網(wǎng)絡(luò)。這個網(wǎng)絡(luò)必須是分散的,這樣才能保證在任何一個地點(diǎn)被攻擊后,軍方都可以組織有效力量進(jìn)行反擊。Python的發(fā)展歷史1994年,Python1.0發(fā)布了。1.0新增了函數(shù)式工具。關(guān)于函數(shù)式編程將在第6章介紹。Python2.0集成了列表推導(dǎo)式(Listcomprehension),具體情況將在第2章介紹。Python3.0也稱為Python3000或Python3K。相對于Python的早期版本,這是一個較大的升級。為了不帶入過多的累贅,Python3.0在設(shè)計的時候沒有考慮向下兼容。Python3.0的主要設(shè)計思想就是通過移除傳統(tǒng)的做事方式從而減少特性的重復(fù)。很多針對早期Python版本設(shè)計的程序都無法在Python3.0上正常運(yùn)行。為了照顧現(xiàn)有程序,Python2.6作為一個過渡版本,基本使用了Python2.x的語法和庫,同時考慮了向Python3.0的遷移,允許使用部分Python3.0的語法與函數(shù)。基于早期Python版本而能正常運(yùn)行于Python2.6并無警告的程序可以通過一個2to3的轉(zhuǎn)換工具無縫遷移到Python3.0。本書內(nèi)容基于Python3.0。2015年2月的TIOBE排行榜1.1.2Python的特性(1)簡單易學(xué)(2)Python是開源的、免費(fèi)的(3)Python是高級語言(4)高可移植性(5)Python是解釋型語言(6)Python全面支持面向?qū)ο蟮某绦蛟O(shè)計思想(7)高可擴(kuò)展性(8)支持嵌入式編程(9)功能

強(qiáng)大的開發(fā)庫1.2開始Python編程1.2.1下載和安裝Python1.2.2執(zhí)行Python腳本文件1.2.3Python語言的基本語法1.2.4下載和安裝Pywin321.2.1下載和安裝Python/downloads/下載、安裝單擊DownloadPython3.4.2按鈕,下載得到python-3.4.2.msi。雙擊python-3.4.2.msi,即可按照向?qū)О惭bPython3.4.2。Python3.4.2的默認(rèn)安裝目錄為C:\Python34。安裝完成后,將C:\Python34添加到環(huán)境變量Path中。打開python命令窗口在Windows7中安裝后,在開始菜單的所有程序中會出現(xiàn)一個Python3.4分組。單擊其下面的Python3.4(commandline-32bit)菜單項(xiàng),就可以打開python命令窗口,如圖1-5所示。也可以打開Windows命令窗口,然后運(yùn)行python命令,來打開python命令窗口。打印“我是Python”的結(jié)果1.2.2執(zhí)行Python腳本文件【例1-1】創(chuàng)建一個文件MyfirstPython.py,使用記事本編輯它的內(nèi)容如下:#MyfirstPythonprogramprint('IamPython')保存后,打開命令窗口。切換到MyfirstPython.py所在的目錄,然后執(zhí)行下面的命令:pythonMyfirstPython.py運(yùn)行結(jié)果如下:IamPython1.2.3Python語言的基本語法1.Python語句2.縮進(jìn)1.Python語句Python程序由Python語句組成,通常一行編寫一個語句。例如:print('Hello,')print('IamPython')Python語句可以沒有結(jié)束符,不像C或C#那樣在語句后面必須有分號(;)表示結(jié)束。當(dāng)然,Python程序中也可以根據(jù)習(xí)慣在語句后面使用分號(;)。也可以把多個語句寫在一行,此時就要在語句后面加上分號(;)表示結(jié)束?!纠?-2】把多個語句寫在一行的例子。print('Hello,');print('IamPython');2.縮進(jìn)縮進(jìn)指在代碼行前面添加空格或Tab,這樣做可以使程序更有層次、更有結(jié)構(gòu)感,從而使程序更易讀。在Python程序中,縮進(jìn)不是任意的。平級的語句行(代碼塊)的縮進(jìn)必須相同?!纠?-3】語句縮進(jìn)的例子print('Hello,');print('IamPython');運(yùn)行這段程序的結(jié)果如下:File"例1-3.py",line2print('IamPython');^ndentationError:unexpectedindent1.2.4下載和安裝Pywin32訪問下面的網(wǎng)址可以下載Pywin32安裝包。/projects/pywin32/安裝Pywin32運(yùn)行pywin32-219.win32-py3.4.exe,就可以安裝Pywin32。首先打開歡迎窗口,。單擊“下一步”按鈕,打開選擇目錄窗口。安裝程序會從注冊表中自動獲取Python3.4的安裝目錄(例如C:\Python34),默認(rèn)的Pywin32安裝目錄是C:\Python34\Lib\site-packages\讀者也可以手動設(shè)置。設(shè)置完成后,單擊“下一步”按鈕,打開準(zhǔn)備安裝窗口,再“下一步”按鈕即可開始安裝。安裝完成后,會打開完成窗口。1.3Python文本編輯器IDLE1.3.1打開IDLE1.3.2新建Python腳本1.3.3保存Python腳本1.3.4打開Python腳本1.3.6自動完成1.3.7語法提示1.3.8運(yùn)行Python程序1.3.9IDLE的菜單項(xiàng)1.3.1打開IDLEIDLE的啟動文件是idle.bat,它的位置在C:\Python34\Lib\idlelib目錄下,運(yùn)行idle.bat,即可打開文本編輯器IDLE,如圖1-13所示。也可以在開始菜單的所有程序中,選擇Python3.4分組下面的IDLE(Python3.4GUI-32bit)菜單項(xiàng),打開IDLE窗口。1.3.2新建Python腳本在菜單里依次選擇File/NewFile(或按下Ctrl+N)即可新建Python腳本,窗口標(biāo)題顯示腳本名稱,初始時為Untitled,也就是還沒有保存Python腳本。1.3.3保存Python腳本在菜單里依次選擇File/SaveFile(或按下Ctrl+S)即可保存Python腳本。如果是第一次保存,則會彈出保存文件對話框,要求用戶輸入保存的文件名。1.3.4打開Python腳本在菜單里依次選擇File/OpenFile(或按下Ctrl+O)會彈出打開文件對話框,要求用戶選擇要打開的.py文件名。也可以右擊.py文件,在快捷菜單中選擇EditwithIDLE,即可直接打開IDLE窗口編輯該腳本。1.3.5語法高亮IDLE支持Python的語法高亮,也就是說能夠以彩色標(biāo)識出Python語言的關(guān)鍵字,告訴開發(fā)人員這個詞的特殊作用。例如,在IDLE查看例1-1,注釋顯示為紅色,print顯示為紫色,字符串顯示為綠色。1.3.6自動完成自動完成指用戶在輸入單詞的開頭部分后IDLE可以根據(jù)語法或上下文自動完成后面的部分。依次選擇Edit/Expandword菜單項(xiàng),或者按下Alt+/組合鍵,即可實(shí)現(xiàn)自動完成。例如,輸入pr后按下Alt+/組合鍵即可自動完成print。也可以輸入Python保留字(常量名或函數(shù)名等)的開頭在菜單里依次選擇Edit/Showcompletetions(或按下Ctrl+空格),彈出提示框。不過Ctrl+空格與切換輸入法的功能鍵沖突。例如,輸入p然后選擇Edit/Showcompletetions。1.3.7語法提示IDLE還可以顯示語法提示幫助程序員完成收入,例如輸入“print(”,IDLE會彈出一個語法提示框,顯示print()函數(shù)的語法1.3.8運(yùn)行Python程序在菜單里依次選擇Run/RunModule(或按下F5)可以在IDLE中運(yùn)行當(dāng)前的Python程序。語法錯誤如果程序中有語法錯誤,運(yùn)行時會彈出一個invalidsyntax。然后一個淺紅色方塊定位在錯誤處。例如,運(yùn)行下面的程序:print(,'Hello,');在print()函數(shù)中多了一個逗號。1.3.9IDLE的菜單項(xiàng)第2章Python語言基礎(chǔ)課程描述本章將介紹Python語言的基本語法和編碼規(guī)范,并重點(diǎn)講解Python語言的數(shù)據(jù)類型、運(yùn)算符、常量、變量、表達(dá)式和常用語句等基礎(chǔ)知識,為使用Python開發(fā)應(yīng)用程序奠定基礎(chǔ)。本章知識點(diǎn)2.1常量和變量2.2運(yùn)算符和表達(dá)式2.3常用語句2.4序列數(shù)據(jù)結(jié)構(gòu)2.1常量和變量2.1.1常量2.1.2變量2.1.1常量變量是內(nèi)存中命名的存儲位置,與常量不同的是變量的值可以動態(tài)變化。Python的標(biāo)識符命名規(guī)則如下:標(biāo)識符名字的第1個字符必須是字母或下劃線(_);標(biāo)識符名字的第1個字符后面可以由字母、下劃線(_)或數(shù)字(0~9)組成;標(biāo)識符名字是區(qū)分大小寫的。也就是說Score和score是不同的。【例2-1】

在下面的代碼中,定義了一個字符串變量a、數(shù)值變量b和布爾類型變量c。a="這是一個常量";b=2;c=True【例2-2】變量值傳遞的例子。a="這是一個變量";b=a;print(b);#此時變量b的值應(yīng)等于變量a的值print("\n");a="這是另一個變量";print(b);#對變量$a的操作將不會影響到變量b運(yùn)行結(jié)果如下:這是一個變量這是一個變量變量賦值過程的示意圖id()函數(shù)可以使用id()函數(shù)輸出變量的地址,語法如下:id(變量名)【例2-3】用id()函數(shù)輸出變量地址的示例程序:str1="這是一個變量";print("變量str1的值是:"+str1);print("變量str1的地址是:%d"%(id(str1)));str2=str1;print("變量str2的值是:"+str2);print("變量str2的地址是:%d"%(id(str2)));str1="這是另一個變量";print("變量str1的值是:"+str1);print("變量str1的地址是:%d"%(id(str1)));print("變量str2的值是:"+str2);print("變量str2的地址是:%d"%(id(str2)));2.1.3類型轉(zhuǎn)換1.轉(zhuǎn)換為數(shù)字1.轉(zhuǎn)換為數(shù)字(1)使用int()函數(shù)將字符串轉(zhuǎn)換為整數(shù),語法如下:int(x[,base])參數(shù)x是待轉(zhuǎn)換的字符串,參數(shù)base為可選參數(shù),指定轉(zhuǎn)換后整數(shù)的進(jìn)制,默認(rèn)為10進(jìn)制。(2)使用long()函數(shù)將字符串轉(zhuǎn)換為長整數(shù),語法如下:long(x[,base])參數(shù)的含義與int()函數(shù)相同。(3)使用float()函數(shù)將字符串或數(shù)字轉(zhuǎn)換為浮點(diǎn)數(shù),語法如下:float(x)參數(shù)x是待轉(zhuǎn)換的字符串或數(shù)字。(4)使用eval()函數(shù)計算字符串中的有效Python表達(dá)式,并返回結(jié)果,語法如下:eval(str)參數(shù)str是待計算的Python表達(dá)式字符串。【例2-4】a="1";b=int(a)+1;print(b);【例2-5】a="1+2";print(eval(a));運(yùn)行結(jié)果為3。2.轉(zhuǎn)換為字符串(1)使用str()函數(shù)將數(shù)值轉(zhuǎn)換為字符串,語法如下:str(x)參數(shù)x是待轉(zhuǎn)換的數(shù)值。(2)使用repr()函數(shù)將對象轉(zhuǎn)換為可打印字符串,語法如下:repr(obj)參數(shù)obj是待轉(zhuǎn)換的對象。1.2.2執(zhí)行Python腳本文件(3)使用chr()函數(shù)將一個整數(shù)轉(zhuǎn)換為可對應(yīng)ASCII的字符,語法如下:chr(整數(shù))(4)使用ord()函數(shù)將一個字符轉(zhuǎn)換為對應(yīng)的ASCII,語法如下:ord(字符)

【例2-6】print(chr(65));print(ord('A'));運(yùn)行結(jié)果為。A65(5)使用hex()函數(shù)將一個整數(shù)轉(zhuǎn)換為一個十六進(jìn)制字符串,語法如下:chr(整數(shù))(6)使用oct()函數(shù)將一個整數(shù)轉(zhuǎn)換為一個八進(jìn)制字符串,語法如下:oct(字符)【例2-7】使用hex()函數(shù)和oct()函數(shù)打印8的十六進(jìn)制字符串和八進(jìn)制字符串。print(hex(8));print(oct(8));輸出的結(jié)果如下:0x80o10十六進(jìn)制字符串以0x開頭,八進(jìn)制字符串以0o開頭。2.2運(yùn)算符和表達(dá)式運(yùn)算符是程序設(shè)計語言的最基本元素,它是構(gòu)成表達(dá)式的基礎(chǔ)。本節(jié)將介紹Python語言運(yùn)算符和表達(dá)式。2.2.1運(yùn)算符Python支持算術(shù)運(yùn)算符、賦值運(yùn)算符、位運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符、字符串運(yùn)算符、成員運(yùn)算符和身份運(yùn)算符等基本運(yùn)算符。1.算術(shù)運(yùn)算符位運(yùn)算符具體描述例子+相加運(yùn)算1+2的結(jié)果是3-相減運(yùn)算100-1的結(jié)果是99*乘法運(yùn)算2*2的結(jié)果是4/除法運(yùn)算4/2的結(jié)果是2%求模運(yùn)算10%3的結(jié)果是1**冪運(yùn)算。x**y返回x的y次冪2**3的結(jié)果是8//整除運(yùn)算,即返回商的整數(shù)部分9//2的結(jié)果

4

2.賦值運(yùn)算符位運(yùn)算符具體描述例子=直接賦值x=3;將3賦值到變量x中+=加法賦值x+=3;等同于x=x+3;-=減法賦值x-=3;等同于x=x-3;*=乘法賦值x*=3;等同于x=x*3;/=除法賦值x/=3;等同于x=x/3;%=取模賦值x=3;等同于x=x%3;**=冪賦值x**=3;等同于x=x**3;//=整除賦值x//=3;等同于x=x//3;【例2-8】x=3x+=3print(x)x-=3print(x)x*=3print(x)x/=3print(x)運(yùn)行結(jié)果如下:6393.03.位運(yùn)算符位運(yùn)算符具體描述&按位與運(yùn)算,

運(yùn)算符查看兩個表達(dá)式的二進(jìn)制表示法的值,并執(zhí)行按位“與”操作。只要兩個表達(dá)式的某位都為1,則結(jié)果的該位為

1;否則,結(jié)果的該位為

0|按位或運(yùn)算,

運(yùn)算符查看兩個表達(dá)式的二進(jìn)制表示法的值,并執(zhí)行按位“或”操作。只要兩個表達(dá)式的某位有一個為1,則結(jié)果的該位為

1;否則,結(jié)果的該位為

0^按位異或運(yùn)算。異或的運(yùn)算法則為:0異或0=0,1異或0=1,0異或1=1,1異或1=0~按位非運(yùn)算。0取非運(yùn)算的結(jié)果為1;1取非運(yùn)算的結(jié)果為0<<

位左移運(yùn)算,即所有位向左移>>

位右移運(yùn)算,即所有位向右移4.比較運(yùn)算符比較運(yùn)算符具體描述==等于運(yùn)算符(兩個=)。例如a==b,如果a等于b,則返回True;否則返回False!=不等運(yùn)算符。例如a!=b,如果a不等于b,則返回True;否則返回False<>

不等運(yùn)算符,與!=相同<

小于運(yùn)算符>

大于運(yùn)算符<=小于等于運(yùn)算符>=大于等于運(yùn)算符5.邏輯運(yùn)算符邏輯運(yùn)算符具體描述and邏輯與運(yùn)算符。例如aandb,當(dāng)a和b都為True時等于True;否則等于Falseor邏輯或運(yùn)算符。例如aorb,當(dāng)a和b至少有一個為True時等于True;否則等于Falsenot邏輯非運(yùn)算符。例如nota,當(dāng)a等于True時,表達(dá)式等于False;否則等于True【例2-9】x=Truey=Falseprint("xandy=",xandy)print("xory=",xory)print("notx=",notx)print("noty=",noty)運(yùn)行結(jié)果如下:xandy=Falsexory=Truenotx=Falsenoty=True6.字符串運(yùn)算符邏輯運(yùn)算符具體描述+字符串連接*重復(fù)輸出字符串[]獲取字符串中指定索引位置的字符,索引從0開始[start,end]截取字符串中的一部分,從索引位置start開始到

end結(jié)束in成員運(yùn)算符,如果字符串中包含給定的字符則返回

Truenotin成員運(yùn)算符,如果字符串中包含給定的字符返回

Truer或者R指定原始字符串。原始字符串是指所有的字符串都是直接按照字面的意思來使用,沒有轉(zhuǎn)義字符、特殊字符或不能打印的字符。原始字符串字符串的第一個引號前加上字母"r"或"R"【例2-10】b="hello";a=b+"world!";print(a);print(a*2);print(r"hello\nworld!");運(yùn)行結(jié)果如下:helloworld!helloworld!helloworld!hello\nworld!7.運(yùn)算符優(yōu)先級運(yùn)算符具體描述**指數(shù)運(yùn)算的優(yōu)先級最高~+-邏輯非運(yùn)算符和正數(shù)/負(fù)數(shù)運(yùn)算符。注意,這里的+和-不是加減運(yùn)算符*/%//乘、除、取模和取整除+-加和減>><<位右移運(yùn)算和位左移運(yùn)算&按位與運(yùn)算^|按位異或運(yùn)算和按位或運(yùn)算>==!=大于、等于和不等于%=/=//=-=+=*=**=賦值運(yùn)算符isisnot身份運(yùn)算符innotin成員運(yùn)算符notorand邏輯運(yùn)算符2.2.2表達(dá)式a=b+c;a=b-c;a=b*c;a=b/c;a=b%c;a+=1;b=a**2;2.3常用語句2.3.1賦值語句2.3.2條件分支語句3.3.3循環(huán)語句2.3.4try-except語句2.3.1賦值語句賦值語句是Python語言中最簡單、最常用的語句。通過賦值語句可以定義變量并為其賦初始值。在2.2.1小節(jié)介紹賦值運(yùn)算符時,已經(jīng)涉及到了賦值語句,例如:a=2;b=a+5;【例2-11】a=10;a+=1;print(a);a*=10;print(a);a**=2;print(a);運(yùn)行結(jié)果如下:11110121002.3.2條件分支語句1.if語句1.if語句if條件表達(dá)式:

語句塊【例2-12】if語句的例子ifa>10:print("變量a大于10");如果語句塊中包含多條語句,則這些語句必須擁有相同的縮進(jìn)。例如:ifa>10:print("變量a大于10");a=10;【例2-13】嵌套if語句的例子ifa>10:

print("變量a大于10"); ifa>100: print("變量\$a大于100");}2.else語句if條件表達(dá)式:

語句塊1else:

語句塊23.elif語句if條件表達(dá)式1

語句塊1elif條件表達(dá)式2

語句塊2elif條件表達(dá)式3

語句塊3……else

語句塊n【例2-15】importdatetimestr="今天是";d=datetime.datetime.now()print(d.weekday())ifd.weekday()==0:str+="星期一";elifd.weekday()==1:str+="星期二";elifd.weekday()==2:str+="星期三";elifd.weekday()==3:str+="星期四";elifd.weekday()==4:str+="星期五";elifd.weekday()==5:str+="星期六";else:str+="星期日";print(str)weekday()方法的返回值返回值具體描述0星期一1星期二2星期三3星期四4星期五5星期六6星期日3.3.3循環(huán)語句1.while語句1.while語句while條件表達(dá)式:

循環(huán)語句體3.3.3循環(huán)語句1.while語句2.for語句3.continue語句4.break語句1.while語句while條件表達(dá)式:

循環(huán)語句體【例2-16】i=1;sum=0;whilei<11:sum+=i;i+=1;print(sum)2.for語句foriinrange(start,end):

循環(huán)體【例2-17】i=1;sum=0;foriinrange(1,11):print(i)sum+=iprint(sum)3.continue語句【例2-18】如果只計算1~100之間偶數(shù)之和,可以使用下面的代碼:i=1;sum=0;foriinrange(1,101):ifi%2==1:continuesum+=iprint(sum)4.break語句【例2-19】將【例2-16】修改為使用break語句跳出循環(huán)體。i=1;sum=0;whileTrue:ifi==11:break;sum+=i;i+=1;print(sum)2.3.4try-except語句try:<try語句塊>except[<異常處理類>,<異常處理類>,….]as<異常處理對象>:<異常處理代碼>finally:<最后執(zhí)行的代碼>【例2-20】i=10;print(30/(i-10));程序中存在一個30/0的錯誤,運(yùn)行該程序會出現(xiàn)下面的報錯信息。Traceback(mostrecentcalllast):File"D:\MyBooks\2014\python\源代碼\02\例2-20.py",line2,in<module>print(30/(i-10));【例3.21】print(30/(i-10))exceptExceptionase:print(e);finally:print("執(zhí)行完成");2.4序列數(shù)據(jù)結(jié)構(gòu)2.4.1列表2.4.2元組(tuple)2.4.1列表列表(List)是一組有序存儲的數(shù)據(jù)。例如,飯店點(diǎn)餐的菜單就是一種列表。列表具有如下特性:和變量一樣,每個列表都有一個唯一標(biāo)識它的名稱。一個列表的元素應(yīng)具有相同的數(shù)據(jù)類型。每個列表元素都有索引和值兩個屬性,索引是一個從0開始的整數(shù),用于標(biāo)識元素在列表中的位置;值當(dāng)然就是元素對應(yīng)的值。1.定義列表下面就是一個列表的定義。menulist=['紅燒肉','熘肝尖','西紅柿炒雞蛋','油燜大蝦']2.打印列表print(列表名)【例2-22】打印列表的內(nèi)容。menulist=['紅燒肉','熘肝尖','西紅柿炒雞蛋','油燜大蝦']print(menulist)運(yùn)行結(jié)果如下:['紅燒肉','熘肝尖','西紅柿炒雞蛋','油燜大蝦']3.獲取列表長度Len(數(shù)組名)4.訪問列表元素列表名[index]【例2-23】訪問列表元素的例子menulist=['紅燒肉','熘肝尖','西紅柿炒雞蛋','油燜大蝦']print(menulist[0])print(menulist[3])程序打印列表中索引為0和3的元素,運(yùn)行結(jié)果如下:紅燒肉油燜大蝦5.添加列表元素列表.append(新值)【例2-24】通過append()函數(shù)添加列表元素的例子。menulist=['紅燒肉','熘肝尖','西紅柿炒雞蛋','油燜大蝦']menulist.append('北京烤鴨')print(menulist)程序調(diào)用append()函數(shù)在列表menulist的尾部添加元素'北京烤鴨',運(yùn)行結(jié)果如下:['紅燒肉','熘肝尖','西紅柿炒雞蛋','油燜大蝦','北京烤鴨']insert()函數(shù)列表.insert(插入位置,新值)【例2-25】通過insert()函數(shù)添加列表元素的例子。menulist=['紅燒肉','熘肝尖','西紅柿炒雞蛋','油燜大蝦']menulist.insert(4,'北京烤鴨')print(menulist),運(yùn)行結(jié)果如下:['紅燒肉','北京烤鴨','熘肝尖','西紅柿炒雞蛋','油燜大蝦']extend()函數(shù)列表1.extend(列表2)【例2-26】通過extend()函數(shù)添加列表元素的例子。menulist1=['紅燒肉','熘肝尖']menulist2=['西紅柿炒雞蛋','油燜大蝦']menulist1.extend(menulist2)print(menulist1)運(yùn)行結(jié)果如下:['紅燒肉','北京烤鴨','熘肝尖','西紅柿炒雞蛋','油燜大蝦']6.合并2個列表可以使用+將2個列表合并,得到一個新的列表,具體方法如下:列表3=列表1+列表2【例2-27】合并2個列表的例子。menulist1=['紅燒肉','熘肝尖','西紅柿炒雞蛋']menulist2=['北京烤鴨','西紅柿炒雞蛋','油燜大蝦']menulist3=menulist1+menulist2print(menulist3)運(yùn)行結(jié)果如下:['紅燒肉','熘肝尖','西紅柿炒雞蛋','北京烤鴨','西紅柿炒雞蛋','油燜大蝦']7.刪除列表元素del列表名[索引]【例2-28】使用del語句刪除列表元素的例子。menulist=['紅燒肉','熘肝尖','西紅柿炒雞蛋']delmenulist[0]print(menulist)運(yùn)行結(jié)果如下:

['熘肝尖','西紅柿炒雞蛋']7.刪除列表元素del列表名[索引]【例2-28】使用del語句刪除列表元素的例子。menulist=['紅燒肉','熘肝尖','西紅柿炒雞蛋']delmenulist[0]print(menulist)運(yùn)行結(jié)果如下:

['熘肝尖','西紅柿炒雞蛋']8.定位列表元素可以使用index()函數(shù)獲取列表中某個元素的索引。其基本語法如下:列表.index(元素值)函數(shù)返回元素值在列表中某個元素的索引,如果不存在,則會拋異常。【例2-29】使用index()函數(shù)的例子。menulist=['紅燒肉','熘肝尖','西紅柿炒雞蛋']print(menulist.index('紅燒肉'))print(menulist.index('西紅柿炒雞蛋'))運(yùn)行結(jié)果如下:029.遍歷列表元素遍歷列表就是一個一個地訪問列表元素,這是使用列表時的常用操作??梢允褂胒or語句和range()函數(shù)遍歷列表索引,然后通過索引依次訪問每個列表元素,方法如下:foriinrange(len(list)):

訪問list[i]【例2-30】for語句和range()函數(shù)遍歷列表。list=['王二','張三','李四','王五'];foriinrange(len(list)):print(list[i]);程序的運(yùn)行結(jié)果如下:王二張三李四王五使用for語句和enumerate()函數(shù)同時遍歷列表的元素索引和元素值for索引,元素值inenumerate(list):

訪問索引和元素值【例2-31】for語句和enumerate()函數(shù)遍歷列表。

list=['王二','張三','李四','王五'];forindex,valueinenumerate(list):print("第%d個元素值是【%s】"%(index,value));程序的運(yùn)行結(jié)果如下:第0個元素值是【王二】第1個元素值是【張三】第2個元素值是【李四】第3個元素值是【王五】10.列表排序列表排序操作值按列表元素值的升序、降序或反序重新排列列表元素的位置。可以使用sort()函數(shù)對列表進(jìn)行升序排列,其語法如下:列表.sort()【例2-32】list=['apple','banana','pear','grape'];list.sort()print(list)程序的運(yùn)行結(jié)果如下:['apple','banana','grape','pear']reverse()函數(shù)可以使用reverse()函數(shù)對列表進(jìn)行反序排列,其語法如下:列表.reverse()調(diào)用reverse()函數(shù)后,列表元素被反序排列。【例2-33】使用reverse()函數(shù)對列表進(jìn)行反序排列。list=['apple','Banana','pear','grape'];list.reverse()print(list)程序的運(yùn)行結(jié)果如下:['grape','pear','Banana','apple']【例2-34】list=['apple','banana','pear','grape'];list.sort()list.reverse()print(list)程序的運(yùn)行結(jié)果如下:['pear','grape','banana','apple']11.產(chǎn)生一個數(shù)值遞增列表使用range()函數(shù)可以產(chǎn)生一個數(shù)值遞增列表,它的基本語法結(jié)構(gòu)如下:range(start,end)參數(shù)說明如下。

start:一個整數(shù),指定產(chǎn)生的列表的起始元素值。start為可選參數(shù),默認(rèn)值為0。

end:一個整數(shù),指定產(chǎn)生的列表的結(jié)束元素值。range()函數(shù)返回一個列表,該列表由從start開始至end結(jié)束的整數(shù)組成?!纠?-35】list1=range(10)list2=range(11,20)#打印list1forindex,valueinenumerate(list1):print("list1的第%d個元素值是【%s】"%(index,value));#打印list2forindex,valueinenumerate(list2):print("list2的第%d個元素值是【%s】"%(index,value));12.定義多維列表【例2-36】一個定義二維數(shù)列表的例子。list2=[["CPU","內(nèi)存"],["硬盤","聲卡"]];【例2-36】中列表list2的內(nèi)容【例2-37】打印二維列表list2=[["CPU","內(nèi)存"],["硬盤","聲卡"]];foriinrange(len(list2)):print(list2[i]);運(yùn)行結(jié)果如下:['CPU','內(nèi)存']['硬盤','聲卡']【例2-38】list2=[["CPU","內(nèi)存"],["硬盤","聲卡"]];foriinrange(len(list2)):list1=list2[i];forjinrange(len(list1)):print(list1[j])運(yùn)行結(jié)果如下:CPU內(nèi)存硬盤聲卡使用下面的方法獲取二維列表元素的值列表名[索引1][索引2]【例2-39】list2=[["CPU","內(nèi)存"],["硬盤","聲卡"]];foriinrange(len(list2)):forjinrange(len(list2[i])):print(list2[i][j])運(yùn)行結(jié)果CPU內(nèi)存硬盤聲卡2.4.2元組(tuple)元組與列表非常相似,它具有如下特性:一經(jīng)定義,元組的內(nèi)容不能改變。元組元素可以存儲不同類型的數(shù)據(jù),可以是字符串、數(shù)字,甚至是元組。元組元素由圓括號括起來,例如:t=(1,2,3,4)1.訪問元組元素與列表一樣,可以使用索引訪問元組元素,方法如下:元組[索引]【例2-40】訪問元組元素的例子。t=(1,2,3,4)print(t[0])print(t[3])程序打印元組中索引為0和3的元素,運(yùn)行結(jié)果如下:142.獲取元組長度元組長度指元組中元素的數(shù)量??梢酝ㄟ^len()函數(shù)獲取元組的長度,方法如下:Len(元組名)【例2-41】打印元組的長度。t=(1,2,3,4)print(len(t))運(yùn)行結(jié)果為4。3.遍歷元組元素foriinrange(len(tuple)):

訪問tuple[i]【例2-42】for語句和range()函數(shù)遍歷列表。t=('王二','張三','李四','王五');foriinrange(len(t)):print(t[i]);程序的運(yùn)行結(jié)果如下:王二張三李四王五使用for語句和enumerate()函數(shù)同時遍歷列表的元素索引和元素值for索引,元素值inenumerate(list):

訪問索引和元素值?!纠?-43】for語句和enumerate()函數(shù)遍歷列表list=['王二','張三','李四','王五'];forindex,valueinenumerate(list):print("第%d個元素值是【%s】"%(index,value));程序的運(yùn)行結(jié)果如下:第0個元素值是【王二】第1個元素值是【張三】第2個元素值是【李四】第3個元素值是【王五】4.排序因?yàn)樵M的內(nèi)容不能改變,所以元組沒有sort()函數(shù)。可以將元組轉(zhuǎn)換為列表,然后再對列表排序,最后將排序后的列表賦值給元組??梢允褂孟旅娴姆椒▽⒃M轉(zhuǎn)換為列表。列表對象=list(元組對象)將列表轉(zhuǎn)換為元組的方法如下:元組對象=tuple(列表對象)【例2-44】對元組進(jìn)行排列。t=('apple','banana','pear','grape');l=list(t);l.sort();t=tuple(l);print(t)程序的運(yùn)行結(jié)果如下:('apple','banana','grape','pear')使用reverse()函數(shù)對元組進(jìn)行反序排列元組.reverse()調(diào)用reverse()函數(shù)后,元組元素被反序排列。【例2-45】使用reverse()函數(shù)對元組進(jìn)行反序排列。t=('apple','banana','pear','grape');l=list(t);l.reverse()t=tuple(l);print(t)2.4.3字典1.定義字典字典元素使用{}括起來,例如,下面的語句可以定義一個空字典。d1={};也可以在定義字典時指定里面的元素,每個元素由鍵和值組成,鍵和值之間由冒號(:)分割,元素間由逗號(,)分割。例如:d2={'name':'小明','sex':'男','age':'18','score':'80'}2.打印字典可以直接使用print()函數(shù)打印字典,方法如下:print(字典名)【例2-46】打印字典的內(nèi)容。d={'name':'小明','sex':'男','age':'18','score':'80'}print(d)運(yùn)行結(jié)果如下:{'score':'80','name':'小明','age':'18','sex':'男'}3.獲取字典長度Len(字典名)【例2-47】打印字典的長度。d={'name':'小明','sex':'男','age':'18','score':'80'}print(len(d))運(yùn)行結(jié)果為4。4.訪問字典元素字典由字典元素組成。對字典的管理就是對字典元素的訪問和操作。可以通過下面的方法獲取字典元素的值:字典名[key]key是元素的鍵。【例2-48】d={'name':'小明','sex':'男','age':'18','score':'80'}print(d['name'])print(d['sex'])print(d['age'])print(d['score'])程序打印列表中索引為0和3的元素,運(yùn)行結(jié)果如下:小明男18805.添加字典元素可以通過賦值在字典中添加元素,具體方法如下:字典[鍵]=值如果字典中不存在指定鍵,則添加;否則修改鍵值?!纠?-49】添加字典元素的例子。d={'name':'小明','sex':'男','age':'18'}d['score']='80'print(d)運(yùn)行結(jié)果如下:{'sex':'男','age':'18','name':'小明','score':'80'}6.合并2個字典可以使用update()函數(shù)將2個字典合并,具體方法如下:字典1.update(字典2)【例2-50】合并2個字典的例子。d1={'name':'小明','sex':'男'}d2={'age':'18','score':'80'}d1.update(d2)print(d1)運(yùn)行結(jié)果如下:{'age':'18','name':'小明','score':'80','sex':'男'}7.刪除字典元素使用pop()方法可以刪除指定的字典元素,并返回刪除的元素值。具體方法如下:字典名.pop(鍵)【例2-51】使用pop()方法刪除字典元素的例子。d={'age':'18','name':'小明','score':'80','sex':'男'}d.pop('score')print(d)運(yùn)行結(jié)果如下:{'name':'小明','sex':'男','age':'18'}8.判斷字典是否存在元素可以使用in關(guān)鍵字判斷字典中是否存在指定鍵的元素。其基本語法如下:鍵in字典如果字典中存在指定鍵的元素,則表達(dá)式返回True;否則返回False。【例2-52】使用in關(guān)鍵字的例子。d={'age':'18','name':'小明','score':'80','sex':'男'}if'name1'ind:print(d['name1'])else:print('不包含鍵位name1的元素')運(yùn)行結(jié)果如下:不包含鍵位name1的元素9.遍歷字典元素可以使用for..in語句遍歷字典的鍵和值,方法如下:forkeyin字典.keys():#遍歷字典的鍵訪問字典[key]forkeyin字典.values():#遍歷字典的值訪問字典[key]【例2-53】d={'age':'18','name':'小明','score':'80','sex':'男'}forkeyind.keys():#遍歷字典的鍵

print('鍵'+key+'的值:'+d[key]);程序的運(yùn)行結(jié)果如下:鍵score的值:80鍵name的值:小明鍵sex的值:男鍵age的值:18【例2-54】d={'age':'18','name':'小明','score':'80','sex':'男'}forvalueind.values():#遍歷字典的值

print(value);程序的運(yùn)行結(jié)果如下:小明18男8010.清空字典使用clear()方法可以清空指定的字典所有元素。具體方法如下:字典名.clear()【例2-55】使用clear()方法清空字典元素的例子。d={'age':'18','name':'小明','score':'80','sex':'男'}d.clear()print(d)運(yùn)行結(jié)果如下:{}11.字典的嵌套字典里面還可以嵌套字典,例如{'name':{'first':'Johney','last':'Lee'},'age':40}可以通過下面的方式訪問嵌套字典。字典[鍵][鍵]【例2-56】d={'name':{'first':'Johney','last':'Lee'},'age':40}print(d['name']['first'])運(yùn)行結(jié)果如下:Johney2.4.4集合集合由一組無序排列的元素組成,可以分為可變集合(set)和不可變集合(frozenset)??勺兗蟿?chuàng)建后可以添加元素,修改元素和刪除元素。而不可變集合創(chuàng)建后則不能改變。1.創(chuàng)建集合創(chuàng)建可變集合的例子。s=set('python')【例2-57】創(chuàng)建可變集合的例子。s=set('python')print(type(s))print(s)運(yùn)行結(jié)果如下:<class'set'>{'t','o','y','p','n','h'}使用frozenset()方法創(chuàng)建不可變集合s=frozenset('python')【例2-58】創(chuàng)建不可變集合的例子。fs=frozenset('python')print(type(fs))print(fs)運(yùn)行結(jié)果如下:<class'frozenset'>frozenset({'n','y','h','o','p','t'})2.獲取集合長度Len(集合名)【例2-59】打印集合的長度。s=set('python')print(len(s))運(yùn)行結(jié)果為6。3.訪問集合元素【例2-60】遍歷集合元素的例子。s=set('python')s=set('python')foreins:print(e)運(yùn)行結(jié)果如下:

notyhp4.添加集合元素可以通過調(diào)用add()方法在集合中添加元素,具體方法如下:集合.add(值)

提示只能在可變集合中添加元素。不能在不可變集合中添加元素?!纠?-61】添加一個集合元素的例子s=set('python')s.add('0')print(s)運(yùn)行結(jié)果如下:{'t','y','h','p','o','0','n'}update()方法將另外一個集合的元素添加到指定集合中集合.update(值)【例2-62】添加多個集合元素的例子。s=set([1,2,3])s.update([4,5,6])print(s)運(yùn)行結(jié)果如下:{1,2,3,4,5,6}5.刪除集合元素可以使用remove()方法刪除指定的集合元素。具體方法如下:集合名.remove(值)使用clear()方法可以清空指定的集合所有元素。具體方法如下:集合名.clear()【例2-63】s=set([1,2,3])s.remove(1)print(s)s.clear()print(s)運(yùn)行結(jié)果如下:{2,3}set()6.判斷集合是否存在元素可以使用in判斷集合中是否存在指定鍵的元素。其基本語法如下:值in集合如果集合中存在指定值的元素,則表達(dá)式返回True;否則返回False。【例2-64】判斷集合是否存在元素的例子。s=set([1,2,3])if2ins:print('存在'])else:print('不存在')運(yùn)行結(jié)果如下:存在7.遍歷集合元素可以使用for..in語句遍歷集合的值,方法如下:forelementin集合:

訪問element【例2-65】使用for..in語句遍歷集合。s=set([1,2,3])foreins:#遍歷集合

print(e);程序的運(yùn)行結(jié)果如下:1238.子集和超集操作符實(shí)例具體描述==A==B如果A等于B,則返回True;否則返回False!=A!=B如果A不等于B,則返回True;否則返回False<

A<B如果A是B的真子集,則返回True;否則返回False<=A<=B如果A是B的子集,則返回True;否則返回False>

A>B如果A是B的真超集,則返回True;否則返回False>=A>=B如果A是B的超集,則返回True;否則返回False【例2-66】s1=set([1,2])s2=set([1,2,3])ifs1!=s2:ifs1<s2:print('s1是s2的真子集')ifs2>s1:print('s2是s1的超集')運(yùn)行結(jié)果如下:s1是s2的真子集s2是s1的超集9.集合的并集可以使用|操作符計算兩個集合的并集。例如:s=s1|s2【例2-67】使用|操作符計算兩個集合的并集。s1=set([1,2])s2=set([3,4])s=s1|s2print(s)運(yùn)行結(jié)果如下:{1,2,3,4}使用union()方法計算兩個集合的并集s=s1.union(s2)【例2-68】使用union()方法計算兩個集合的并集。s1=set([1,2])s2=set([3,4])s=s1.union(s2)print(s)運(yùn)行結(jié)果如下:{1,2,3,4}10.集合的交集集合的交集由所有既屬于集合A又屬于集合B的元素組成??梢允褂?操作符計算兩個集合的交集。例如:s=s1&s2【例2-69】s1=set([1,2,3])s2=set([3,4])s=s1&s2print(s)運(yùn)行結(jié)果如下:{3}使用intersection()方法計算兩個集合的并集s=s1.intersection(s2)【例2-70】使用intersection()方法計算兩個集合的并集。s1=set([1,2,3])s2=set([3,4])s=ersection(s2)print(s)11.集合的差集集合的差集由所有屬于集合A但不屬于集合B的元素組成??梢允褂?操作符計算兩個集合的差集。例如:s=s1-s2【例2-71】使用-操作符計算兩個集合的差集。s1=set([1,2,3])s2=set([3,4])s=s1-s2print(s)運(yùn)行結(jié)果如下:{1,2}使用difference()方法計算兩個集合的差集s=s1.difference(s2)【例2-72】使用difference()方法計算兩個集合的并集。s1=set([1,2,3])s2=set([3,4])s=s1.difference(s2)print(s)第3章Python函數(shù)課程描述函數(shù)(function)由若干條語句組成,用于實(shí)現(xiàn)特定的功能。函數(shù)包含函數(shù)名、若干參數(shù)和返回值。一旦定義了函數(shù),就可以在程序中需要實(shí)現(xiàn)該功能的位置調(diào)用該函數(shù),給程序員共享代碼帶來了很大方便。在Python語言中,除了提供豐富的系統(tǒng)函數(shù)(本書前面已經(jīng)介紹了一下常用的系統(tǒng)函數(shù))外,還允許用戶創(chuàng)建和使用自定義函數(shù)。本章知識點(diǎn)3.1聲明和調(diào)用函數(shù)3.2參數(shù)和返回值3.3Python內(nèi)置函數(shù)3.1聲明和調(diào)用函數(shù)3.1.1自定義函數(shù)3.1.2調(diào)用函數(shù)3.1.3變量的作用域3.1.4在調(diào)試窗口中查看變量的值3.1.1自定義函數(shù)可以使用def關(guān)鍵字來創(chuàng)建Python自定義函數(shù),其基本語法結(jié)構(gòu)如下:def函數(shù)名(參數(shù)列表):

函數(shù)體參數(shù)列表可以為空,即沒有參數(shù);也可以包含多個參數(shù),參數(shù)之間使用逗號(,)分隔。函數(shù)體可以是一條語句,也可以由一組語句組成。【例3-1】

創(chuàng)建一個非常簡單的函數(shù)PrintWelcome,它的功能是打印字符串“歡迎使用Python”,代碼如下:defPrintWelcome(): print("歡迎使用Python");【例3-2】定義函數(shù)PrintString(),通過參數(shù)決定要打印的內(nèi)容。defPrintString(str): print(str);變量str是函數(shù)的參數(shù)。在函數(shù)體中,參數(shù)可以像其他變量一樣被使用??梢栽诤瘮?shù)中定義多個參數(shù),參數(shù)之間使用逗號分隔。【例3-3】定義一個函數(shù)sum(),用于計算并打印兩個參數(shù)之和。函數(shù)sum()包含兩個參數(shù)。參數(shù)num1和num2,代碼如下:defsum(num1,num2): print(num1+num2);3.1.2調(diào)用函數(shù)可以直接使用函數(shù)名來調(diào)用函數(shù),無論是系統(tǒng)函數(shù)還是自定義函數(shù),調(diào)用函數(shù)的方法都是一致的。【例3-4】defPrintWelcome(): print("歡迎使用Python");PrintWelcome();【例3-5】defPrintString(str): print(str);PrintString("傳遞參數(shù)");【例3-6】defsum(num1,num2): print(num1+num2);sum(1,3);3.1.3變量的作用域在函數(shù)中也可以定義變量,在函數(shù)中定義的變量被稱為局部變量。局部變量只在定義它的函數(shù)內(nèi)部有效,在函數(shù)體之外,即使使用同名的變量,也會被看作是另一個變量。相應(yīng)地,在函數(shù)體之外定義的變量是全局變量。全局變量在定義后的代碼中都有效,包括它后面定義的函數(shù)體內(nèi)。如果局部變量和全局變量同名,則在定義局部變量的函數(shù)中,只有局部變量是有效的?!纠?-7】a=100; #全局變量defsetNumber(): a=10; #局部變量

print(a); #打印局部變量asetNumber();print(a); #打印全局變量$a3.1.4在調(diào)試窗口中查看變量的值1.設(shè)置斷點(diǎn)2.單步調(diào)試1.設(shè)置斷點(diǎn)斷點(diǎn)是調(diào)試器的功能之一,可以讓程序中斷在需要的地方,從而方便對其進(jìn)行分析。用鼠標(biāo)右擊要設(shè)置斷點(diǎn)的程序行,在快捷菜單里選擇SetBreakpont菜單項(xiàng),會在當(dāng)前行設(shè)置斷點(diǎn),該行代碼會顯示黃色背景。2.單步調(diào)試設(shè)置斷點(diǎn)后,運(yùn)行程序,可以停在斷點(diǎn)處,然后一條語句一條語句的單步運(yùn)行。單步調(diào)試可以看到程序的運(yùn)行過程,同時可以查看在某一時刻某個變量的值。下面介紹在IDLE中單步調(diào)試程序的方法。例如在IDLE中打開例3-7.py,然后在菜單中選擇Run/PythonShell,打開PythonShell窗口。在PythonShell的菜單中,選擇Debug/Debugger,PythonShell窗口中會出現(xiàn)下面文字,[DEBUGON]同時打開DebugControl窗口程序停留在第1行程序停留在斷點(diǎn)處3.2參數(shù)和返回值3.2.1在函數(shù)中傳遞參數(shù)3.2.2函數(shù)的返回值3.2.1在函數(shù)中傳遞參數(shù)1.普通參數(shù)Python實(shí)行按值傳遞參數(shù)。值傳遞指調(diào)用函數(shù)時將常量或變量的值(通常稱其為實(shí)參)傳遞給函數(shù)的參數(shù)(通常稱其為形參)。值傳遞的特點(diǎn)是實(shí)參與形參分別存儲在各自的內(nèi)存空間中,是兩個不相關(guān)的獨(dú)立變量。因此,在函數(shù)內(nèi)部改變形參的值時,實(shí)參的值一般是不會改變的。6.1.2小節(jié)介紹的實(shí)例都屬于按值傳遞參數(shù)的情況?!纠?-8】在函數(shù)中按值傳遞參數(shù)的例子deffunc(num): num+=1;a=10func(a);print(a);【例3-9】分別打印形參和實(shí)參的地址deffunc(num):print("形參num的地址",id(num))a=10func(a);print("實(shí)參a的地址",id(a));運(yùn)行結(jié)果如下:形參num的地址1557053600實(shí)參a的地列表和字典參數(shù)【例3-10】使用列表作為函數(shù)參數(shù)的例子。defsum(list): total=0; forxinrange(len(list)): print(list[x],"+"); total+=list[x]; print("=",total);list=[15,25,35,65]sum(list);運(yùn)行結(jié)果15+25+35+65+=140【例3-11】使用字典作為函數(shù)參數(shù)的例子defprint_dict(dict): for(k,v)indict.items(): print"dict[%s]="%k,vdict={"a":"apple","b":"banana","g":"grape","o":"orange"}print_dict(dict);運(yùn)行結(jié)果dict[o]=orangedict[g]=grapedict[a]=appledict[b]=banana【例3-12】在函數(shù)中修改列表參數(shù)的例子defswap(list):temp=list[0]list[0]=list[1]list[1]=templist=[1,2]print(list)swap(list)print(list)運(yùn)行結(jié)果[1,2][2,1]【例3-13】在函數(shù)中修改字典參數(shù)的例子defchangeA(dict):dict['a']=1

d={'a':10,'b':20,'c':30}changeA(d)print(d)運(yùn)行結(jié)果{'c':30,'a':1,'b':20}3.參數(shù)的默認(rèn)值在Python中,可以為函數(shù)的參數(shù)設(shè)置默認(rèn)值??梢栽诙x函數(shù)時,直接在參數(shù)后面使用“=”為其設(shè)置默認(rèn)值。在調(diào)用函數(shù)時可以不指定擁有默認(rèn)值的參數(shù)的值,此時在函數(shù)體中以默認(rèn)值作為該參數(shù)【例3-14】設(shè)置參數(shù)默認(rèn)值的例子defsay(message,times=1):print(message*times)say('hello')say('Python',3)函數(shù)say()有2個參數(shù):message和times。其中times的默認(rèn)值為1。運(yùn)行結(jié)果如下:helloPythonPythonPython【例3-15】deffunc1(a=1,b,c=10): d=a+b*c;func(10,20,30)【例3-15】的運(yùn)行結(jié)果4.可變長參數(shù)Python還支持可變長度的參數(shù)列表。可變長參數(shù)可以是元祖或字典。當(dāng)參數(shù)以*開頭時,表示可變長參數(shù)將被視為一個元祖,格式如下:deffunc(*t):在func()函數(shù)中t被視為一個元祖,使用t[index]獲取每一個可變長參數(shù)??梢允褂萌我舛鄠€實(shí)參調(diào)用func()函數(shù),例如:func(1,2,3,4)【例3-16】以元祖為可變長參數(shù)的實(shí)例deffunc1(*t):print("可變長參數(shù)數(shù)量如下:")print(len(t))print("依次為:")forxinrange(len(t)):print(t[x]);func1(1,2,3,4);運(yùn)行結(jié)果如下:可變長參數(shù)數(shù)量如下:4依次為:1234【例3-17】使用可變長參數(shù)計算任意個指定數(shù)字之和defsum(*t):sum=0;forxinrange(len(t)):print(str(t[x])+"+");sum+=t[x];print("="+str(sum));sum(1,2);sum(1,2,3,4);sum(11,22,33,44,55);結(jié)果如下1+2+3+4+=1011+22+33+44+55+=1651+2+3+4+=10【例3-18】defsum(*t):sum=0;forxinrange(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論