




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Python語言編程基礎(chǔ)
全套課件授課教師:第1章Python概述課程描述Python誕生于20世紀90年代初,是一種解釋型、面向?qū)ο?、動態(tài)數(shù)據(jù)類型的高級程序設(shè)計語言,是最受歡迎的程序設(shè)計語言之一。本章介紹Python語言的基本情況。本章知識點1.1初識Python1.2開始Python編程1.3Python文本編輯器IDLE1.1初識Python1.1.1什么是Python1.1.2Python的特性1.1.1什么是PythonPython于20世紀80年代末由荷蘭人GuidovanRossum(吉多·范羅蘇姆)設(shè)計實現(xiàn)。Python的發(fā)展歷史
1991年,VanRossum公布了0.9.0版本的Python源代碼,此版本已經(jīng)實現(xiàn)了類、函數(shù)以及列表、字典和字符串等基本的數(shù)據(jù)類型。0.9.0版本還集成了模塊系統(tǒng),VanRossum將模塊描述為Python主要的編程單元。1994年,Python1.0發(fā)布。1.0新增了函數(shù)式工具。Python2.0集成了列表推導(dǎo)式(Listcomprehension)。Python的發(fā)展歷史Python3.0也稱為Python3000或Python3K。相對于Python的早期版本,這是一個較大的升級。為了不帶入過多的累贅,Python3.0在設(shè)計的時候沒有考慮向下兼容。Python3.0的主要設(shè)計思想就是通過移除傳統(tǒng)的做事方式從而減少特性的重復(fù)。很多針對早期Python版本設(shè)計的程序都無法在Python3.0上正常運行。為了照顧現(xiàn)有程序,Python2.6作為一個過渡版本,基本使用了Python2.x的語法和庫,同時考慮了向Python3.0的遷移,允許使用部分Python3.0的語法與函數(shù)?;谠缙赑ython版本而能正常運行于Python2.6并無警告的程序可以通過一個2to3的轉(zhuǎn)換工具無縫遷移到Python3.0。2018年3月的TIOBE排行榜1.1.2Python的特性(1)簡單易學(xué)(2)Python是開源的、免費的(3)Python是高級語言(4)高可移植性(5)Python是解釋型語言(6)Python全面支持面向?qū)ο蟮某绦蛟O(shè)計思想(7)高可擴展性(8)支持嵌入式編程(9)功能強大的開發(fā)庫1.2開始Python編程1.2.1下載和安裝Python1.2.2執(zhí)行Python腳本文件1.2.3Python語言的基本語法1.2.1下載和安裝Python/downloads/1.2.2執(zhí)行Python腳本文件使用Python語言編寫的Hello程序只有一行代碼:print(“HelloWorld”)第一行的“>>>”是Python語言運行環(huán)境的提示符第二行是Python語句的執(zhí)行結(jié)果1.2.2執(zhí)行Python腳本文件C語言編寫的的Hello程序:#include<stdio.h>intmain(){printf("HelloWorld\n");return0;}一般來說,同樣功能的程序,Python語言實現(xiàn)的代碼行數(shù)僅相當于C語言的1/5至1/10,簡潔程度取決于程序的復(fù)雜度和規(guī)模。1.2.3Python語言的基本語法1.Python語句2.縮進1.Python語句Python程序由Python語句組成,通常一行編寫一個語句。例如:print('Hello,')print('IamPython')Python語句可以沒有結(jié)束符,不像C或JAVA那樣在語句后面必須有分號(;)表示結(jié)束。當然,Python程序中也可以根據(jù)習慣在語句后面使用分號(;)。也可以把多個語句寫在一行,此時就要在語句后面加上分號(;)表示結(jié)束?!纠?-2】把多個語句寫在一行的例子。print('Hello,');print('IamPython');2.縮進縮進指在代碼行前面添加空格或Tab,這樣做可以使程序更有層次、更有結(jié)構(gòu)感,從而使程序更易讀??s進是Python語言中表明程序框架的唯一手段。在Python程序中,縮進不是任意的。平級的語句行(代碼塊)的縮進必須相同。在Python中,1個縮進=4個空格【例1-3】print('Hello,');print('IamPython');運行這段程序的結(jié)果如下:unexpectedindent1.3Python文本編輯器IDLE1.3.1打開IDLE1.3.2新建Python腳本1.3.3保存Python腳本1.3.4打開Python腳本1.3.5語法高亮1.3.6自動完成1.3.7語法提示1.3.8運行Python程序1.3.9IDLE的菜單項1.3.1打開IDLE可以在開始菜單的所有程序中,選擇Python3.6分組下面的IDLE(Python3.664bit)菜單項,打開IDLE窗口。1.3.2新建Python腳本在菜單里依次選擇File/NewFile(或按下Ctrl+N)即可新建Python腳本,窗口標題顯示腳本名稱,初始時為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的語法高亮,也就是說能夠以彩色標識出Python語言的關(guān)鍵字,告訴開發(fā)人員這個詞的特殊作用。例如,在IDLE查看例1-1,注釋顯示為紅色,print顯示為紫色,字符串顯示為綠色。1.3.6自動完成自動完成指用戶在輸入單詞的開頭部分后IDLE可以根據(jù)語法或上下文自動完成后面的部分。依次選擇Edit/ExpandWord菜單項,或者按下Alt+/組合鍵,即可實現(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運行Python程序在菜單里依次選擇Run/RunModule(或按下F5)可以在IDLE中運行當前的Python程序。語法錯誤如果程序中有語法錯誤,運行時會彈出一個invalidsyntax。然后一個淺紅色方塊定位在錯誤處。例如,運行下面的程序:print(,'Hello,');在print()函數(shù)中多了一個逗號。1.3.9IDLE的菜單項Python語言編程基礎(chǔ)授課教師:第2章Python語言基礎(chǔ)課程描述本章將介紹Python語言的基本語法和編碼規(guī)范,并重點講解Python語言的數(shù)據(jù)類型、運算符、常量、變量、表達式和常用語句等基礎(chǔ)知識,為使用Python開發(fā)應(yīng)用程序奠定基礎(chǔ)。本章知識點2.1常量和變量2.2運算符和表達式2.3常用語句2.4組合數(shù)據(jù)類型2.1常量和變量2.1.1常量2.1.2變量2.1.3常量與變量的數(shù)據(jù)類型轉(zhuǎn)換2.1.1常量常量是內(nèi)存中用于保存固定值的單元,在程序中常量的值不能發(fā)生改變。Python并沒有命名常量,也就是說不能像C語言那樣給常量起一個名字。Python常量包括數(shù)字、字符串、布爾值和空值等。例如,數(shù)字7和‘a(chǎn)bc’都是常量。1.數(shù)字Python包括整數(shù)、長整數(shù)、浮點數(shù)和復(fù)數(shù)4種類型的數(shù)字。(1)整數(shù)表示不包含小數(shù)點的實數(shù),在32位計算機上,取值范圍是-231到231-1,即-2147483648~2147483647。在64位計算機上,取值范圍是-263到263-1,即-9223372036854775808~9223372036854775807。例如,1、-1、1009、-209都是整數(shù)。(2)長整數(shù)顧名思義,就是取值范圍很大的整數(shù)。Python的長整數(shù)的取值范圍僅與計算機支持的虛擬內(nèi)存大小有關(guān),也就是說,Python能表示非常大的整數(shù)。在Python中,超出整數(shù)范圍的數(shù)就是長整數(shù)。(3)浮點數(shù)包含小數(shù)點的浮點型數(shù)字。(4)復(fù)數(shù)可以用a+bi表示的數(shù)字。a和b是實數(shù),i是虛數(shù)單位。虛數(shù)單位是二次方程式x2+1=0的一個解,所以虛數(shù)單位同樣可以表示為。在復(fù)數(shù)a+bi中,a稱為復(fù)數(shù)的實部,b稱為復(fù)數(shù)的虛部。一個復(fù)數(shù)可以表示為一對數(shù)字(a,b)。使用矢量圖描述復(fù)數(shù)如圖2-1所示。Re是實軸,Im是虛軸。使用矢量圖描述復(fù)數(shù)2.字符串字符串是一個由字符組成的序列。字符串常量使用單引號(')或雙引號(")括起來。例如:'我是一個字符串'"我是另一個字符串"(1)轉(zhuǎn)義符號轉(zhuǎn)義字符具體描述\n換行\(zhòng)r回車\’
‘
\""\\\\(在行尾時)續(xù)行符\a響鈴\b退格(Backspace)\000空\v縱向制表符\t橫向制表符當需要在字符串中使用特殊字符時,Python使用反斜杠(\)作為轉(zhuǎn)義字符。(2)使用三引號('''或者""")可以使用三引號指定多行字符串。例如:'''多行字符串的例子。第一行第二行可以在多行字符串里面使用'單引號'或"雙引號"'''補充:代碼注釋注釋用于為程序添加說明性的文字。Python在運行程序時,會忽略被注釋的內(nèi)容。Python注釋有單行注釋和多行注釋。單行注釋用“#”表示注釋開始,“#”之后的內(nèi)容不會被執(zhí)行。單行注釋可以單獨占一行,也可放在語句末尾。多行注釋是用三個英文的單引號“'''”或雙引號“"""”作為注釋的開始和結(jié)束符號。補充:代碼注釋(2)使用三引號('''或者""")也可以在行尾使用轉(zhuǎn)義字符(\)實現(xiàn)多行字符串。例如:'多行字符串的例子。\第一行。\第二行。'上面的例子相當于:'多行字符串的例子。第一行。第二行。'補充:代碼續(xù)行通常,Python中的一條語句占一行,沒有類似于C和Java中的分號等語句結(jié)束符號。在遇到較長的語句時,可使用語句續(xù)行符號,將一條語句寫在多行之中。Python有兩種續(xù)行方式。一種是使用“\”符號。應(yīng)注意在“\”符號之后不能有任何其他符號,包括空格和注釋。補充:代碼續(xù)行另一種特殊情況下的續(xù)行方式是在使用括號(包括圓括號()、方括號[]和大括號{}等)時,括號中的內(nèi)容可分多行書寫,括號中的空白和換行符都會被忽略。(3)Unicode字符串前面介紹的字符串都是處理ASCII碼字符的,ASCII是基于拉丁字母的一套電腦編碼系統(tǒng)。它使用一個字節(jié)存儲一個字符,主要用于顯示現(xiàn)代英語和其他西歐語言。但是ASCII碼不能表示世界上所有的語言。例如,中文、日文、韓文等都無法使用ASCII碼表示。Unicode是國際組織制定的可以容納世界上所有文字和符號的字符編碼方案,為每種語言中的每個字符設(shè)定了統(tǒng)一并且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉(zhuǎn)換、處理的要求。如果要在程序中處理中文字符串,則需要使用Unicode字符串。(3)Unicode字符串Python表示Unicode字符串的方法很簡單,只要在字符串前面加上u或U前綴即可,例如:u"我是Unicode字符串。"3.布爾值布爾值通常用來判斷條件是否成立。Python包含兩個布爾值,包含True(邏輯真)和False(邏輯假)。布爾值區(qū)分大小寫,也就是說true和TRUE不能等同于True。4.空值Python有一個特殊的空值常量None。與0和空字符串(“”)不同,None表示什么都沒有。None與任何其他的數(shù)據(jù)類型比較永遠都返回False。2.1.2變量變量是內(nèi)存中命名的存儲位置,與常量不同的是變量的值可以動態(tài)變化。標識符是指Python語言中允許作為變量名或其他對象名稱的有效符號。2.1.2變量Python的標識符命名規(guī)則如下:標識符名字的第1個字符必須是字母或下劃線(_)。標識符名字的第1個字符后面可以由字母、下劃線(_)或數(shù)字(0~9)組成。Python對大小寫敏感,關(guān)鍵字和各種自定義標識符(如變量名、函數(shù)名等)在使用時區(qū)分大寫和小寫。2.1.2變量下面的代碼說明了abc和Abc是兩個不同的變量:Python變量的數(shù)據(jù)類型Python中數(shù)據(jù)類型與C語言不同,C語言中數(shù)據(jù)類型是需要在程序編譯開始時聲明變量類型,像C語言這樣在編譯期間就確定數(shù)據(jù)類型,要求在使用任一變量之前聲明其數(shù)據(jù)類型的語言叫做靜態(tài)類型語言,Java也如此。而Python則是一種動態(tài)類型語言,這種類型語言確定變量的數(shù)據(jù)類型是在給變量賦值的時候。因此在Python中使用變量時不用像C語言先聲明數(shù)據(jù)類型,可直接使用?!纠?-1】
在下面的代碼中,定義了一個字符串變量a、數(shù)值變量b和布爾類型變量c。a="這是一個常量"b=2c=TruePython變量與地址的關(guān)系在C語言中,編譯器會為變量分配一個空間,當變量改變值時,改變的是這塊空間中保存的值。在程序運行中,變量的地址就不能再發(fā)生改變了。Python不同,它的變量與C語言中的指針相似,當變量賦值時,解釋器為數(shù)值開辟一塊空間,而變量則指向這塊空間,當變量改變值時,改變的并不是這塊空間中保存的值,而是改變了變量指向的空間,使變量指向另一空間?!纠?-2】a="這是一個變量"b=a#此時變量b的值應(yīng)等于變量a的值print(b)a="這是另一個變量"print(b)#對變量a的操作將不會影響到變量b運行結(jié)果如下:這是一個變量這是一個變量變量賦值過程的示意圖id()函數(shù)可以使用id()函數(shù)輸出變量的地址,語法如下:id(變量名)【例2-3】用id()函數(shù)輸出變量地址的示例程序。str1="這是一個變量"print("變量str1的值是:"+str1)#“+”為連接字符串print("變量str1的地址是:%d"%(id(str1)))#“%”標記轉(zhuǎn)換說明符的開始str2=str1print("變量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常量與變量的數(shù)據(jù)類型轉(zhuǎn)換Python在定義變量時,不需要指定其數(shù)據(jù)類型,而是根據(jù)每次給變量所賦的值決定其數(shù)據(jù)類型。但也可以使用函數(shù)對常量和變量進行類型轉(zhuǎn)換,以便對它們進行相應(yīng)的操作。1.轉(zhuǎn)換為數(shù)字可以將字符串常量或變量轉(zhuǎn)換為數(shù)字。(1)使用int()函數(shù)將數(shù)字或字符串轉(zhuǎn)換為整數(shù)(10進制表示),語法如下:int(x[,base])參數(shù)x是待轉(zhuǎn)換的數(shù)字或字符串;參數(shù)base為可選參數(shù),為參數(shù)x的進制,默認為10進制。注意:①x可以是數(shù)字或字符串,但是base被賦值后x只能是字符串。②x作為字符串時必須是base類型,也就是說x變成數(shù)字時必須能用base進制表示。1.轉(zhuǎn)換為數(shù)字例題:int(3.14)#3
int(100,2)#出錯,base被賦值后函數(shù)只接收字符串int('23',16)#35int('Pythontab',8)#出錯,Pythontab不是8進制數(shù)1.轉(zhuǎn)換為數(shù)字(2)使用long()函數(shù)將字符串轉(zhuǎn)換為長整數(shù),語法如下:long(x[,base])參數(shù)的含義與int()函數(shù)相同。1.轉(zhuǎn)換為數(shù)字(3)使用float()函數(shù)將字符串或數(shù)字轉(zhuǎn)換為浮點數(shù),語法如下:float(x)參數(shù)x是待轉(zhuǎn)換的字符串或數(shù)字。(4)使用eval()函數(shù)計算字符串中的有效Python表達式,并返回結(jié)果,語法如下:eval(str)參數(shù)str是待計算的Python表達式字符串?!纠?-4】例2-4:a="1"b=int(a)+1print(b)運行結(jié)果為2?!纠?-5】例2-5:a="1+2"print(eval(a))運行結(jié)果為3。2.轉(zhuǎn)換為字符串可以將數(shù)字常量或變量轉(zhuǎn)換為字符串。(1)使用str()函數(shù)將數(shù)值轉(zhuǎn)換為字符串,語法如下:str(x)參數(shù)x是待轉(zhuǎn)換的數(shù)值。2.轉(zhuǎn)換為字符串(2)使用repr()函數(shù)將對象轉(zhuǎn)換為字符串顯示,語法如下:repr(obj)參數(shù)obj是待轉(zhuǎn)換的對象。例題:>>>repr('hello')"'hello'"2.轉(zhuǎn)換為字符串(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'))運行結(jié)果為:A652.轉(zhuǎn)換為字符串(5)使用hex()函數(shù)將一個整數(shù)轉(zhuǎn)換為一個十六進制字符串,語法如下:hex(整數(shù))(6)使用oct()函數(shù)將一個整數(shù)轉(zhuǎn)換為一個八進制字符串,語法如下:oct(整數(shù))【例2-7】使用hex()函數(shù)和oct()函數(shù)打印8的十六進制字符串和八進制字符串。print(hex(8))print(oct(8))輸出的結(jié)果如下:0x80o10十六進制字符串以0x開頭,八進制字符串以0o開頭。2.2運算符和表達式運算符是程序設(shè)計語言的最基本元素,它是構(gòu)成表達式的基礎(chǔ)。2.2.1運算符Python支持算術(shù)運算符、賦值運算符、位運算符、比較運算符、邏輯運算符、字符串運算符、成員運算符和身份運算符等基本運算符。1.算術(shù)運算符算術(shù)運算符具體描述例
子+相加運算1+2的結(jié)果是3-相減運算100-1的結(jié)果是99*乘法運算2*2的結(jié)果是4/除法運算(如不能整除,Python3默認的是提供17位數(shù)字的精度)4/2的結(jié)果是2.0%求模運算10%3的結(jié)果是1**冪運算。x**y返回x的y次冪2**3的結(jié)果是8//整除運算,即返回商的整數(shù)部分9//2的結(jié)果4
2.賦值運算符賦值運算符具體描述例
子=直接賦值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)運行結(jié)果如下:6393.03.位運算符位運算符具體描述&按位與運算,運算符查看兩個表達式的二進制表示法的值,并執(zhí)行按位“與”操作。只要兩個表達式的某位都為1,則結(jié)果的該位為1;否則,結(jié)果的該位為
0(同真為真)|按位或運算,運算符查看兩個表達式的二進制表示法的值,并執(zhí)行按位“或”操作。只要兩個表達式的某位有一個為1,則結(jié)果的該位為1;否則,結(jié)果的該位為
0(同假為假)^按位異或運算。異或的運算法則為:0異或0=0,1異或0=1,0異或1=1,1異或1=0~按位非運算。0取非運算的結(jié)果為1;1取非運算的結(jié)果為0<<
位左移運算,即所有位向左移>>
位右移運算,即所有位向右移【例題】x=8a=x>>3print(a)b=x<<3print(b)c=x>>5print(c)運行結(jié)果如下:16404.比較運算符比較運算符具體描述==等于運算符(兩個=)。例如
a==b,若a等于b,則返回True;否則返回False!=不等運算符。例如
a!=b,若a不等于b,則返回True;否則返回False<>
不等運算符,與!=相同<
小于運算符>
大于運算符<=小于等于運算符>=大于等于運算符5.邏輯運算符邏輯運算符具體描述and邏輯與運算符。例如
aandb,當a和b都為True時等于True;否則等于Falseor邏輯或運算符。例如
aorb,當a和b至少有一個為True時等于True;否則等于Falsenot邏輯非運算符。例如
nota,當a等于True時,表達式等于False;否則等于True【例2-9】x=Truey=Falseprint("xandy=",xandy)print("xory=",xory)print("notx=",notx)print("noty=",noty)運行結(jié)果如下:xandy=Falsexory=Truenotx=Falsenoty=True6.字符串運算符、成員運算符具體描述+字符串連接*重復(fù)輸出字符串[]獲取字符串中指定索引位置的字符,索引從0開始[start,end]截取字符串中的一部分,從索引位置start開始到end結(jié)束(不包含end)in成員運算符,如果字符串中包含給定的字符則返回Truenotin成員運算符,如果字符串中未包含給定的字符則返回Truer或者R指定原始字符串。原始字符串是指所有的字符串都是直接按照字面的意思來使用,沒有轉(zhuǎn)義字符、特殊字符或不能打印的字符。原始字符串字符串的第一個引號前加上字母"r"或"R"【例2-10】b="hello"a=b+"world!"print(a)print(a*2)print(r"hello\nworld!")運行結(jié)果如下:helloworld!helloworld!helloworld!hello\nworld!7.運算符優(yōu)先級運算符具體描述**指數(shù)運算的優(yōu)先級最高~+-邏輯非運算符和正數(shù)/負數(shù)運算符。注意,這里的+和-不是加減運算符*/%//乘、除、取模和取整除+-加和減>><<位右移運算和位左移運算&按位與運算^|按位異或運算和按位或運算>==!=大于、等于和不等于%=/=//=-=+=*=**=賦值運算符isisnot身份運算符innotin成員運算符notorand邏輯運算符2.3常用語句2.3.1賦值語句2.3.2條件分支語句2.3.3循環(huán)語句2.3.4try-except語句2.3.1賦值語句賦值語句是Python語言中最簡單、最常用的語句。通過賦值語句可以定義變量并為其賦初始值。例如:a=2b=a+5【例2-11】a=10a+=1print(a)a*=10print(a)a**=2print(a)運行結(jié)果如下:11110121002.3.2條件分支語句1.if語句1.單分支結(jié)構(gòu):if語句if條件表達式:
語句塊【例2-12】if語句的例子ifa>10:print("變量a大于10")如果語句塊中包含多條語句,則這些語句必須擁有相同的縮進。例如:ifa>10:print("變量a大于10")a=10【例2-13】嵌套if語句的例子ifa>10:
print("變量a大于10") ifa>100: print("變量a大于100")2.二分支結(jié)構(gòu):if…else語句if條件表達式:
語句塊1else:
語句塊23.多分支結(jié)構(gòu):if…elif…else語句if條件表達式1:
語句塊1elif條件表達式2:
語句塊2elif條件表達式3:
語句塊3……else:
語句塊n【例2-15】importdatetime#引入模塊str="今天是"d=datetime.datetime.now()#獲取當前的日期和時間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星期日2.3.3循環(huán)語句1.while語句2.for語句3.continue語句4.break語句1.while語句while條件表達式:
循環(huán)語句體【例2-16】使用while語句求1+2+…+9+10。i=1sum=0whilei<11:sum+=i
i+=1print(sum)while語句的擴展模式while<條件>:<語句塊1>else:<語句塊2>當whlie循環(huán)正常執(zhí)行后,程序會繼續(xù)執(zhí)行else語句中內(nèi)容。else語句只在循環(huán)正常執(zhí)行之后才執(zhí)行。因此,可以在<語句塊2>中放置判斷循環(huán)執(zhí)行情況的語句。【例題】s,idx="BIT",0whileidx<len(s):print("循環(huán)進行中:"+s[idx])idx+=1else:s="循環(huán)正常結(jié)束"print(s)執(zhí)行結(jié)果:循環(huán)進行中:B循環(huán)進行中:I循環(huán)進行中:T循環(huán)正常結(jié)束2.for語句foriinrange(start,end):
循環(huán)體程序在執(zhí)行for語句時,循環(huán)計數(shù)器變量i被設(shè)置為start,然后執(zhí)行循環(huán)體語句。i依次被設(shè)置為從start開始至end的所有值,每設(shè)置一個新值都執(zhí)行一次循環(huán)體語句。當i等于end時,退出循環(huán)?!纠?-17】使用for語句求1+2+…+9+10。i=1sum=0foriinrange(1,11):print(i)sum+=iprint(sum)for語句的擴展模式for<循環(huán)變量>in<遍歷結(jié)構(gòu)>:<語句塊1>else:<語句塊2>當for循環(huán)正常執(zhí)行之后,程序會繼續(xù)執(zhí)行else語句中內(nèi)容。else語句只在循環(huán)正常執(zhí)行之后才執(zhí)行。因此,可以在<語句塊2>中放置判斷循環(huán)執(zhí)行情況的語句?!纠}】forsin"BIT":print("循環(huán)進行中:"+s)else:s="循環(huán)正常結(jié)束"print(s)執(zhí)行結(jié)果:循環(huán)進行中:B循環(huán)進行中:I循環(huán)進行中:T循環(huán)正常結(jié)束循環(huán)中的else擴展用法總結(jié)else中的語句塊只在一種條件下執(zhí)行,即循環(huán)正常遍歷了所有內(nèi)容或由于條件不成立而結(jié)束循環(huán)。3.continue語句在循環(huán)體中使用continue語句可以跳過本次循環(huán)后面的代碼,重新開始下一次循環(huán)。【例2-18】計算1~100之間偶數(shù)之和。i=1sum=0foriinrange(1,101):ifi%2==1:continuesum+=iprint(sum)4.break語句在循環(huán)體中使用break語句可以跳出循環(huán)體?!纠?-19】將【例2-16】修改為使用break語句跳出循環(huán)體。i=1sum=0whileTrue:ifi==11:breaksum+=ii+=1print(sum)2.3.4try-except異常處理語句程序在運行過程中可能會出現(xiàn)異常情況,使用異常處理語句可以捕獲到異常情況,并進行處理,從而避免程序異常退出。Python的異常處理語句為try-excepttry-except異常處理語句
12num=eval(input("請輸入一個整數(shù):"))print(num**2)
觀察下面這段小程序:當用戶輸入的不是數(shù)字呢?
>>>
請輸入一個整數(shù):10010000>>>
請輸入一個整數(shù):NOTraceback(mostrecentcalllast):File"D:/PythonPL/echoInt.py",line1,in<module>
num=eval(input("請輸入一個整數(shù):"))File"<string>",line1,in<module>NameError:name'No'isnotdefinedtry-except異常處理語句Python解釋器返回了異常信息,同時程序退出try-except異常處理語句Python重要的內(nèi)建異常類型:
AttributeError:屬性錯誤,對象引用和賦值失敗時會引發(fā)屬性錯誤。NameError:試圖訪問的變量名不存在。SyntaxError:語法錯誤,代碼形式錯誤。Exception:所有異常的基類,因為所有Python異常類都是基類Exception的其中一員,異常都是從基類Exception繼承的,并且都在exceptions模塊中定義。IOError:一般常見于打開不存在文件時會引發(fā)IOError錯誤,也可以解理為輸出輸入錯誤。KeyError:使用了映射中不存在的關(guān)鍵字(鍵)時引發(fā)的關(guān)鍵字錯誤。IndexError:索引錯誤,使用的索引不存在,常索引超出序列范圍。TypeError:類型錯誤,內(nèi)建操作或是函數(shù)應(yīng)用了錯誤類型的對象時會引發(fā)類型錯誤。ZeroDivisonError:除數(shù)為0,在用除法操作時,第二個參數(shù)為0時引發(fā)了該錯誤。ValueError:值錯誤,傳給對象的參數(shù)類型不正確,例如給int()函數(shù)傳入了字符串數(shù)據(jù)類型的參數(shù)。try-except異常處理語句Python異常信息中最重要的部分是異常類型,它表明了發(fā)生異常的原因,也是程序處理異常的依據(jù)。Python使用try-except語句實現(xiàn)異常處理,基本的語法格式如下:try: <語句塊1>except<異常類型>: <語句塊2>try-except異常處理語句
12try:num=eval(input("請輸入一個整數(shù):"))print(num**2)exceptNameError:print("輸入錯誤,請輸入一個整數(shù)!")
該程序執(zhí)行效果如下:>>>
請輸入一個整數(shù):NO輸入錯誤,請輸入一個整數(shù)!辨析:異常和錯誤編程語言的異常和錯誤是兩個相似但不同的概念。異常和錯誤都可能引起程序執(zhí)行錯誤而退出,它們屬于程序沒有考慮到的例外情況。然而,絕大多數(shù)不可控因素是可以預(yù)見的。例如,程序期望獲得數(shù)字輸入?yún)s得到了其他字符輸入。這種可以預(yù)見的例外情況稱為“異?!?,異常發(fā)生后經(jīng)過妥善處理可以繼續(xù)執(zhí)行。另外一些因為程序編碼邏輯產(chǎn)生的不可預(yù)見的例外情況稱為“錯誤”,錯誤發(fā)生后程序無法恢復(fù)執(zhí)行,而且程序本不該處理這類可能的例外。異常的高級用法try-except語句可以支持多個except語句,語法格式如下:try: <語句塊1>except<異常類型1>: <語句塊2>…except<異常類型N>: <語句塊N+1>except: <語句塊N+2>異常的高級用法最后一個except語句沒有指定任何類型,表示它對應(yīng)的語句塊可以處理所有其他異常。這個過程與if-elif-else語句類似,是分支結(jié)構(gòu)的一種表達方式。
12345678try:alp="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
idx=eval(input("請輸入一個整數(shù):"))print(alp[idx])exceptNameError:print("輸入錯誤,請輸入一個整數(shù)!")except:print("其他錯誤")
異常的高級用法該程序?qū)⒂脩糨斎氲臄?shù)字作為索引從字符串a(chǎn)lp中返回一個字符,當用戶輸入非整數(shù)字符時,exceptNameError異常被捕獲到,提示用戶輸入類型錯誤。當用戶輸入數(shù)字不在0到25之間時,異常被except捕獲,程序打印其他錯誤信息,執(zhí)行過程和結(jié)果如下:>>>
請輸入一個整數(shù):NO輸入錯誤,請輸入一個整數(shù)!>>>
請輸入一個整數(shù):100其他錯誤異常的高級用法除了try和except保留字外,異常語句還可以與else和finally保留字配合使用,語法格式如下:try: <語句塊1>except<異常類型1>: <語句塊2>else: <語句塊3>finally: <語句塊4>
異常的高級用法此處的else語句與for循環(huán)和while循環(huán)中的else一樣,當try中的語句塊1正常執(zhí)行結(jié)束且沒有發(fā)生異常時,else中的語句塊3執(zhí)行,可以看作是對try語句塊正常執(zhí)行后的一種追加處理。finally語句塊則不同,無論try中的語句塊1是否發(fā)生異常,語句塊4都會執(zhí)行,可以將程序執(zhí)行語句塊1的一些收尾工作放在這里。異常的高級用法異常的高級用法采用else和finally修改代碼如下:
12345678910try:alp="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
idx=eval(input("請輸入一個整數(shù):"))print(alp[idx])exceptNameError:print("輸入錯誤,請輸入一個整數(shù)!")else:print("沒有發(fā)生異常")finally:print("程序執(zhí)行完畢,不知道是否發(fā)生了異常")
執(zhí)行過程和結(jié)果如下:>>>
請輸入一個整數(shù):5F沒有發(fā)生異常程序執(zhí)行完畢,不知道是否發(fā)生了異常>>>
請輸入一個整數(shù):NO輸入錯誤,請輸入一個整數(shù)!程序執(zhí)行完畢,不知道是否發(fā)生了異常異常的高級用法Python能識別多種異常類型,但不建議編寫程序時過度依賴try-except這種異常處理機制。try-except異常一般只用來檢測極少發(fā)生的情況。異常的高級用法對于面向商業(yè)應(yīng)用的軟件產(chǎn)品,穩(wěn)定性和可靠性是最重要的衡量指標之一。即使這類軟件產(chǎn)品不會濫用try-except類型語句。因為采用try-except語句會影響代碼的可讀性,增加代碼維護難度,因此,一般只在關(guān)鍵地方采用try-except類型語句處理可能發(fā)生的異常。2.4序列數(shù)據(jù)結(jié)構(gòu)序列是Python用于存儲一組項目的數(shù)據(jù)結(jié)構(gòu),包括列表、元組、字典和集合。2.4序列數(shù)據(jù)結(jié)構(gòu)2.4.1列表的應(yīng)用與實例2.4.2元組的應(yīng)用與實例2.4.3字典的應(yīng)用與實例2.4.4集合的應(yīng)用與實例2.4.1列表的應(yīng)用與實例列表(List)是一組有序存儲的數(shù)據(jù)。例如,飯店點餐的菜單就是一種列表。列表具有如下特性:和變量一樣,每個列表都有一個唯一標識它的名稱。列表中不同元素的類型可以相同,也可以不同。它支持數(shù)字,字符串甚至可以包含列表(所謂嵌套)。每個列表元素都有索引和值兩個屬性,索引是一個從0開始的整數(shù),用于標識元素在列表中的位置;值就是元素對應(yīng)的值。1.定義列表列表常量用[]表示。以下是一個列表的定義:menulist=['紅燒肉','熘肝尖','西紅柿炒雞蛋','油燜大蝦']2.打印列表可以直接使用print(列表名)打印列表。【例2-22】打印列表的內(nèi)容。menulist=['紅燒肉','熘肝尖','西紅柿炒雞蛋','油燜大蝦']print(menulist)運行結(jié)果如下:['紅燒肉','熘肝尖','西紅柿炒雞蛋','油燜大蝦']3.獲取列表長度列表長度指列表中元素的數(shù)量??梢酝ㄟ^len(列表名)獲取列表的長度。【例2-23】獲取列表長度menulist=['紅燒肉','熘肝尖','西紅柿炒雞蛋','油燜大蝦']print(len(menulist))運行結(jié)果如下:44.訪問列表元素列表名[index]index是元素索引,第一個元素的索引是0,最后一個元素的索引是列表長度-1。Python的兩種序號體系:【例2-24】訪問列表元素的例子menulist=['紅燒肉','熘肝尖','西紅柿炒雞蛋','油燜大蝦']print(menulist[0])print(menulist[3])程序打印列表中索引為0和3的元素,運行結(jié)果如下:紅燒肉油燜大蝦【例】訪問列表元素的例子menulist=['紅燒肉','熘肝尖','西紅柿炒雞蛋','油燜大蝦']print(menulist[-1])print(menulist[-3])程序打印列表中索引為-1和-3的元素,運行結(jié)果如下:油燜大蝦熘肝尖5.添加列表元素可以通過append(新值)在列表尾部添加元素?!纠?-25】通過append()函數(shù)添加列表元素的例子。menulist=['紅燒肉','熘肝尖','西紅柿炒雞蛋','油燜大蝦']menulist.append('北京烤鴨')print(menulist)程序調(diào)用append()函數(shù)在列表menulist的尾部添加元素'北京烤鴨',運行結(jié)果如下:['紅燒肉','熘肝尖','西紅柿炒雞蛋','油燜大蝦','北京烤鴨']5.添加列表元素可以通過insert(插入位置,新值)在列表的指定位置(索引位置)插入一個元素?!纠?-26】通過insert()函數(shù)添加列表元素的例子。menulist=['紅燒肉','熘肝尖','西紅柿炒雞蛋','油燜大蝦']menulist.insert(1,'北京烤鴨')print(menulist)運行結(jié)果如下:['紅燒肉','北京烤鴨','熘肝尖','西紅柿炒雞蛋','油燜大蝦']5.添加列表元素可以通過列表名1.extend(列表名2)將列表2中的每個元素分別添加到列表1中。【例2-27】通過extend()函數(shù)添加列表元素的例子。menulist1=['紅燒肉','熘肝尖']menulist2=['西紅柿炒雞蛋','油燜大蝦']menulist1.extend(menulist2)print(menulist1)運行結(jié)果如下:['紅燒肉','熘肝尖','西紅柿炒雞蛋','油燜大蝦']6.合并2個列表可以使用+將2個列表合并,得到一個新的列表,具體方法如下:列表3=列表1+列表2【例2-28】合并2個列表的例子。menulist1=['紅燒肉','熘肝尖','西紅柿炒雞蛋']menulist2=['北京烤鴨','西紅柿炒雞蛋','油燜大蝦']menulist3=menulist1+menulist2print(menulist3)運行結(jié)果如下:['紅燒肉','熘肝尖','西紅柿炒雞蛋','北京烤鴨','西紅柿炒雞蛋','油燜大蝦']7.刪除列表元素可以通過del列表名[索引]刪除指定的列表元素。
【例2-29】使用del語句刪除列表元素的例子。menulist=['紅燒肉','熘肝尖','西紅柿炒雞蛋']delmenulist[0]print(menulist)運行結(jié)果如下:['熘肝尖','西紅柿炒雞蛋']8.定位列表元素可以使用index()函數(shù)獲取列表中某個元素的索引。其基本語法:列表.index(元素值)函數(shù)返回元素值在列表中某個元素的索引,如果不存在,則會提示異常?!纠?-30】使用index()函數(shù)的例子。menulist=['紅燒肉','熘肝尖','西紅柿炒雞蛋']print(menulist.index('紅燒肉'))print(menulist.index('西紅柿炒雞蛋'))運行結(jié)果如下:029.遍歷列表元素遍歷列表就是一個一個地訪問列表元素,可以使用for語句和range()函數(shù)遍歷列表索引,然后通過索引依次訪問每個列表元素,方法如下:foriinrange(len(list)):
訪問list[i]【例2-31】list=['王二','張三','李四','王五']foriinrange(len(list)):print(list[i])程序的運行結(jié)果如下:王二張三李四王五9.遍歷列表元素也可以使用for語句和enumerate()函數(shù)同時遍歷列表的元素索引和元素值,方法如下:for索引,元素值inenumerate(list):
訪問索引和元素值【例2-32】list=['王二','張三','李四','王五']forindex,valueinenumerate(list):print("第%d個元素值是【%s】"%(index,value))程序的運行結(jié)果如下:第0個元素值是【王二】第1個元素值是【張三】第2個元素值是【李四】第3個元素值是【王五】10.列表排序列表排序操作是按列表元素值的升序、降序或反序重新排列列表元素的位置??梢允褂胹ort()函數(shù)對列表進行升序排列,其語法:列表名.sort()【例2-33】list=['apple','banana','pear','grape']list.sort()print(list)程序的運行結(jié)果如下:['apple','banana','grape','pear']10.列表排序可以使用reverse()函數(shù)對列表進行反序排列,其語法:列表名.reverse()調(diào)用reverse()函數(shù)后,列表元素被反序排列?!纠?-34】使用reverse()函數(shù)對列表進行反序排列。list=['apple','banana','pear','grape']list.reverse()print(list)程序的運行結(jié)果如下:['grape','pear','banana','apple']10.列表排序如果希望對列表元素進行降序排列,則可先使用sort()函數(shù)進行升序排列,然后調(diào)用reverse()函數(shù)對列表進行反序排列?!纠?-35】list=['apple','banana','pear','grape']list.sort()list.reverse()print(list)程序的運行結(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ù),默認值為0。end:一個整數(shù),指定產(chǎn)生的列表的結(jié)束元素值。range()函數(shù)返回一個列表,該列表由從start開始至end結(jié)束(不包含end)的整數(shù)組成。【例2-36】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))【例2-36】運行結(jié)果:list1的第0個元素值是【0】list1的第1個元素值是【1】list1的第2個元素值是【2】list1的第3個元素值是【3】list1的第4個元素值是【4】list1的第5個元素值是【5】list1的第6個元素值是【6】list1的第7個元素值是【7】list1的第8個元素值是【8】list1的第9個元素值是【9】list2的第0個元素值是【11】list2的第1個元素值是【12】list2的第2個元素值是【13】list2的第3個元素值是【14】list2的第4個元素值是【15】list2的第5個元素值是【16】list2的第6個元素值是【17】list2的第7個元素值是【18】list2的第8個元素值是【19】12.定義多維列表可以將多維列表視為列表的嵌套。即多維列表的元素值也是一個列表,只是維度比其父列表小1。二維列表的元素值是一維列表,三維列表的元素值是二維列表,以此類推。【例2-37】一個定義二維列表的例子。list2=[["CPU","內(nèi)存"],["硬盤","聲卡"]]【例2-38】打印二維列表list2=[["CPU","內(nèi)存"],["硬盤","聲卡"]]foriinrange(len(list2)):print(list2[i])運行結(jié)果如下:['CPU','內(nèi)存']['硬盤','聲卡']【例2-39】list2=[["CPU","內(nèi)存"],["硬盤","聲卡"]]foriinrange(len(list2)):list1=list2[i]forjinrange(len(list1)):print(list1[j])運行結(jié)果如下:CPU內(nèi)存硬盤聲卡獲取二維列表元素的值可以使用下面的方法獲取二維列表元素的值:列表名[索引1][索引2]【例2-40】list2=[["CPU","內(nèi)存"],["硬盤","聲卡"]]foriinrange(len(list2)):forjinrange(len(list2[i])):print(list2[i][j])運行結(jié)果如下:CPU內(nèi)存硬盤聲卡拓展:列表和數(shù)組每種編程語言都提供一個或多個表示一組元素的方法,例如,C語言采用數(shù)組,Python采用列表。在大多數(shù)語言中,數(shù)組十分常見,僅有少量語言采用列表而不是數(shù)組。列表和數(shù)組類似,但并不完全一樣,列表和數(shù)組有兩個顯著不同。拓展:列表和數(shù)組第一,數(shù)組需要預(yù)先分配大小,列表則不需要。當創(chuàng)建一個數(shù)組時,必須指定數(shù)組的大小,即它能容納元素的個數(shù)。如果不知道有多少元素,必須假設(shè)一個最大可能的數(shù)值,再按照這個最大值分配一個數(shù)組,并記錄數(shù)組中實際存儲元素的個數(shù),以保證實際使用的元素數(shù)量不超過數(shù)組的限制。列表則沒有預(yù)分配大小的要求和限制,創(chuàng)建列表變量時不需要知道元素個數(shù),可以在使用中動態(tài)插入任何數(shù)量的元素。拓展:列表和數(shù)組第二,數(shù)組要求元素類型一致,列表則不需要。數(shù)組要求每個元素具有相同的數(shù)據(jù)類型,如果某個元素是整數(shù),則數(shù)組中全部元素都是整數(shù)。列表沒有上述限制,列表中不同元素的類型可以相同,也可以不同,甚至,列表中的元素也可以是列表類型。列表的這個特點十分靈活,為程序編寫提供了很大的設(shè)計空間。2.4.2元組的應(yīng)用與實例元組與列表非常相似,它具有如下特性:一經(jīng)定義,元組的內(nèi)容不能改變。元組元素可以存儲不同類型的數(shù)據(jù),可以是字符串、數(shù)字,甚至是元組。元組元素由圓括號括起來,例如:t=(1,2,3,4)1.訪問元組元素與列表一樣,可以使用索引訪問元組元素,方法:元組[索引]【例2-41】訪問元組元素的例子。t=(1,2,3,4)print(t[0])print(t[3])程序打印元組中索引為0和3的元素,運行結(jié)果如下:142.獲取元組長度元組長度指元組中元素的數(shù)量??梢酝ㄟ^len(元組名)獲取元組的長度?!纠?-42】打印元組的長度。t=(1,2,3,4)print(len(t))運行結(jié)果為:43.遍歷元組元素與列表一樣,可以使用for語句和range()函數(shù)遍歷列表索引,然后通過索引依次訪問每個元組元素,方法:foriinrange(len(tuple)):
訪問tuple[i]【例2-43】t=('王二','張三','李四','王五')foriinrange(len(t)):print(t[i])程序的運行結(jié)果如下:王二張三李四王五3.遍歷元組元素也可以使用for語句和enumerate()函數(shù)同時遍歷元組的元素索引和元素值,方法:for索引,元素值inenumerate(tuple):
訪問索引和元素值【例2-44】tuple=('王二','張三','李四','王五’)forindex,valueinenumerate(tuple):print("第%d個元素值是【%s】"%(index,value))程序的運行結(jié)果如下:第0個元素值是【王二】第1個元素值是【張三】第2個元素值是【李四】第3個元素值是【王五】4.排序因為元組的內(nèi)容不能改變,所以元組沒有sort()函數(shù)。可以將元組轉(zhuǎn)換為列表,然后再對列表排序,最后將排序后的列表賦值給元組??梢允褂昧斜韺ο?list(元組對象)將元組轉(zhuǎn)換為列表。將列表轉(zhuǎn)換為元組的方法:元組對象=tuple(列表對象)【例2-45】對元組進行排列t=('apple','banana','pear','grape')l=list(t)l.sort()t=tuple(l)print(t)程序的運行結(jié)果如下:('apple','banana','grape','pear')4.排序可以使用reverse()函數(shù)對元組進行反序排列(先轉(zhuǎn)換為列表)?!纠?-46】使用reverse()函數(shù)對元組進行反序排列。t=('apple','banana','pear','grape')l=list(t)l.reverse()t=tuple(l)print(t)程序的運行結(jié)果如下:('grape','pear','banana','apple')2.4.3字典的應(yīng)用與實例字典也是在內(nèi)存中保存一組數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),與列表不同的是:每個字典元素都有鍵(key)和值(value)兩個屬性,鍵用于定于和標識字典元素,鍵可以是一個字符串,也可以是一個整數(shù);值就是字典元素對應(yīng)的值。因此,字典元素就是一個“鍵/值對”。1.定義字典字典元素使用{}括起來。例如,下面的語句可以定義一個空字典。d1={}也可以在定義字典時指定里面的元素,每個元素由鍵和值組成,鍵和值之間由冒號(:)分割,元素間由逗號(,)分割。例如:d2={'name':'小明','sex':'男','age':'18','score':'80'}2.打印字典可以直接使用print(字典名)打印字典?!纠?-47】打印字典的內(nèi)容。d={'name':'小明','sex':'男','age':'18','score':'80'}print(d)運行結(jié)果如下:{'name':'小明','sex':'男','age':'18','score':'80'}3.獲取字典長度字典長度是指字典中元素的數(shù)量??梢酝ㄟ^len(字典名)獲取字典的長度。【例2-48】打印字典的長度。d={'name':'小明','sex':'男','age':'18','score':'80'}print(len(d))運行結(jié)果為:44.訪問字典元素字典由字典元素組成??梢酝ㄟ^字典名[key]獲取字典元素的值,key是元素的鍵?!纠?-49】d={'name':'小明','sex':'男','age':'18','score':'80'}print(d['name'])print(d['sex'])print(d['age'])print(d['score'])運行結(jié)果如下:小明男18805.添加字典元素可以通過賦值在字典中添加元素,具體方法:字典[鍵]=值如果字典中不存在指定鍵,則添加;否則修改鍵值?!纠?-50】d={'name':'小明','sex':'男','age':'18'}d['score']='80'print(d)運行結(jié)果如下:{'name':'小明','sex':'男','age':'18','score':'80'}【例】d={'name':'小明','sex':'男','age':'18','score':'70'}d['score']='80'print(d)運行結(jié)果如下:{'name':'小明','sex':'男','age':'18','score':'80'}6.合并2個字典可以使用update()函數(shù)將2個字典合并,具體方法:字典1.update(字典2)【例2-51】合并2個字典的例子。d1={'name':'小明','sex':'男'}d2={'age':'18','score':'80'}d1.update(d2)print(d1)運行結(jié)果如下:{'name':'小明','sex':'男','age':'18','score':'80'}7.刪除字典元素使用pop()函數(shù)可以刪除指定的字典元素。具體方法:字典名.pop(鍵)【例2-52】使用pop()方法刪除字典元素的例子。d={'age':'18','name':'小明','score':'80','sex':'男'}d.pop('score')print(d)運行結(jié)果如下:{'age':'18','name':'小明','sex':'男'}8.判斷字典是否存在元素可以使用in關(guān)鍵字判斷字典中是否存在指定鍵的元素。其基本語法:鍵in字典如果字典中存在指定鍵的元素,則表達式返回True;否則返回False。【例2-53】使用in關(guān)鍵字的例子。d={'age':'18','name':'小明','score':'80','sex':'男'}if'name1'ind:print(d['name1'])else:print('不包含鍵為name1的元素')運行結(jié)果如下:不包含鍵為name1的元素9.遍歷字典元素可以使用for..in語句遍歷字典的鍵和值,方法如下:forkeyin字典.keys():#遍歷字典的鍵訪問字典[key]forkeyin字典.values():#遍歷字典的值訪問字典[key]【例2-54】d={'age':'18','name':'小明','score':'80','sex':'男'}forkeyind.keys():#遍歷字典的鍵
print('鍵'+key+'的值:'+d[key])程序的運行結(jié)果如下:鍵age的值:18鍵name的值:小明鍵score的值:80鍵sex的值:男【例2-55】d={'age':'18','name':'小明','score':'80','sex':'男'}forvalueind.values():#遍歷字典的值
print(value)程序的運行結(jié)果如下:18小明80男10.清空字典可以使用字典名.clear()清空指定
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第三人稱單數(shù)形式的辨別與應(yīng)用:小學(xué)英語教案
- 我的老師敬愛的語文老師演講稿10篇
- 供應(yīng)鏈管理與物流合作協(xié)議規(guī)定事項表
- 食品營養(yǎng)學(xué)專業(yè)知識問答練習集
- 綠色發(fā)展理念對產(chǎn)業(yè)提質(zhì)增效的影響
- 銀行業(yè)風險管理測試卷
- 技術(shù)進步對高素質(zhì)應(yīng)用型人才培養(yǎng)的影響分析
- 教育用品類型及價格列表
- 跨學(xué)科合作促進地理學(xué)實踐教學(xué)的多元化
- 智能倉儲物流解決協(xié)議
- 食品運輸交付管理制度
- 社保繳納免責協(xié)議書
- 2024人教版七年級生物下冊全冊教案
- 電工熔斷器知識培訓(xùn)課件
- 2025年霍亂培訓(xùn)課件
- 進一步財會監(jiān)督復(fù)習試題附答案
- 江西省贛州市2024-2025學(xué)年高二上學(xué)期1月期末考試英語試題(解析版)
- 2024年中國心力衰竭診斷與治療指南更新要點解讀
- 籃球裁判員手冊
- 方形和圓筒形電容器對比
- DeepSeek從入門到精通培訓(xùn)課件
評論
0/150
提交評論