Python語言課件第 2 章 Python語法速覽_第1頁
Python語言課件第 2 章 Python語法速覽_第2頁
Python語言課件第 2 章 Python語法速覽_第3頁
Python語言課件第 2 章 Python語法速覽_第4頁
Python語言課件第 2 章 Python語法速覽_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第2章

Python語法速覽

2.1Python的數(shù)據(jù)類型Python定義了6組標(biāo)準(zhǔn)數(shù)據(jù)類型:Number(數(shù)字)String(字符串)List(列表)Tuple(元組)Sets(集合)Dictionary(字典)1.數(shù)字類型數(shù)字類型包括整數(shù)(int)、浮點(diǎn)數(shù)(float)、復(fù)數(shù)(complex)、布爾值(bool)類型。Python的數(shù)據(jù)類型在使用時(shí),不需要先聲明,可以直接使用。例如:

x=13x為整數(shù)r=3.14r為浮點(diǎn)數(shù)a=3+4ja為復(fù)數(shù)2.字符串

用單引號(hào)、雙引號(hào)括起來的字符序列稱為字符串。例如:

‘a(chǎn)bc’,‘123’,“Hello”,“你好”都是字符串。字符串的幾個(gè)常用函數(shù)和方法:(1)str()函數(shù)str()函數(shù)可以將數(shù)字、列表、元組等轉(zhuǎn)換成字符串。

例如:輸出用單引號(hào)括起來的字符>>>str(1+2)

‘3’>>>str([1,2,3,4])‘1,2,3,4’

(2)find()方法find()方法可以查找字符子串在原字符串中首次出現(xiàn)的位置,如果沒有找到,則返回-1。例如:

>>>s=“ABCDE12345” >>>s.find(“CD”)

2

(3)

lower()方法

lower()方法可以將字符串中的大寫字母轉(zhuǎn)換為小寫字母。例如:

>>>s=“ABCDE12345”

>>>s1=s.lower() >>>s1

abcde12345

(4)

split()方法

split()方法按指定的分隔符將字符串拆分成多個(gè)字符子串,返回值為列表。例如:

>>>s=‘AB,CD,123,xyz’

>>>s.split(sep=’,’)

[‘AB’,’CD’,’123’,’xyz’]

(5)

strip()方法

strip()方法用于刪除字符串頭尾指定的字符(默認(rèn)為空格)。例如:

>>>str="*****thisisstringexample....wow!!!*****"

>>>print(str.strip('*'))thisisstringexample....wow!!!3.轉(zhuǎn)義符2.2列表和元組2.2.1列表定義與列表元素1.列表的定義

列表名=[元素0,元素1,……,元素n]說明:(1) 列表名的命名規(guī)則跟變量名一樣,不能用數(shù)字開頭。(2) 方括號(hào)中的元素之間用逗號(hào)分隔。(3) 當(dāng)列表增加或刪除元素時(shí),內(nèi)存空間自動(dòng)擴(kuò)展或收縮。(4) 列表中元素的類型可以不相同,它支持?jǐn)?shù)字,字符串甚至可以包含列表(稱為列表嵌套)。例如:a1=[]#定義空列表a2=[1,2,3]#定義3個(gè)整數(shù)的列表a3=[‘red’,‘green’,‘blue’]#定義3個(gè)字符串的列表a4=[5,‘blue’,[3,4]]#定義元素類型不相同的嵌套列表在IDLE提示符“>>>”后面輸入單條Python語句,按【回車】鍵執(zhí)行該語句,馬上就可以看到執(zhí)行結(jié)果。2.列表中元素的訪問(1)列表元素用“列表名[下標(biāo)]”表示例如:有列表a=[0,1,2,3,4,5,6,7,8,9]其元素分別為a[0]=0;a[1]=1;...;a[9]=9;(2)用“列表名[起始下標(biāo):結(jié)束下標(biāo)+1]”表示列表的片段(列表的部分元素)例如:設(shè)有列表a=[0,1,2,3,'red','green','blue']用交互方式訪問其列表的部分元素。

2.2.2列表的操作函數(shù)1.添加元素有3個(gè)函數(shù)可以在列表中添加元素:append()、extend()、insert()。(1)用append()函數(shù)在列表末尾添加元素(2)用extend()函數(shù)將另一個(gè)列表的元素添加到本列表之后(3)用insert()函數(shù)將元素插入到列表中指定的某個(gè)位置使用insert()函數(shù)的格式為:

