版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
人工智能技術(shù)基礎(chǔ)第三章Python程序設(shè)計(jì)基礎(chǔ)01
Python概述Python的由來(lái)Python的創(chuàng)始人為荷蘭的Guido。
1989年,Guido為了打發(fā)圣誕節(jié)的無(wú)趣,決心開(kāi)發(fā)一個(gè)新的腳本解釋程序,做為ABC語(yǔ)言的一種繼承。之所以選中Python作為該編程語(yǔ)言的名字,是因?yàn)樗且粋€(gè)叫MontyPython的喜劇團(tuán)體的愛(ài)好者。Python的特點(diǎn)簡(jiǎn)單易學(xué)開(kāi)源高級(jí)語(yǔ)言可移植性解釋性面向?qū)ο罂蓴U(kuò)展豐富的庫(kù)規(guī)范的代碼Python的特點(diǎn)Python的版本歷史版本W(wǎng)indow安裝Python(1)訪問(wèn)/download/。選擇安裝包。(2)下載并完成Python的安裝。Window安裝Python(3)配置環(huán)境變量。Window安裝Python(4)環(huán)境變量配置成功Window安裝Python(5)下載pip。下載網(wǎng)站:/pypi/pip#downloads。Window安裝Python(6)解壓文件后,在Path最后面添加Scripts文件路徑。再次打開(kāi)控制臺(tái),輸入piplist,出現(xiàn)下列信息表示pip安裝成功。Window安裝Python02
Python語(yǔ)法基礎(chǔ)第三章Python程序設(shè)計(jì)基礎(chǔ)注釋Python中的單行注釋以#開(kāi)頭!
#第一個(gè)注釋print(“Hello,Python!”)
#第二個(gè)注釋多行注釋可以使用三引號(hào)作為開(kāi)頭和結(jié)束符號(hào)
"""print(value,...,sep='',end='\n',file=sys.stdout,flush=False)
"""行與縮進(jìn)python最具特色的就是使用縮進(jìn)來(lái)表示代碼塊ifTrue: print("True")else: print("False”) print("False”)ifTrue: print("True")else: print("False")
print(”hello”)變量和賦值超市購(gòu)物現(xiàn)實(shí)生活中,大家去超市買(mǎi)東西的時(shí)候,往往都需要一個(gè)菜籃子,用來(lái)進(jìn)行存儲(chǔ)物品,等到所有的物品都購(gòu)買(mǎi)完成后,在收銀臺(tái)進(jìn)行結(jié)賬即可。
Python中的變量用來(lái)存儲(chǔ)數(shù)據(jù),變量可以理解為去超市購(gòu)物的菜籃子,其類型和值在賦值的那一刻被初始化。
變量和賦值num1=100num2=87result=num1+num2num1和num2變量就好比一個(gè)小菜籃子,它們分別存儲(chǔ)的數(shù)據(jù)是100和87。result變量存儲(chǔ)的數(shù)據(jù)是num1和num2這兩個(gè)“菜籃子”中的數(shù)據(jù)累計(jì)之和。變量的類型數(shù)字類型布爾類型字符串類型列表類型元組類型字典類型整型復(fù)數(shù)浮點(diǎn)類型數(shù)據(jù)類型標(biāo)識(shí)符現(xiàn)實(shí)生活中,人們常用一些名稱來(lái)標(biāo)記事物,例如,現(xiàn)實(shí)生活中每種水果都有一個(gè)名稱來(lái)標(biāo)識(shí)。水果名稱標(biāo)識(shí)符若希望在程序中表示一些事物,需要開(kāi)發(fā)人員自定義一些符號(hào)和名稱,這些符號(hào)和名稱叫做標(biāo)識(shí)符。
標(biāo)示符由字母、下劃線和數(shù)字組成,且數(shù)字不能開(kāi)頭。Python中的標(biāo)識(shí)符是區(qū)分大小寫(xiě)的。python中的標(biāo)示符不能使用關(guān)鍵字
命名規(guī)則標(biāo)識(shí)符為了規(guī)范命名標(biāo)識(shí)符,關(guān)于標(biāo)識(shí)符的命名提以下建議:見(jiàn)名之意不建議使用駝峰式關(guān)鍵字關(guān)鍵字指的是具有特殊功能的標(biāo)識(shí)符。
>>>help()
#進(jìn)入幫助系統(tǒng)help>keywords#查看所有的關(guān)鍵字列表help>return
#查看return這個(gè)關(guān)鍵字的說(shuō)明help>quit
#退出幫助系統(tǒng)整型整數(shù)類型(int)簡(jiǎn)稱整型,它用于表示整數(shù)。
二進(jìn)制:0b10100八進(jìn)制:
0o20十進(jìn)制:
64十六進(jìn)制:
0x14
<實(shí)數(shù)>E或者e<整數(shù)>浮點(diǎn)型浮點(diǎn)型(Float)用于表示實(shí)數(shù)。
浮點(diǎn)型字面值可以用十進(jìn)制或科學(xué)計(jì)數(shù)法表示。E或e表示基是10,后面的整數(shù)表示指數(shù),指數(shù)的正負(fù)使用+或-表示。布爾類型布爾型其實(shí)是整型的子類型。布爾型數(shù)據(jù)只有兩個(gè)取值:True和False,分別對(duì)應(yīng)整型的1和0。復(fù)數(shù)類型復(fù)數(shù)類型,用于表示數(shù)學(xué)中的復(fù)數(shù),例如,5+3j。(1)復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成,表示為:real+imagj或real+imagJ(2)復(fù)數(shù)的實(shí)數(shù)real和虛數(shù)imag都是浮點(diǎn)型兩大特點(diǎn)算術(shù)運(yùn)算符運(yùn)算符相關(guān)說(shuō)明+加:兩個(gè)對(duì)象相加-減:得到負(fù)數(shù)或一個(gè)數(shù)減去另一個(gè)數(shù)*乘:兩個(gè)數(shù)相乘或是返回一個(gè)被重復(fù)若干次的字符串/除:x除以y%取余:返回除法的余數(shù)**冪:返回x的y次冪
//取整除:返回商的整數(shù)部分賦值運(yùn)算符賦值運(yùn)算符只有一個(gè),即=,它的作用是把等號(hào)右邊的值賦給左邊。
例如,x=1為多個(gè)變量賦同一個(gè)值:x=y=z=1將多個(gè)值賦值給多個(gè)變量
a,b=1,2
復(fù)合賦值運(yùn)算符運(yùn)算符相關(guān)說(shuō)明實(shí)例+=加法賦值運(yùn)算符c+=a等效于c=c+a
-=減法賦值運(yùn)算符
c-=a等效于c=c-a
*=乘法賦值運(yùn)算符
c*=a等效于c=c*a
/=除法賦值運(yùn)算符
c/=a等效于c=c/a
%=取模賦值運(yùn)算符
c%=a等效于c=c%a
**=冪賦值運(yùn)算符
c**=a等效于c=c**a
//=取整除賦值運(yùn)算符
c//=a等效于c=c//a
比較運(yùn)算符運(yùn)算符相關(guān)說(shuō)明==檢查兩個(gè)操作數(shù)的值是否相等!=檢查兩個(gè)操作數(shù)的值是否不相等>檢查左操作數(shù)的值是否大于右操作數(shù)的值<檢查左操作數(shù)的值是都小于右操作數(shù)的值>=檢查左操作數(shù)的值是否大于或等于右操作數(shù)的值<=檢查左操作數(shù)的值是否小于或等于右操作數(shù)的值邏輯運(yùn)算符運(yùn)算符邏輯表達(dá)式描述and
xandy
布爾“與”,如果x為False,xandy返回False,否則它返回y的計(jì)算值or
xory
布爾“或”,如果x為T(mén)rue,它返回True,否則返回y的計(jì)算值not
notx
布爾“非”,如果x為T(mén)rue,返回False,如果x為False,它返回True
成員運(yùn)算符運(yùn)算符描述實(shí)例in如果在指定的序列中找到值返回True,否則返回False。x在y序列中,如果x在y序列中返回True。notin如果在指定的序列中沒(méi)有找到值返回True,否則返回False。x不在y序列中,如果x不在y序列中返回True。03
Python常用語(yǔ)句第三章Python程序設(shè)計(jì)基礎(chǔ)判斷語(yǔ)句紅燈停,綠燈行現(xiàn)實(shí)生活中,過(guò)馬路要看紅綠燈,如果是綠燈才能過(guò)馬路,否則需要停止等待。if語(yǔ)句if判斷條件:
滿足條件時(shí)要做的事情1…
滿足條件時(shí)要做的事情2…...(省略)...
滿足條件時(shí)要做的事情n…if語(yǔ)句是最簡(jiǎn)單的條件判斷語(yǔ)句,它可以控制程序的執(zhí)行流程。
if-else語(yǔ)句if條件:
滿足條件時(shí)要做的事情1
滿足條件時(shí)要做的事情2...(省略)...
滿足條件時(shí)要做的事情3else:
不滿足條件時(shí)要做的事情1
不滿足條件時(shí)要做的事情2...(省略)...
不滿足條件時(shí)要做的事情nif-elif語(yǔ)句if判斷條件1:
滿足條件1時(shí)要做的事情elif判斷條件2:
滿足條件2時(shí)要做的事情elif判斷條件3:
滿足條件3時(shí)要做的事情當(dāng)滿足判斷條件1時(shí),執(zhí)行滿足條件1時(shí)要做的事情,然后整個(gè)if結(jié)束;如果不滿足判斷條件1,那么判斷是都滿足條件2,如果滿足判斷條件2,就執(zhí)行滿足條件2時(shí)要做的事情,然后整個(gè)if結(jié)束當(dāng)不滿足判斷條件1和判斷條件2,如果滿足判斷條件3,則執(zhí)行滿足判斷條件3時(shí)要做的事情,然后整個(gè)if結(jié)束。if-elif判斷語(yǔ)句,該語(yǔ)句可以判斷多種情況。
if嵌套購(gòu)票檢票上車(chē)安檢if嵌套指的是在if或者if-else語(yǔ)句里面包含if或者if-else。if嵌套if條件1:
滿足條件1做的事情1
滿足條件1做的事情2...(省略)...if條件2:
滿足條件2做的事情1
滿足條件2做的事情2...(省略)...循環(huán)語(yǔ)句跑道跑道是一圈一圈的,可以看做是循環(huán)的while循環(huán)while條件表達(dá)式:
條件滿足,執(zhí)行循環(huán)語(yǔ)句while循環(huán)語(yǔ)法格式條件表達(dá)式永遠(yuǎn)為true,無(wú)限循環(huán)。for循環(huán)Python中的for循環(huán)可以遍歷任何序列的項(xiàng)目:for變量in序列:
循環(huán)語(yǔ)句語(yǔ)法格式foriin[0,1,2]:
print(i)例如:for循環(huán)考慮到我們使用的數(shù)值范圍經(jīng)常變化,Python提供了一個(gè)內(nèi)置range()函數(shù),它可以生成一個(gè)數(shù)字序列。語(yǔ)法格式foriinrange(start,end):
執(zhí)行循環(huán)語(yǔ)句程序在執(zhí)行for循環(huán)時(shí):循環(huán)計(jì)時(shí)器變量i被設(shè)置為start;執(zhí)行循環(huán)語(yǔ)句;i遞增每設(shè)置一個(gè)新值都會(huì)執(zhí)行一次循環(huán)當(dāng)i等于end時(shí),循環(huán)結(jié)束。range(n)—(0,n-1)while嵌套while嵌套指的是while循環(huán)里面還包含while循環(huán)。
while條件1:
條件1滿足時(shí),做的事情1
條件1滿足時(shí),做的事情2
條件1滿足時(shí),做的事情3...(省略)...while條件2:
條件2滿足時(shí),做的事情1
條件2滿足時(shí),做的事情2
條件2滿足時(shí),做的事情3...(省略)...break語(yǔ)句break語(yǔ)句用于結(jié)束整個(gè)循環(huán)。
i=1foriinrange(5):
i+=1print("-------")ifi==3:breakprint(i)foriinrange(5):print("-------")print(i)這兩個(gè)結(jié)果有什么不同?continue語(yǔ)句continue的作用是用來(lái)結(jié)束本次循環(huán),緊接著執(zhí)行下一次的循環(huán)。
i=1foriinrange(5):i+=1print("-------")ifi==3:continueprint(i)foriinrange(5):print("-------")print(i)這兩個(gè)結(jié)果有什么不同?pass語(yǔ)句pass是空語(yǔ)句,它是為了保持程序結(jié)構(gòu)完整性。forletterin'Runoob':ifletter=='o':passprint('執(zhí)行pass塊')print('當(dāng)前字母:',letter)print("Goodbye!")pass語(yǔ)句不做任何事情,用作占位。else語(yǔ)句else語(yǔ)句可以和循環(huán)語(yǔ)句結(jié)合使用,并且else語(yǔ)句旨在循環(huán)完成后執(zhí)行。
count=0
whilecount<5:
print(count,"islessthan5")
count=count+1
else:
print(count,"isnotlessthan5")運(yùn)行結(jié)果是什么?04字符串、列表、元組和字典第三章Python程序設(shè)計(jì)基礎(chǔ)什么是字符串字符串是一種表示文本數(shù)據(jù)的類型?!產(chǎn)’、'123'使用單引號(hào)使用雙引號(hào)使用三引號(hào)“a”、"123""""Hello"""轉(zhuǎn)義字符>>>'let'sgo!go'File"<input>",line1'let'sgo!go'^SyntaxError:invalidsyntax看下面的代碼:對(duì)于單引號(hào)或者雙引號(hào)這些特殊的符號(hào),我們可以對(duì)他們進(jìn)行轉(zhuǎn)義。例如,對(duì)字符串中的單引號(hào)進(jìn)行轉(zhuǎn)義:>>>'let\'sgo!go'"let'sgo!go"字符串的輸出比如有以下代碼:print(“我今年10歲”)print(“我今年11歲”)print("我今年12歲")...當(dāng)然有??梢酝ㄟ^(guò)字符串格式化來(lái)完成。大家試想一下,上述代碼多次輸出"我今年xx歲",是否有一種簡(jiǎn)化程序的方式呢?字符串的輸入Python3提供了input()函數(shù)從標(biāo)準(zhǔn)輸入讀取一行文本,默認(rèn)的標(biāo)準(zhǔn)輸入是鍵盤(pán)。input可以接收一個(gè)Python表達(dá)式作為輸入,并將運(yùn)算結(jié)果返回。username=input("請(qǐng)輸入用戶名")
print(username)字符串的存儲(chǔ)方式字符串中的每個(gè)字符都對(duì)應(yīng)一個(gè)下標(biāo),下標(biāo)編號(hào)是從0開(kāi)始的。什么是切片切片的語(yǔ)法格式如下所示:[起始:結(jié)束:步長(zhǎng)]切片選取的區(qū)間屬于左閉右開(kāi)型,即從"起始"位開(kāi)始,到"結(jié)束"位的前一位結(jié)束(不包含結(jié)束位本身)使用切片截取字符串假設(shè)有字符串name=“abcdef”,則:name[0:3]name[3:5]name[1:-1]name[2:])name[::-2]abcdebcdecdeffdb假設(shè)一個(gè)班有100個(gè)學(xué)生,如果每個(gè)變量存放一個(gè)學(xué)生的姓名,是不是很麻煩?如果有一千個(gè)學(xué)生甚至更多,那該怎么辦呢?列表概述列表概述列表概述列表是Python中的一種數(shù)據(jù)結(jié)構(gòu),它可以存儲(chǔ)不同類型的數(shù)據(jù)。例如:A=[1,'xiaoWang','a',[2,'b']]列表概述列表索引是從0開(kāi)始的,我們可以通過(guò)下標(biāo)索引的方式來(lái)訪問(wèn)列表中的值。
A=['xiaoWang','xiaoZhang','xiaoHua']
print(A[0])
print(A[1])列表的循環(huán)遍歷1.使用for循環(huán)遍歷列表namesList=['xiaoWang','xiaoZhang','xiaoHua']fornameinnamesList:print(name)列表的循環(huán)遍歷2.使用while循環(huán)遍歷列表namesList=[‘xiaoWang’,‘xiaoZhang’,‘xiaoHua’]length=len(namesList)i=0whilei<length:print(namesList[i])
i+=1在列表中增加元素在列表中增加元素的方式有多種,具體如下:通過(guò)append可以向列表添加元素通過(guò)extend可以將另一個(gè)列表的元素添加到列表中。通過(guò)insert在指定位置index前插入元素object。在列表中查找元素在列表中查找元素的方法包括:in(存在),如果存在那么結(jié)果為true,否則為false。notin(不存在),如果不存在那么結(jié)果為true,否則false。在列表中修改元素列表元素的修改,也是通過(guò)下標(biāo)來(lái)實(shí)現(xiàn)的。A=['xiaoWang','xiaoZhang','xiaoHua']A[1]=‘xiaoLu’在列表中刪除元素列表元素的常用刪除方法有三種,具體如下:del:根據(jù)下標(biāo)進(jìn)行刪除,delA[1]pop:刪除最后一個(gè)元素,A.pop()remove:根據(jù)元素的值進(jìn)行刪除,A.remove('xiaoWang')列表的排序可以通過(guò)下面兩個(gè)方法實(shí)現(xiàn):sort方法:列表的元素按照特定順序排列。默認(rèn)由小到大,設(shè)置reverse=True由大到小reverse方法:將列表逆置。列表的排序操作什么是元組Python的元組與列表類似,不同之處在于元組的元素不能修改。元組使用小括號(hào),列表使用方括號(hào)。tup1=('physics','chemistry',1997,2000)tup2=(1,2,3,4,5)tup3="a","b","c","d"元組的相關(guān)操作1.訪問(wèn)元組tuple=('hello',100,4.5)print(tuple[0])print(tuple[1])print(tuple[2])元組可以使用下標(biāo)索引來(lái)訪問(wèn)元組中的值
元組的相關(guān)操作2.元組不允許修改元組tup1=(12,34.56);tup2=('abc','xyz')#以下修改元組元素操作是非法的。tup1[0]=100元組的相關(guān)操作3.元組的遍歷a_turple=(1,2,3,4,5)fornumina_turple:print(num,end="")元組的相關(guān)操作4.元組的內(nèi)置函數(shù)方法描述len(tuple)
計(jì)算元組元素個(gè)數(shù)max(tuple)
返回元組中元素最大值min(tuple)
返回元組中元素最小值tuple(seq)
將列表轉(zhuǎn)為元組字典介紹字典是一種存儲(chǔ)數(shù)據(jù)的容器,它和列表一樣,都可以存儲(chǔ)多個(gè)數(shù)據(jù)。info={'name':'班長(zhǎng)','sex':'f','address':'北京'}每個(gè)元素都是由兩部分組成的,分別是鍵和值?!畁ame’為鍵,‘班長(zhǎng)’為值。
字典的常見(jiàn)操作1.根據(jù)鍵訪問(wèn)值info={'name':'班長(zhǎng)','id':100,'sex':'f','address':’北京'}print(info['name'])print(info['address'])注意:如果使用的是不存在的鍵,則程序會(huì)報(bào)錯(cuò)。字典的常見(jiàn)操作如果我們不確定字典中是否存在某個(gè)鍵而又想獲取其值時(shí),可以使用get方法,還可以設(shè)置默認(rèn)值。
info={‘name’:‘班長(zhǎng)’,‘id’:100,‘sex’:‘f’,‘a(chǎn)ddress’:‘北京’}
age=info.get(‘a(chǎn)ge’)
print(age)#‘a(chǎn)ge’鍵不存在,所以age為None
print(type(age))
age=info.get(‘a(chǎn)ge’,18)#若info不存在‘a(chǎn)ge’,返回默認(rèn)值18
print(age)字典的常見(jiàn)操作2.修改字典的元素info={‘name’:‘班長(zhǎng)’,‘id’:100,‘sex’:‘f’,‘a(chǎn)ddress’:‘北京’}
newId=input('請(qǐng)輸入新的學(xué)號(hào)')info['id']=int(newId)print('修改之后的id為:%d'%info['id'])字典的常見(jiàn)操作3.添加字典元素info={‘name’:‘班長(zhǎng)’,‘id’:100,‘sex’:‘f’,‘a(chǎn)ddress’:‘北京’}
newId=input(‘請(qǐng)輸入新的學(xué)號(hào)’)info[‘id’]=newIdprint(info)05函數(shù)第三章Python程序設(shè)計(jì)基礎(chǔ)什么是函數(shù)?函數(shù)是組織好的,可重復(fù)使用的,用來(lái)實(shí)現(xiàn)單一或相關(guān)聯(lián)功能的代碼段,它能夠提高應(yīng)用的模塊性和代碼的重復(fù)利用率。print(“*”)print(“***”)print("*****")如果在一個(gè)程序的不同地方需要輸出這個(gè)圖形,每次使用print語(yǔ)言輸出的做法顯然不可取。函數(shù)的定義和調(diào)用Python定義函數(shù)使用def關(guān)鍵字,格式如下:def函數(shù)名(參數(shù)列表):
函數(shù)體defprintInfo():print('------------------------------------')print('生命苦短,我用Python')print('------------------------------------')這是一個(gè)自定義的函數(shù):函數(shù)的定義和調(diào)用定義了函數(shù)之后,想要讓這些代碼能夠執(zhí)行,需要調(diào)用函數(shù)。通過(guò)“函數(shù)名()”
即可完成調(diào)用。#調(diào)用剛才定義的函數(shù)printInfo()函數(shù)的返回值先看一段代碼:
defadd2num(): c=11+22 print(c)這個(gè)函數(shù)計(jì)算的只是固定的兩個(gè)數(shù),沒(méi)有什么意義。函數(shù)的返回值如果希望定義的函數(shù),可以計(jì)算任何兩個(gè)數(shù)和,我們?cè)诙x函數(shù)的時(shí)候,讓函數(shù)接收數(shù)據(jù),這就是函數(shù)的參數(shù)。defadd2num(a,b):c=a+b
print(c)
a和b就是函數(shù)的參數(shù),調(diào)用的時(shí)候,可以傳入任何兩個(gè)數(shù)。add2num(11,22)
函數(shù)的返回值參數(shù)調(diào)用過(guò)程函數(shù)的返回值函數(shù)的返回值是使用return語(yǔ)句來(lái)完成的。
defadd2num(a,b):c=a+b
returnc函數(shù)add2num中包含return,意味著這個(gè)函數(shù)有一個(gè)返回值,其返回值就是a和b相加的結(jié)果。06異常處理第三章Python程序設(shè)計(jì)基礎(chǔ)異常介紹在Python中,程序在執(zhí)行的過(guò)程中產(chǎn)生的錯(cuò)誤稱為異常,比如列表索引越界、打開(kāi)不存在的文件等。print(a)open("123.txt","r")這兩行代碼會(huì)報(bào)錯(cuò)嗎?異常類所有異常都是基類Exception的成員,它們都定義在exceptions模塊中。如果這個(gè)異常對(duì)象沒(méi)有進(jìn)行處理和捕捉,程序就會(huì)用所謂的回溯(traceback,一種錯(cuò)誤信息)終止執(zhí)行,這些信息包括錯(cuò)誤的名稱(例如NameError)、原因和錯(cuò)誤發(fā)生的行號(hào)。
捕獲簡(jiǎn)單異常try-except語(yǔ)句定義了監(jiān)控異常的一段代碼,并提供了處理異常的機(jī)制。try: #語(yǔ)句塊except: #異常處理代碼捕獲多個(gè)異常處理多個(gè)異常的try-except語(yǔ)句格式如下:
try:
#語(yǔ)句塊except異常名稱1:#異常處理代碼1except異常名稱2:#異常處理代碼
…捕獲異常的描述信息當(dāng)出現(xiàn)多種異常時(shí),為了區(qū)分不同的錯(cuò)誤信息,可以使用as獲取系統(tǒng)反饋的信息。#獲取描述信息except(ZeroDivisionError,ValueError)asresult:print("捕捉到異常:%s"%result)捕獲所有的異常當(dāng)程序中出現(xiàn)大量異常時(shí),捕獲這些異常是非常麻煩的。這時(shí),我們可以在except子句中不指明異常的類型,這樣,不管發(fā)生何種類型的異常,都會(huì)執(zhí)行except里面的處理代碼。沒(méi)有捕獲到異常(else)如果try語(yǔ)句沒(méi)有捕獲到任何的錯(cuò)誤信息,就不再執(zhí)行任何except語(yǔ)句,而是會(huì)執(zhí)行else語(yǔ)句。
終止行為(finally)在程序中,無(wú)論是否捕捉到異常,都必須要執(zhí)行某件事情,例如關(guān)閉文件、釋放鎖等,這時(shí)可以提供finally語(yǔ)句處理。通常情況下,finally用于釋放資源。07Python模塊第三章Python程序設(shè)計(jì)基礎(chǔ)模塊的基本使用在Python中用關(guān)鍵字import來(lái)引入某個(gè)模塊,比如要引用模塊math,就可以在文件最開(kāi)始的地方用importmath來(lái)引入?;靖袷饺缦拢篿mportmodule1,mudule2...模塊的基本使用如果要調(diào)用模塊中的函數(shù),其格式如下:模塊名.函數(shù)名在調(diào)用模塊中的函數(shù)時(shí),之所以要加上模塊名,是因?yàn)槎鄠€(gè)模塊中,可能存在名稱相同的函數(shù),如果只是通過(guò)函數(shù)名來(lái)調(diào)用,解釋器無(wú)法知道到底要調(diào)用哪個(gè)函數(shù)。模塊的基本使用from模塊名import函數(shù)名1,函數(shù)名2....導(dǎo)入某個(gè)模塊中的函數(shù),格式如下:導(dǎo)入某個(gè)模塊中的所有函數(shù),格式如下:from模塊名import*模塊的基本使用Python解析器搜索模塊位置的搜索順序:(1)搜索當(dāng)前目錄、PYTHONPATH系統(tǒng)環(huán)境變量(2)如果都找不到,會(huì)繼續(xù)查看默認(rèn)路徑。(3)搜索路徑被存儲(chǔ)在sys模塊中的path變量
模塊的基本使用importsysprint(sys.path)下列命令可以輸出搜索路徑:sys.path輸出是一個(gè)列表;第一項(xiàng)輸出的是當(dāng)前目錄,亦即我們執(zhí)行python解釋器的目錄(對(duì)于腳本的話就是運(yùn)行的腳本所在的目錄)。08面向?qū)ο蟮谌翽ython程序設(shè)計(jì)基礎(chǔ)面向?qū)ο蟪绦騿T“面向?qū)ο蟆痹诂F(xiàn)實(shí)世界中存在各種不同形態(tài)的事物,這些事物之間存在著各種各樣的聯(lián)系。在程序中使用對(duì)象來(lái)映射現(xiàn)實(shí)中的事物,使用對(duì)象間的關(guān)系來(lái)描述事物之間的聯(lián)系,這種思想就是面向?qū)ο蟆n惡蛯?duì)象的關(guān)系面向?qū)ο缶幊逃袃蓚€(gè)非常重要的概念:類和對(duì)象。對(duì)象是面向?qū)ο缶幊痰暮诵?。具有相似特征和行為的事物的集合統(tǒng)稱為類
對(duì)象是根據(jù)類創(chuàng)建的,一個(gè)類可以對(duì)應(yīng)多個(gè)對(duì)象。類和對(duì)象的關(guān)系可以把玩具模型看作一個(gè)類把每個(gè)玩具看作一個(gè)對(duì)象類的定義類是由3部分組成的:類的名稱:類名,首字母必須大寫(xiě),比如Person。類的屬性:一組數(shù)據(jù),比如性別。類的方法:允許進(jìn)行操作的方法,比如說(shuō)話。類的定義使用class關(guān)鍵字來(lái)聲明一個(gè)類,基本格式如下:
class類名:
類的屬性
類的方法語(yǔ)法格式根據(jù)類創(chuàng)建對(duì)象根據(jù)類創(chuàng)建對(duì)象的語(yǔ)法格式如下:
對(duì)象名=類名()要想動(dòng)態(tài)的給對(duì)象添加屬性,可以通過(guò)如下方式:對(duì)象名.新的屬性名=值構(gòu)造方法構(gòu)造方法指的是__init__方法。當(dāng)創(chuàng)建類的實(shí)例的時(shí)候,系統(tǒng)會(huì)自動(dòng)調(diào)用構(gòu)造方法,從而實(shí)現(xiàn)對(duì)類進(jìn)行初始化的操作。構(gòu)造方法classCar: def__init__(self,color):self.color=color deftoot(self):
print("%s的車(chē)在鳴笛..."%(self.color))
bmw=Car("雪山白")析構(gòu)方法當(dāng)刪除一個(gè)對(duì)象來(lái)釋放類所占用資源的時(shí)候,Python解釋器默認(rèn)會(huì)調(diào)用另外一個(gè)方法,這個(gè)方法就是__del__()方法。__del__方法被稱為析構(gòu)方法。classPerson:def__init__(self,name,age):=nameself.age=agelaowang=Person(“老王”,30)laowang.age=300print(laowang.age)封裝人的年齡可以隨便設(shè)置,顯然不可行。封裝為了保護(hù)類里面的屬性,可以采用如下方式解決:1.
把屬性定義為私有屬性,即在屬性名的前面加上兩個(gè)下劃線;2.
添加用于設(shè)置或獲取屬性值的兩個(gè)方法供外界調(diào)用。單繼承在現(xiàn)實(shí)生活中,繼承一般指的是子女繼承父輩的財(cái)產(chǎn)。在程序中,繼承描述的是事物之間的所屬關(guān)系。單繼承類的繼承是指在一個(gè)現(xiàn)有類的基礎(chǔ)上構(gòu)建一個(gè)新的類,構(gòu)建出來(lái)的新類被稱作子類。
波斯貓和巴厘貓都繼承自貓,而沙皮狗和斑點(diǎn)狗都繼承狗。
單繼承Python程序中,繼承使用如下語(yǔ)法格式標(biāo)注:class子類名(父類名):假設(shè)有一個(gè)類為A,A派生出來(lái)了子類B,示例如下:classB(A):classA(object):默認(rèn)是繼承自object的
多繼承現(xiàn)實(shí)生活中,一個(gè)派生類往往會(huì)有多個(gè)基類。比如沙發(fā)床是沙發(fā)和床的功能的組合,這都是多重繼承的體現(xiàn)。多繼承Python支持多繼承,多繼承就是子類擁有多個(gè)父類,并且具有它們共同的特征,即子類繼承了父類的方法和屬性。水鳥(niǎo)擁有了魚(yú)和鳥(niǎo)的特征多繼承多繼承可以看做是單繼承的擴(kuò)展,語(yǔ)法格式如下:class子類名(父類1,父類2…):如果子類繼承的多個(gè)父類間是平行的關(guān)系,子類先繼承的哪個(gè)類就會(huì)調(diào)用哪個(gè)類的方法。Hello您好不同國(guó)家的人,打招呼的方式是不同的。
多態(tài)多態(tài)classA(object):deftest(self):print(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《GB-T 39941-2021木家具生產(chǎn)過(guò)程質(zhì)量安全狀態(tài)監(jiān)測(cè)與評(píng)價(jià)方法》專題研究報(bào)告
- 《GBT 13698-2015 二氧化鈾芯塊中總氫的測(cè)定》專題研究報(bào)告
- 《寵物鑒賞》課件-寵物魚(yú)的簡(jiǎn)介
- 2026年河南工業(yè)和信息化職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試題庫(kù)帶答案詳解
- 運(yùn)動(dòng)健康管理指導(dǎo)協(xié)議
- 鐘表行業(yè)鐘表維修高級(jí)技師崗位招聘考試試卷及答案
- 2025年高新區(qū)預(yù)防接種合格證培訓(xùn)考核試題及答案
- 2025年常州市城管協(xié)管人員招聘筆試備考試題及答案解析
- 2025年刺繡機(jī)電控項(xiàng)目發(fā)展計(jì)劃
- 高鉀食物的選擇與益處
- 2025中央廣播電視總臺(tái)招聘144人筆試歷年題庫(kù)附答案解析
- 2026年瓦工職業(yè)技能鑒定考試題庫(kù)及答案
- 2025年云南省人民檢察院聘用制書(shū)記員招聘(22人)筆試考試參考題庫(kù)及答案解析
- 胃腸外科圍手術(shù)期護(hù)理要點(diǎn)
- 竣工資料歸檔與管理流程
- 購(gòu)車(chē)合伙協(xié)議書(shū)模板
- 二手摩托車(chē)買(mǎi)賣(mài)合同范本
- 2026年山西省財(cái)政稅務(wù)??茖W(xué)校單招職業(yè)傾向性測(cè)試題庫(kù)附答案
- 2025年阿里輔警協(xié)警招聘考試備考題庫(kù)及答案1套
- 黃寶康藥用植物學(xué)課件
- 2025年天車(chē)工(初級(jí))考試試卷及模擬題庫(kù)及答案
評(píng)論
0/150
提交評(píng)論