insert(下標(biāo)位置,插入的元素)2.刪除元素(1)用del命令刪除列表中指定下標(biāo)的元素(2)用pop()函數(shù)刪除列表中指定下標(biāo)的元素(3)用remove(x)函數(shù)刪除列表中所值為‘x’的元素3.查找元素位置用index()函數(shù)可以確定元素在列表中的位置。4.對(duì)列表元素排序用sort()函數(shù)可以對(duì)列表元素進(jìn)行排序。sort()函數(shù)默認(rèn)為按升序(從小到大)排序。2.2.3元組

元組是一種元素序列。但元組是不可變的,元組一旦創(chuàng)建,就不能添加或刪除元素,元素的值也不能修改。

1.元組的創(chuàng)建用一對(duì)圓括號(hào)創(chuàng)建元組。2.元組的刪除只能用del命令刪除整個(gè)元組,而不能僅刪除元組中的部分元素,因?yàn)樵M是不可變的。2.3字典和集合2.3.1字典Python的字典是包含多個(gè)元素的一種可變數(shù)據(jù)類型,其元素由“鍵:值”對(duì)組成,即每個(gè)元素包含“鍵”和“值”兩部分。1.字典的定義用大括號(hào)“{}”把元素括起來就構(gòu)成了一個(gè)字典對(duì)象。字典中的元素用“字典名[鍵名]”表示。2.字典元素的修改通過為鍵名重新賦值的方式修改字典元素的值。3.字典元素的添加添加字典元素,也是使用賦值方式。4.字典元素的刪除

用del命令可以刪除字典中的元素。2.3.2集合集合是一個(gè)無序不可重復(fù)的序列,是一種基本數(shù)據(jù)類型。集合分為可變集合(set)和不可變集合(frozenset)兩種類型。可變集合的元素是可以添加、刪除的,而不可變集合的元素不可添加、不可刪除。1.集合的定義集合用一對(duì)大括號(hào)“{}”把元素括起來,元素之間用逗號(hào)“,”分隔。例如:s1={1,2,3,4,5}s2={‘a(chǎn)’,’b’,’c’,’d’}上述s1和s2都是集合。2.集合的創(chuàng)建使用set()函數(shù)創(chuàng)建一個(gè)集合。3.集合元素的添加

python集合有兩種方法用于添加元素,分別是add()和update()。4.集合元素的刪除用remove()可以刪除集合中的元素。例如:>>>a=set(‘boy’)>>>a.remove(‘y’)>>>a{‘o’,’b’}5.集合的專用操作符集合有4個(gè)專用操作符:

&(交集)、|(并集)、-(差集,又稱為“相對(duì)補(bǔ)集”)、^(對(duì)稱差分)。設(shè)有兩個(gè)集合a、b,其關(guān)系如下:a&b表示兩個(gè)集合的共同元素;a|b表示兩個(gè)集合的所有元素;a-b表示只屬于集合a,不屬于集合b的元素;a^b表示兩個(gè)集合的非共同元素;2.4程序控制結(jié)構(gòu)2.4.1順序控制語句在Python中使用print()函數(shù)輸出數(shù)據(jù)。(1)直接輸出(2)格式化輸出print()函數(shù)可以使用%格式化輸出數(shù)據(jù)。常用的格式化輸出符號(hào)如表2-1所示?!纠?-1】格式化輸出及控制換行輸出示例。

2.輸入語句在Python中,使用input()函數(shù)輸入數(shù)據(jù)。input()函數(shù)只能輸入字符數(shù)據(jù),當(dāng)需要輸入數(shù)值型數(shù)據(jù)時(shí),可以使用eval()函數(shù)將字符轉(zhuǎn)換為數(shù)值?!纠?-2】從鍵盤上輸入二個(gè)數(shù),計(jì)算這二數(shù)之和。編寫源程序如下:print("輸入一個(gè)整數(shù):")a=eval(input())print("輸入一個(gè)實(shí)數(shù):")b=eval(input())str=input()print(str)c=a+bprint("c=",a,"+",b,"=",c)【例2-3】交換兩個(gè)變量的值。在編寫程序時(shí),有時(shí)需要把兩個(gè)變量的值互換,Python在交換值的運(yùn)算不需要用中間變量。交換兩個(gè)變量的值2.4.2if選擇語句語法格式為:【例2-4】從鍵盤任意輸入兩個(gè)整數(shù),按從小到大的順序依次輸出這兩個(gè)數(shù)。源程序如下:【例2-5】對(duì)給定的三個(gè)數(shù),求最大數(shù)的平方。2.雙分支選擇結(jié)構(gòu)if條件表達(dá)式:程序段1else:程序段23.多分支選擇結(jié)構(gòu)【例2-7】將百分制轉(zhuǎn)換為五級(jí)記分制。if條件表達(dá)式1:程序段1elif條件表達(dá)式2:程序段2

……elif條件表達(dá)式n:程序段nelse:

程序段n+12.4.3循環(huán)語句1.for循環(huán)語句當(dāng)循環(huán)變量的步長值為1時(shí),可以省略,即可寫成:【例2-8】求從1加到9的和?!纠?-9】在循環(huán)體內(nèi)發(fā)生循環(huán)變量的值,觀察循環(huán)次數(shù)。

在for循環(huán)中,可以使用continue語句來結(jié)束本次循環(huán),也可以使用break語句跳出循環(huán)體,從而結(jié)束整個(gè)循環(huán)?!纠?-10】計(jì)算10以內(nèi)的偶數(shù)和?!纠?-11】設(shè)有列表s=['Pytho','java','c++/c','PHP','JavaScript'],應(yīng)用循環(huán)遍歷列表所有元素,并在屏幕上顯示。2.while語句while循環(huán)語句一般形式的語法結(jié)構(gòu)如下:【例2-12】求10!。3.循環(huán)嵌套循環(huán)可以嵌套,在一個(gè)循環(huán)體內(nèi)包含另一個(gè)完整的循環(huán),叫做循環(huán)嵌套。循環(huán)嵌套運(yùn)行時(shí),外循環(huán)每執(zhí)行一次,內(nèi)層循環(huán)要執(zhí)行一個(gè)周期。【例2-13】應(yīng)用循環(huán)嵌套,編寫一個(gè)按9行9列排列輸出的乘法九九表程序?!纠?-14】應(yīng)用循環(huán)嵌套打印出由“*”組成的直角三角形圖形。

內(nèi)循環(huán)控制列外循環(huán)控制行2.5函數(shù)2.5.1函數(shù)的定義與調(diào)用1.函數(shù)定義的一般形式【例2-15】創(chuàng)建一個(gè)名為Hello的函數(shù),其作用為輸出“歡迎進(jìn)入Python世界”的字符內(nèi)容。創(chuàng)建該函數(shù)的程序段如下:

defHello():

print("歡迎進(jìn)入Python世界")

在程序中調(diào)用Hello()函數(shù),將顯示“歡迎進(jìn)入Python世界”的字符內(nèi)容?!纠?-16】創(chuàng)建一個(gè)名為sum()的函數(shù),其作用為計(jì)算n以內(nèi)的整數(shù)之和(包含n)。

下面為實(shí)現(xiàn)計(jì)算n以內(nèi)的整數(shù)之和的函數(shù)程序段:defsum(n): s=0 foriinrange(1,n+1): s=s+i returns2.函數(shù)的調(diào)用在Python中,直接使用函數(shù)名調(diào)用函數(shù)。如果定義的函數(shù)包含有參數(shù),則調(diào)用函數(shù)時(shí)也必須使用參數(shù)?!纠?-17】創(chuàng)建顯示如下排列字符的函數(shù),并編寫程序調(diào)用該函數(shù)。

**********************************

*歡迎進(jìn)入學(xué)生成績管理系統(tǒng)*

**********************************程序代碼如下:defstar(): str="*****************************"returnstrdefprn():print("*歡迎進(jìn)入學(xué)生成績管理系統(tǒng)*")print(star())prn()print(star())【例2-18】應(yīng)用函數(shù),計(jì)算1~100的和。程序的運(yùn)行結(jié)果如下:

50502.5.2局部變量與全局變量在函數(shù)體內(nèi)部定義的變量或函數(shù)參數(shù)稱為局部變量,該變量只在該函數(shù)內(nèi)部有效。在函數(shù)體外部定義的變量稱為全局變量,在變量定義后的代碼中都有效。當(dāng)全局變量與局部變量同名時(shí),則在定義局部變量的函數(shù)中,全局變量被屏蔽,只有局部變量有效。全局變量在使用前要先用關(guān)鍵字global聲明?!纠?-19】全局變量與局部變量同名的示例。2.5.3常用內(nèi)置函數(shù)Python內(nèi)置函數(shù)是python系統(tǒng)內(nèi)部創(chuàng)建的,在Python的程序中,可以隨時(shí)調(diào)用這些函數(shù),不需要另外定義。例如,最常見的print()是內(nèi)置函數(shù),在程序中直接使用: print("HelloWorld!")而平方根函數(shù)sqrt()不是內(nèi)置函數(shù),使用該函數(shù)時(shí)需要引用math模塊: importmath y=math.sqrt(25)2.5.4匿名函數(shù)lambda在Python中可以使用匿名函數(shù)。匿名函數(shù)即沒有函數(shù)名的函數(shù)。通常用lambda聲明匿名函數(shù)。例如,計(jì)算二個(gè)數(shù)的和,可以寫成: add=lambdax,y:x+y print(add(1,2))輸出的結(jié)果為3。從上面示例可以看到,lambda表達(dá)式的計(jì)算結(jié)果相當(dāng)于函數(shù)的返回值。【例2-21】用lambda表達(dá)式,求三個(gè)數(shù)的和。2.6案例精選【例2-22】求50以內(nèi)能被7整除,但不能同時(shí)被5整除的所有整數(shù)?!纠?-23】如果一個(gè)3位數(shù)的各位數(shù)字的立方和等于該數(shù)自身,則該數(shù)稱為“水仙花數(shù)”。例如,153=13+53+33,所以153是一個(gè)水仙花數(shù)。求100~1000以內(nèi)所有“水仙花數(shù)”。

【例2-24】設(shè)有一份某地連續(xù)10年內(nèi)6月1日的氣溫記錄,其數(shù)據(jù)為(0C):31、30、33、31、28、32、29、33、35、31,試計(jì)算其平均氣溫。【例2-25】雞兔同籠問題。雞和兔在一個(gè)籠子里,從上面數(shù),有35個(gè)頭;從下面數(shù),有94只腳。問籠中雞和兔各有多少只?【例2-26】百錢買百雞問題。公雞5文錢一只,母雞3文錢一只,小雞3只一文錢,用100文錢買100只雞,如何買?

設(shè)公雞x只,母雞y只,小雞z只,則:

x+y+z=1005x+3y+z/3=100【例2-27】老漢賣西瓜,第一天賣西瓜總數(shù)的一半多一個(gè),第二天賣剩下的一半多一個(gè),以后每天都是賣前一天剩下的一半多一個(gè),到第10天只剩下一個(gè)。求西瓜總數(shù)是多少?算法分析:設(shè)共有x個(gè)西瓜,賣一半多一個(gè)后,還剩下x/2-1個(gè),所以,每天的西瓜數(shù)可以用迭代表示:xn=(xn+1+1)*2。且在賣了9天之后(第10天),x=1。這是可以用循環(huán)來處理的迭代問題。【例2-28】for循環(huán)語句的應(yīng)用示例:

(1)使用序列迭代法,顯示列表[‘xyz’,‘book’,‘hello’]。

(2)使用序列索引迭代法,顯示列表[‘c++’,‘java’,‘python’]。

(3)使用數(shù)字迭代法,顯示5個(gè)數(shù)字。

編寫程序代碼如下:#(1)使用序列迭代法s1=['xyz','book','hello']foriins1: print(i)print('\n')#(2)使用序列索引迭代法s2=['c++','java','python']foriinrange(len(s2)): print(i,s2[i])print('\n')#(3)使用數(shù)字迭代法x=range(5)foriinx: print(i,x[i])print('\n')【例2-29】編寫計(jì)算n!的函數(shù)。

計(jì)算n!,應(yīng)先計(jì)算(n-1)!,而計(jì)算(n-1)!,需要先計(jì)算(n-2)!,......,如此遞推,直到最后變成計(jì)算1!的問題。

根據(jù)公式,1!=1,這是本問題的遞歸

溫馨提示

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

評(píng)論

0/150

提交評(píng)論