Python數(shù)據(jù)分析與可視化(第2版) 課件第2章 Python基礎(chǔ)_第1頁(yè)
Python數(shù)據(jù)分析與可視化(第2版) 課件第2章 Python基礎(chǔ)_第2頁(yè)
Python數(shù)據(jù)分析與可視化(第2版) 課件第2章 Python基礎(chǔ)_第3頁(yè)
Python數(shù)據(jù)分析與可視化(第2版) 課件第2章 Python基礎(chǔ)_第4頁(yè)
Python數(shù)據(jù)分析與可視化(第2版) 課件第2章 Python基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩299頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第2章Python基礎(chǔ)2-1Python基本操作Python語(yǔ)言有著簡(jiǎn)潔和清晰的特點(diǎn),能夠讓學(xué)習(xí)著拜托復(fù)雜的語(yǔ)法,從而專注于問(wèn)題的解決。同時(shí),Python語(yǔ)言還有大量的第三方庫(kù),對(duì)數(shù)據(jù)分析和可視化幫助很大。本章將重點(diǎn)介紹Python的基礎(chǔ)知識(shí),包括Python基本操作、選擇與循環(huán)結(jié)構(gòu)、列表操作、字典操作、函數(shù)定義與調(diào)用等。第2章知識(shí)圖譜在用計(jì)算機(jī)求解問(wèn)題的過(guò)程中,常常會(huì)用符號(hào)化的方法記錄客觀事實(shí),這些符號(hào)化的表示就是數(shù)據(jù)。計(jì)算中存在著數(shù)據(jù)的輸入與輸出,數(shù)據(jù)不同類型的轉(zhuǎn)換以及數(shù)據(jù)之間的各種運(yùn)算,這些都是程序設(shè)計(jì)語(yǔ)言的基本操作,通過(guò)這些基本操作可以實(shí)現(xiàn)一些簡(jiǎn)單的功能。在Python中,有些功能符號(hào)難以在輸出函數(shù)直接輸入,比如單引號(hào)和雙引號(hào),因?yàn)镻ython會(huì)把單引號(hào)和雙引號(hào)里面的字符當(dāng)做字符串進(jìn)行處理,所以單引號(hào)和雙引號(hào)僅僅是字符串輸入的默認(rèn)符號(hào)。如果想要輸出單引號(hào)和雙引號(hào),就不能直接輸入,而是要用轉(zhuǎn)義符。一、變量變量主要類型:一、變量變量類型表示方法示例字符串class'str'"a"、'Python'整形數(shù)class'int'0、100浮點(diǎn)數(shù)class'float'5.02、10.00布爾值class'bool'True、False示例代碼如下:i=100j="a"k='Python'。m=5>4一、變量【結(jié)果分析】把數(shù)值100賦值給i,把字符a賦值變量j,把字符串Python賦值給變量k,把布爾值True賦值給變量m。在Python中,有些功能符號(hào)難以在輸出函數(shù)直接輸入,比如單引號(hào)和雙引號(hào),因?yàn)镻ython會(huì)把單引號(hào)和雙引號(hào)里面的字符當(dāng)做字符串進(jìn)行處理,所以單引號(hào)和雙引號(hào)僅僅是字符串輸入的默認(rèn)符號(hào)。如果想要輸出單引號(hào)和雙引號(hào),就不能直接輸入,而是要用轉(zhuǎn)義符。二、轉(zhuǎn)義符轉(zhuǎn)義符是指具有特定的含義的符號(hào),不同于字符原有的意義,所以稱為轉(zhuǎn)義符。轉(zhuǎn)義符一般用“\”開(kāi)頭,后面跟一個(gè)或幾個(gè)符號(hào),表示不同的含義。如\n并不會(huì)真的輸出\n,而是輸出一個(gè)換行符。二、轉(zhuǎn)義符常用的轉(zhuǎn)義符及其含義二、轉(zhuǎn)義符\n換行符\t制表符Tab\\反斜杠\\'單引號(hào)'\"雙引號(hào)"一般來(lái)說(shuō),程序都會(huì)有輸入和輸出,這樣用戶才能與計(jì)算機(jī)進(jìn)行交互。在Python中可以使用input函數(shù)進(jìn)行輸入,而使用print函數(shù)進(jìn)行輸出。三、輸出與輸入1.輸入函數(shù)input是Python獲取輸入信息的函數(shù),運(yùn)行函數(shù)后,可以獲取鍵盤中輸入信息,信息默認(rèn)為字符串類型。輸入函數(shù)input的一般格式為:input([提示字符串])其中,中括號(hào)中的“提示字符串”是可選項(xiàng)。三、輸出與輸入示例代碼如下:name=input("Pleaseinputyourname:")三、輸出與輸入【結(jié)果分析】name變量就是字符型變量。在Python中,如果想要將輸入的字符串類型轉(zhuǎn)換為數(shù)值型,還可以通過(guò)int來(lái)實(shí)現(xiàn),其一般方法為:int(input([提示字符串]))其中,int函數(shù)表示將字符串轉(zhuǎn)換為整型。三、輸出與輸入示例代碼如下:age=int(input("Pleaseinputyourage:"))三、輸出與輸入【結(jié)果分析】age變量就是數(shù)值型變量。2.輸出函數(shù)(1)print函數(shù)print函數(shù)是Python的基本輸出函數(shù),print函數(shù)可以將指定的消息打印到屏幕上。該消息可以是字符串,也可以是任何其他對(duì)象,該對(duì)象在打印到屏幕之前會(huì)被轉(zhuǎn)換為字符串。三、輸出與輸入print函數(shù)有著非常靈活的使用方法,input的一般格式為:print(str,[end='\n'])其中,參數(shù)str表示要輸出的內(nèi)容,str是可以是字符串也可以是變量。參數(shù)end表示結(jié)束符,默認(rèn)為換行符(\n),即利用print進(jìn)行輸出默認(rèn)帶有換行符,如果不想以換行符結(jié)束輸出,可以使用end='\t'(Tab鍵)、或end=''(空格)等結(jié)束輸出。三、輸出與輸入示例代碼如下:print("helloworld!")str="helloworld!"print(str)三、輸出與輸入三、輸出與輸入print還有一種輸出方式,就是字符串后面再接變量。三、輸出與輸入示例代碼如下:a=20print("age=",a)三、輸出與輸入2.輸出函數(shù)(2)格式化輸出在很多應(yīng)用場(chǎng)景中,對(duì)輸出是有嚴(yán)格要求的,如在某些報(bào)表統(tǒng)計(jì)中,需要控制小數(shù)點(diǎn)位數(shù),此時(shí)就不能直接輸出原始數(shù)據(jù),而是要對(duì)數(shù)據(jù)的格式進(jìn)行控制,這就是格式化輸出。格式化輸出除了可以控制輸出的格式之外,還有一個(gè)好處就是可以只通過(guò)一個(gè)print函數(shù)輸出多個(gè)變量。三、輸出與輸入2.輸出函數(shù)在Python中,格式化輸出時(shí),需要使用%分隔字符串和輸出變量,一般格式為:字符串%(輸出變量1,輸出變量2,…)其中,字符串有兩個(gè)部分組成,一個(gè)是普通字符串,另一個(gè)是格式說(shuō)明符。普通字符串可以直接輸出,而格式說(shuō)明符是以%開(kāi)頭,并且決定了輸出變量的格式。三、輸出與輸入格式說(shuō)明符的具體用法三、輸出與輸入格式說(shuō)明符格式化結(jié)果%%%%s字符串%i或%d整數(shù)%f浮點(diǎn)數(shù)算術(shù)運(yùn)算可以對(duì)數(shù)據(jù)進(jìn)行各種算術(shù)操作,算術(shù)操作可以用一些符號(hào)來(lái)表示,這些符號(hào)被稱為算術(shù)運(yùn)算符,“先乘除后加減”就反映了乘除運(yùn)算的優(yōu)先級(jí)比加減運(yùn)算高。四、算術(shù)運(yùn)算符Python的算術(shù)運(yùn)算符有:+(加)、-(減)、*(乘)、/(除)、//(除整)、%(求余)和**(乘方)。“/”表示除法,如:7/2,結(jié)果為3.5?!?/”表示兩個(gè)數(shù)相除后得到的商的整數(shù)部分,如:7//2,結(jié)果為3?!?”表示兩個(gè)數(shù)相除后得到的余數(shù),如:7%2,返回1?!?*”表示乘方,如:7**2,返回49。四、算術(shù)運(yùn)算符示例代碼如下:print("7除以2的結(jié)果為:",7/2)print("7除以2的商的整數(shù)部分為:",7//2)print("7除以2的余數(shù)為:",7%2)print("7的平方為:",7**2)四、算術(shù)運(yùn)算符四、算術(shù)運(yùn)算符任務(wù)實(shí)訓(xùn)2-1:通過(guò)輸入提示符“請(qǐng)輸入姓名”和“請(qǐng)輸入年齡”,利用鍵盤輸入“王飛”和20,并將兩個(gè)輸入的值賦值給兩個(gè)變量“name”和“age”,再利用type函數(shù)輸出兩個(gè)變量的類型。任務(wù)實(shí)訓(xùn)2-1具體代碼如下:name=input("請(qǐng)輸入姓名:")age=int(input("請(qǐng)輸入年齡:"))print("姓名=",name)print("name變量的類型為:",type(name))print("年齡=",age)print("age變量的類型為:",type(age))任務(wù)實(shí)訓(xùn)2-1【結(jié)果分析】class'str'表示字符串類型,class'int'表示整型數(shù)值。任務(wù)實(shí)訓(xùn)2-2:導(dǎo)入math模塊,利用輸出math.pi圓周率并賦值給變量p,輸出變量p的類型,再利用格式化格式化輸出圓周率的2位小數(shù)和5位小數(shù)。任務(wù)實(shí)訓(xùn)2-2任務(wù)實(shí)訓(xùn)2-2具體代碼如下:importmathp=math.piprint("p=",p)print("p的類型為:",type(p))print("保留2位小數(shù)的圓周率的結(jié)果=%.2f\n保留5位小數(shù)的圓周率的結(jié)果=%.5f"%(p,p))任務(wù)實(shí)訓(xùn)2-3:通過(guò)input函數(shù)輸入一個(gè)三位數(shù),輸出這個(gè)三位數(shù)的百位、十位和個(gè)位。任務(wù)實(shí)訓(xùn)2-3具體代碼如下:n=int(input("請(qǐng)輸入一個(gè)三位數(shù):"))n_g=n%10#n除以10后得到的余數(shù)就是個(gè)位n_s=n//10%10#n//10表示n除以10得到的商的整數(shù)部分,即前兩位,再除以10得到的余數(shù)就是十位n_b=n//100#n除以100得到的商的整數(shù)部分就是百位print("百位數(shù)為:%i\n十位數(shù)為:%i\n個(gè)位數(shù)為:%i\n"%(n_b,n_s,n_g))任務(wù)實(shí)訓(xùn)2-3鞏固訓(xùn)練:通過(guò)input函數(shù)輸入一個(gè)四位數(shù),輸出這個(gè)四位數(shù)的千位、百位、十位和個(gè)位。謝謝!第2章Python基礎(chǔ)2.2Python選擇結(jié)構(gòu)選擇結(jié)構(gòu)是指通過(guò)判斷某些特定條件是否滿足來(lái)決定下一步的執(zhí)行流程,是非常重要的控制結(jié)構(gòu)。常見(jiàn)的選擇結(jié)構(gòu)包括單分支選擇結(jié)構(gòu)、雙分支選擇結(jié)構(gòu)、多分支選擇結(jié)構(gòu),選擇結(jié)構(gòu)形式靈活多變,具體使用哪一種還要取決于要實(shí)際的業(yè)務(wù)邏輯。例如輸入一個(gè)整數(shù),判斷其是否為偶數(shù),就可以使用單支選擇結(jié)構(gòu)來(lái)實(shí)現(xiàn)。又如輸入學(xué)生的成績(jī),判斷其是及格還是不及格,就可以使用雙分支選擇結(jié)構(gòu)。再如輸入學(xué)生的成績(jī),判斷成績(jī)等地情況是優(yōu)秀、良好、及格還是不及格,就可以使用多分支選擇結(jié)構(gòu)。一、關(guān)系運(yùn)算符選擇結(jié)構(gòu)中一個(gè)重要環(huán)節(jié)是需要判斷某一個(gè)條件是否成立,這就需要用到關(guān)系表達(dá)式。在Python中,關(guān)系運(yùn)算符常用于兩個(gè)量的比較判斷,而由關(guān)系運(yùn)算符連接起來(lái)的式子就是關(guān)系表達(dá)式,關(guān)系表達(dá)式的結(jié)果為布爾值,即True或False。一、關(guān)系運(yùn)算符Python的關(guān)系運(yùn)算符及其含義關(guān)系運(yùn)算符含義<

小于<=小于等于>

大于>=大于等于示例代碼如下:i,j,k=1,2,3print("%d>%d的結(jié)果為:%s"%(i,j,i>j))print("%d+%d=%d的結(jié)果為:%s"%(i,j,k,i+j==k))print("%d+%d!=%d的結(jié)果為:%s"%(i,k,j,i+k!=j))一、關(guān)系運(yùn)算符一、關(guān)系運(yùn)算符二、單分支選擇結(jié)構(gòu)單分支選擇結(jié)構(gòu)是選擇結(jié)構(gòu)中最簡(jiǎn)單一種形式,即如果滿足條件的情況下就執(zhí)行語(yǔ)句塊,至于不滿足條件情況無(wú)需處理。單分支選擇結(jié)構(gòu)的一般格式是:if表達(dá)式:

語(yǔ)句塊二、單分支選擇結(jié)構(gòu)單分支選擇結(jié)構(gòu)的執(zhí)行過(guò)程:如果關(guān)系表達(dá)式的布爾值為True,則執(zhí)行語(yǔ)句塊,然后再執(zhí)行后續(xù)語(yǔ)句。如果關(guān)系表達(dá)式的布爾值為False,則跳過(guò)單分支選擇結(jié)構(gòu),直接執(zhí)行后續(xù)語(yǔ)句。二、單分支選擇結(jié)構(gòu)單分支選擇結(jié)構(gòu)的注意點(diǎn):(1)在if語(yǔ)句的表達(dá)式后面必須加冒號(hào)。(2)if語(yǔ)句中的語(yǔ)句塊必須向右縮進(jìn),語(yǔ)句塊可以是單行語(yǔ)句,也可以是多行語(yǔ)句,并且語(yǔ)句塊中的語(yǔ)句必須上下對(duì)齊。二、單分支選擇結(jié)構(gòu)示例代碼如下:n=int(input("請(qǐng)輸入一個(gè)數(shù):"))ifn%2==0:print("%d是偶數(shù)"%n)二、單分支選擇結(jié)構(gòu)三、雙分支選擇結(jié)構(gòu)雙分支選擇結(jié)構(gòu)的一般格式是:if表達(dá)式:

語(yǔ)句塊1else:

語(yǔ)句塊2三、雙分支選擇結(jié)構(gòu)雙分支選擇結(jié)構(gòu)的執(zhí)行過(guò)程:如果關(guān)系表達(dá)式的布爾值為True,則執(zhí)行語(yǔ)句塊1,否則就執(zhí)行語(yǔ)句塊2,語(yǔ)句塊1或語(yǔ)句塊2執(zhí)行完成后,再執(zhí)行后續(xù)語(yǔ)句。四、多分支選擇結(jié)構(gòu)多分支選擇結(jié)構(gòu)是選擇結(jié)構(gòu)中最為復(fù)雜的一種形式,多分支選擇結(jié)構(gòu)的一般格式是:if表達(dá)式1:

語(yǔ)句塊1elif表達(dá)式2:語(yǔ)句塊2……elif表達(dá)式m:語(yǔ)句塊melse:語(yǔ)句塊n任務(wù)實(shí)訓(xùn)2-4:通過(guò)input函數(shù)輸入兩個(gè)整數(shù)2和3,并賦值給變量a和b,利用單分支選擇結(jié)構(gòu),先輸出較大數(shù),再輸出較小數(shù)。任務(wù)實(shí)訓(xùn)2-4具體代碼如下:a=int(input("請(qǐng)輸入a="))b=int(input("請(qǐng)輸入b="))ifa<b: a,b=b,aprint("大數(shù)=%d\n小數(shù)=%d"%(a,b))【分析】如果a>b,即a是大數(shù),b是小數(shù),則不會(huì)執(zhí)行單分支選擇結(jié)構(gòu),直接輸出。如果a<b,即a是小數(shù),b是大數(shù),則會(huì)執(zhí)行單分支選擇結(jié)構(gòu),交換a和b的值,再輸出結(jié)果,也可以保證a是大數(shù),b是小數(shù)。任務(wù)實(shí)訓(xùn)2-4任務(wù)實(shí)訓(xùn)2-5:導(dǎo)入random模塊,利用輸出randon.randint(0,100)隨機(jī)生成一個(gè)0到100的整數(shù),并賦值給number,如果number大于等于60,返回“pass”,否則返回“notpass”。任務(wù)實(shí)訓(xùn)2具體代碼如下:importrandomnumber=random.randint(0,100)print("隨機(jī)生成的數(shù)=",number)ifnumber>=60: print("pass")else: print("notpass")任務(wù)實(shí)訓(xùn)2-5任務(wù)實(shí)訓(xùn)2-6:導(dǎo)入random模塊,利用輸出randon.randint(0,100)隨機(jī)生成一個(gè)0到100整數(shù),并賦值給number,根據(jù)number進(jìn)行分類,大于等于85為“優(yōu)秀”,70~84為“良好”,60~69為“及格”,60以下為“不及格”。任務(wù)實(shí)訓(xùn)2-6具體代碼如下:importrandomnumber=random.randint(0,100)print("隨機(jī)生成的數(shù)=",number)ifnumber>=85:print("結(jié)果為:優(yōu)秀")elifnumber>=70:#或elifnumber>=70andnumber<85:print("結(jié)果為:良好")elifnumber>=60:#或elifnumber>=60andnumber<70:print("結(jié)果為:及格")else:print("結(jié)果為:不及格")任務(wù)實(shí)訓(xùn)3鞏固訓(xùn)練:某市出租車的收費(fèi)標(biāo)準(zhǔn)是:3公里以下,收起步費(fèi)10元,超過(guò)3公里不超過(guò)10公里(遠(yuǎn)程標(biāo)準(zhǔn)),每公里2.1元,超過(guò)10公里,每公里3.2元,若行程為11.5公里,則收費(fèi)是多少元?(收費(fèi)結(jié)果保留小數(shù)點(diǎn)1位)。謝謝!第2章Python基礎(chǔ)2.3Python循環(huán)語(yǔ)句在求解問(wèn)題時(shí),有時(shí)會(huì)出現(xiàn)很多重復(fù)性操作,在程序運(yùn)行中就會(huì)反復(fù)執(zhí)行這些重復(fù)語(yǔ)句,這會(huì)極大影響計(jì)算機(jī)運(yùn)行效率。在某些特定條件下重復(fù)執(zhí)行某些操作的控制結(jié)構(gòu)就是循環(huán)結(jié)構(gòu),循環(huán)結(jié)構(gòu)通常由循環(huán)條件和循環(huán)體組成,循環(huán)是程序設(shè)計(jì)的一種重要的方法。Python提供了while和for兩種語(yǔ)句來(lái)實(shí)現(xiàn)循環(huán)結(jié)構(gòu)。一、while循環(huán)語(yǔ)句while循環(huán)結(jié)構(gòu)是通過(guò)判斷循環(huán)條件是否滿足來(lái)決定是否執(zhí)行循環(huán)語(yǔ)句塊的一種循環(huán)結(jié)構(gòu),特點(diǎn)是先判斷循環(huán)條件,再?zèng)Q定是否執(zhí)行循環(huán)語(yǔ)句塊。一、while循環(huán)語(yǔ)句while循環(huán)語(yǔ)句的一般格式是:while表達(dá)式:

語(yǔ)句塊while循環(huán)語(yǔ)句中的表達(dá)式為循環(huán)條件,循環(huán)條件可以是一個(gè)關(guān)系表達(dá)式,其結(jié)果為True或False。如果是True,則執(zhí)行語(yǔ)句塊。一、while循環(huán)語(yǔ)句while循環(huán)語(yǔ)句一般需要注意三點(diǎn):(1)循環(huán)變量設(shè)初始賦值,如i=0。(2)關(guān)系表達(dá)式應(yīng)包含循環(huán)變量,并且其結(jié)果為一個(gè)布爾值,如i<10。(3)語(yǔ)句塊中一般需要包含循環(huán)變量自加過(guò)程,如i=i+1。二、for循環(huán)語(yǔ)句一般形式for循環(huán)語(yǔ)句的一般格式是:for目標(biāo)變量in序列對(duì)象:

語(yǔ)句塊二、for循環(huán)語(yǔ)句一般形式for循環(huán)語(yǔ)句首先需要定義序列對(duì)象,然后將序列對(duì)象的每個(gè)元素賦給目標(biāo)變量,對(duì)每一次賦值都執(zhí)行一遍循環(huán)體語(yǔ)句。當(dāng)序列被遍歷完畢之后,循環(huán)則停止。二、for循環(huán)語(yǔ)句一般形式利用字符串、列表、元組、range函數(shù)等都可以生成序列對(duì)象。列表和元組都是Python重要的數(shù)據(jù)結(jié)構(gòu),列表的操作會(huì)在后續(xù)的內(nèi)容中作詳細(xì)地介紹。二、for循環(huán)語(yǔ)句一般形式這里,只需了解列表和元組的簡(jiǎn)單用法,列表的表示方法是[元素1,元素2,……],元組的表示方法是(元素1,元素2,……)。同時(shí),還可以利用zip函數(shù)生成多變量的序列對(duì)象。二、for循環(huán)語(yǔ)句一般形式1.利用字符串、列表、元組生成序列對(duì)象(1)利用字符串生成序列對(duì)象示例代碼如下:str="Python"foriinstr:print(i,end='\t')二、for循環(huán)語(yǔ)句一般形式1.利用字符串、列表、元組生成序列對(duì)象(1)利用字符串生成序列對(duì)象二、for循環(huán)語(yǔ)句一般形式1.利用字符串、列表、元組生成序列對(duì)象(2)利用列表生成序列對(duì)象示例代碼如下:products=["手機(jī)","電視機(jī)","筆記本電腦"]foriinproducts:print("產(chǎn)品名稱為:",i)二、for循環(huán)語(yǔ)句一般形式1.利用字符串、列表、元組生成序列對(duì)象(2)利用列表生成序列對(duì)象二、for循環(huán)語(yǔ)句一般形式2.利用range函數(shù)生成序列對(duì)象在Python中,range函數(shù)返回的是可迭代的連續(xù)數(shù)字序列,range函數(shù)的一般格式為:range(start,stop,step)其中,start表示初始值,stop表示終止值,并且終止值是不能取到的,step表示步長(zhǎng)。二、for循環(huán)語(yǔ)句一般形式2.利用range函數(shù)生成序列對(duì)象range(n)表示從0開(kāi)始,n-1結(jié)束的可迭代的數(shù)字序列012……n-1,如range(5)表示就是序列01234。如果不希望從0開(kāi)始,也可以加入初始值,如range(1,10)表示123……9,同時(shí)還可以在range函數(shù)中要加入步長(zhǎng),如range(1,10,2)表示13579。二、for循環(huán)語(yǔ)句一般形式2.利用range函數(shù)生成序列對(duì)象示例代碼如下:print("輸出0到9的整數(shù):",end='')foriinrange(10):print(i,end='')print()print("輸出2到9的整數(shù):",end='')forjinrange(2,10):print(j,end='')print()print("輸出3到9中的奇數(shù):",end='')forkinrange(3,10,2):print(k,end='')二、for循環(huán)語(yǔ)句一般形式2.利用range函數(shù)生成序列對(duì)象二、for循環(huán)語(yǔ)句一般形式3.利用zip函數(shù)生成多變量的序列對(duì)象for循環(huán)語(yǔ)句除了可以實(shí)現(xiàn)單個(gè)變量的循環(huán)以外,還可在一些特殊情況下,實(shí)現(xiàn)多個(gè)變量的for循環(huán)。利用zip函數(shù)就可以實(shí)現(xiàn)多個(gè)變量的for循環(huán),zip函數(shù)是通過(guò)并行遍歷的工作方式來(lái)進(jìn)行的。二、for循環(huán)語(yǔ)句一般形式3.利用zip函數(shù)生成多變量的序列對(duì)象示例代碼如下:fori,jinzip(['a','b','c'],[1,2,3]):print("%s=%d"%(i,j))【結(jié)果分析】變量i分別賦值“a”、“b”、“c”,變量j分別賦值1、2、3,第1次循環(huán)時(shí),可以輸出a=1的效果,后面的輸出效果以此類推。二、for循環(huán)語(yǔ)句一般形式3.利用zip函數(shù)生成多變量的序列對(duì)象任務(wù)實(shí)訓(xùn)2-7:某一商品初始價(jià)格為10元,假設(shè)每次打折均打95折,計(jì)算打折幾次后,價(jià)格會(huì)低于7元。通過(guò)while循環(huán),輸出每一次打折后價(jià)格。其中,商品價(jià)格設(shè)變量為price,打折次數(shù)可設(shè)變量為count。任務(wù)實(shí)訓(xùn)2-7具體代碼如下:price=10count=0print("初始價(jià)格為:%.2f元"%price)whileprice>7:price=price*0.95count=count+1print("第%i次打完95折后的價(jià)格為:%.2f元"%(count,price))任務(wù)實(shí)訓(xùn)2-7任務(wù)實(shí)訓(xùn)2-8:將20以內(nèi)的3的倍數(shù)都替換成*。具體代碼如下:foriinrange(1,21):ifi%3==0:i="*"print(i,end='\t')任務(wù)實(shí)訓(xùn)2-8任務(wù)實(shí)訓(xùn)2-9:利用雙層嵌套for循環(huán),生成5行10列的由符號(hào)*組成的矩形圖形。具體代碼如下:foriinrange(1,6):forjinrange(1,11):print("*",end='')print()任務(wù)實(shí)訓(xùn)2-9任務(wù)實(shí)訓(xùn)2-9:利用雙層嵌套for循環(huán),生成5行10列的由符號(hào)*組成的矩形圖形?!窘Y(jié)果分析】在執(zhí)行雙層嵌套for循環(huán)時(shí),第1步:變量i賦值為1,接著變量j會(huì)把所有的取值遍歷一遍,即j=1,2,……,10,此時(shí)輸出1行10列的“*”。為了讓一行輸出完畢之后,產(chǎn)生換行效果,需要在第一層for循環(huán)內(nèi)加上print函數(shù),其效果是一行結(jié)束后,產(chǎn)生一個(gè)換行符。第2步:變量i賦值為2,接著變量j會(huì)把所有的取值再遍歷一遍,此時(shí)會(huì)輸出2行10列的“*”,后面的循環(huán)以此類推。因此,可以把變量i的取值看成是行號(hào),而把變量j的取值看成是列號(hào)。任務(wù)實(shí)訓(xùn)2-10:某店鋪有3個(gè)熱銷商品類別,分別是手機(jī)、電視機(jī)、筆記本電腦,這三個(gè)商品類別的商品編號(hào)分別為002、004、007,其銷量分別為1000、2000、1500,通過(guò)for循環(huán)結(jié)果和zip函數(shù)輸出結(jié)果。任務(wù)實(shí)訓(xùn)2-10具體代碼如下:code=['002','004','007']products=["手機(jī)","電視機(jī)","筆記本電腦"]sales=[1000,2000,1500]fori,j,kinzip(code,products,sales):print("商品編號(hào)為:%s,商品名稱為:%s,銷量為:%d"%(i,j,k))任務(wù)實(shí)訓(xùn)2-10鞏固訓(xùn)練:利用雙層嵌套for循環(huán),輸出九九乘法表。謝謝!第2章Python基礎(chǔ)2.4Python列表操作Python的列表與元組屬于序列類型,其每個(gè)元素都是按照位置編號(hào)來(lái)讀取的,這一點(diǎn)與數(shù)組類似,但是數(shù)組只能存儲(chǔ)相同類型的元素,而列表和元組可以存儲(chǔ)不同類型的元素。列表與元組在很多方面的操作是類似的,但是兩者也有不同,列表的元素是可變的,而元組的元素是不可變的。一、創(chuàng)建列表創(chuàng)建列表時(shí),只要逗號(hào)對(duì)元素進(jìn)行分隔,再使用方括號(hào)括起來(lái)即可,列表的元素不需要具有相同的類型,如[1,2,3]、['a','b','c']或[1,2,'a']都是列表。一、創(chuàng)建列表示例代碼如下:list1=[1,2,3,4,5]list2=['a','b','c']list3=[1,2,'a','b']print("數(shù)字列表為:",list1)print("字符串列表:",list2)print("混合列表為:",list3)一、創(chuàng)建列表二、訪問(wèn)列表元素與切片列表1.訪問(wèn)列表元素列表的每一個(gè)元素都對(duì)應(yīng)一個(gè)位置編號(hào),這個(gè)位置編號(hào)被稱為列表索引index。訪問(wèn)列表元素可以通過(guò)列表索引來(lái)實(shí)現(xiàn),列表索引是以0開(kāi)頭的,即第1個(gè)元素的索引是0,而不是1。二、訪問(wèn)列表元素與切片列表1.訪問(wèn)列表元素除了常見(jiàn)的正向索引以外,列表索引還支持反向索引,即可以從列表的最后一個(gè)元素開(kāi)始訪問(wèn),最后一個(gè)元素的索引為-1,倒數(shù)第2個(gè)元素的索引為-2,以此類推。二、訪問(wèn)列表元素與切片列表1.訪問(wèn)列表元素列表索引的訪問(wèn)一般格式為:list[index]二、訪問(wèn)列表元素與切片列表1.訪問(wèn)列表元素示例代碼如下:list=['a','b','c','d','e','f']print("列表為:",list)index=2print("索引為%d的元素為:%s"%(index,list[index]))index=-1print("索引為%d的元素為:%s"%(index,list[index]))二、訪問(wèn)列表元素與切片列表1.訪問(wèn)列表元素二、訪問(wèn)列表元素與切片列表2.訪問(wèn)切片列表切片列表是指取出列表一段連續(xù)或不連續(xù)元素構(gòu)成一個(gè)新列表,切片列表的一般格式為:list[start:last:step]其中,start表示起始索引,start可以省略,默認(rèn)是0。last表示終止索引,并且這個(gè)終止索引是不能取到的。step表示索引步長(zhǎng),即索引之間的間隔。二、訪問(wèn)列表元素與切片列表2.訪問(wèn)切片列表(1)start:last是一個(gè)左閉右開(kāi)的區(qū)間,如list[1:4]表示的是輸出列表索引號(hào)1到3對(duì)應(yīng)的元素。(2)有時(shí)使用默認(rèn)索引更加方便,如list[:3]表示輸出列表索引號(hào)0到2對(duì)應(yīng)的元素,list[::2]表示將列表list按間隔為2正序輸出,list[::-1]表示將列表list按間隔1倒序輸出。二、訪問(wèn)列表元素與切片列表示例代碼如下:list=['a','b','c','d','e','f']print("列表為:",list)print("索引號(hào)1到3的切片列表為:",list[1:4])print("索引號(hào)0到2的的切片列表為:",list[:3])print("索引號(hào)2到最后一個(gè)索引的切片列表為:",list[2:])print("原列表索引0到4,步長(zhǎng)為2的切片列表為:",list[0:5:2])print("按間隔為2正序輸出的切片列表為:",list[::2])print("按間隔為1倒序輸出的切片列表為:",list[::-1])二、訪問(wèn)列表元素與切片列表三、添加列表元素在列表中可以使用append方法在列表的最后一個(gè)元素后面再添加一個(gè)新元素。添加列表新元素的一般格式為:list.append(value)其中,value表示新添加元素的值。三、添加列表元素示例代碼如下:list=[1,2,3,4]print("初始列表為:",list)list.append(5)print("添加新元素的列表為:",list)三、添加列表元素通過(guò)append方法,還可以使用一個(gè)空列表[]通過(guò)逐一添加的方式生成一個(gè)用戶需要的新列表。四、修改列表元素使用元素索引針對(duì)某個(gè)指定的元素進(jìn)行修改,從而達(dá)到修改列表的目的。修改列表元素一般格式為:list[index]=value_new其中,value_new表示將列表list中索引index對(duì)應(yīng)的元素的新值。四、修改列表元素示例代碼如下:list=['a','b','c','d','e','f']print("列表為:",list)list[2]='g'print("索引為2的元素修改為g后的新列表為:",list)四、修改列表元素五、刪除列表元素從列表中刪除元素十分方便,既可以按照索引號(hào)刪除元素,也可以按照內(nèi)容刪除元素。五、刪除列表元素1.按索引刪除列表元素按索引刪除列表元素的一般格式為:dellist[index]其中,index表示要?jiǎng)h除元素的索引。五、刪除列表元素2.按值刪除列表元素按值刪除列表元素的一般格式為:list.remove(value)其中,value表示要?jiǎng)h除元素的值。五、刪除列表元素2.按值刪除列表元素示例代碼如下:list=['a','b','c','d','e','f']print("列表為:",list)dellist[1]print("刪除索引為1的元素后的新列表為:",list)list.remove('a')print("刪除元素值為a的新列表為:",list)五、刪除列表元素2.按值刪除列表元素六、列表的常用方法Python提供了列表的很多方法,包括查詢列表長(zhǎng)度、檢查列表元素等。六、列表的常用方法1.查詢列表長(zhǎng)度在Python中,可以利用len查詢列表長(zhǎng)度。len的一般格式為:len(list)六、列表的常用方法1.查詢列表長(zhǎng)度示例代碼如下:list=['a','b','c','d','e','f']print("列表為:",list)print("列表的長(zhǎng)度為:",len(list))六、列表的常用方法1.查詢列表長(zhǎng)度六、列表的常用方法2.檢查列表元素在Python中,可以利用in檢查指定元素是否存在于列表中,in方法的一般格式為:valueinlist其中,如果value在list中,則返回True,如果value不在list中,則返回False。六、列表的常用方法2.檢查列表元素示例代碼如下:name_list=["張楊","徐天","王飛","李明","潘悅"]print("客戶名單為:",name_list)n=len(name_list)foriinrange(n):print("第%d個(gè)客戶為:%s"%(i+1,name_list[i]))name_find="王飛"result="王飛"inname_listprint("客戶名單中包含客戶\'%s\'的結(jié)果為:%s"%(name_find,result))六、列表的常用方法2.檢查列表元素六、列表的常用方法3.查詢列表元素索引在Python中,可以利用index來(lái)查詢列表元素索引,index的一般格式為:list.index(value)其中,list.index(value)返回的結(jié)果是list中value對(duì)應(yīng)的索引編號(hào)。任務(wù)實(shí)訓(xùn)2-11:找到50以內(nèi)十位大于個(gè)位的整數(shù),結(jié)果用一個(gè)列表輸出,并輸出該列表前4個(gè)元素構(gòu)成的新列表。任務(wù)實(shí)訓(xùn)2-11具體代碼如下:list=[]foriinrange(11,50):if(i%10<i//10):#i%10表示i的個(gè)位,i//10的十位

list.append(i)print("50以內(nèi)十位大于個(gè)位的整數(shù)構(gòu)成的列表為:",list)print("該列表前4個(gè)元素構(gòu)成的新列表為:",list[:4])任務(wù)實(shí)訓(xùn)2-11任務(wù)實(shí)訓(xùn)2-12:新建一個(gè)客戶名單列表["張楊","徐天","王飛","李明","潘悅"],并命名為name_list,利用for循環(huán)語(yǔ)句逐一輸出客戶名單,并判斷"王飛"是否在客戶名單中。任務(wù)實(shí)訓(xùn)2-12具體代碼如下:name_list=["張楊","徐天","王飛","李明","潘悅"]print("客戶名單為:",name_list)n=len(name_list)foriinrange(n):print("第%d個(gè)客戶為:%s"%(i+1,name_list[i]))name_find="王飛"result="王飛"inname_listprint("客戶名單中包含客戶\'%s\'的結(jié)果為:%s"%(name_find,result))任務(wù)實(shí)訓(xùn)2-12因?yàn)榱斜硭饕幪?hào)是從0開(kāi)始,所以在給客戶編號(hào)的時(shí)候需要在索引編號(hào)+1。任務(wù)實(shí)訓(xùn)2-13:新建一個(gè)客戶名單列表["張楊","徐天","王飛","李明","潘悅"],并命名為name_list,查詢客戶"王飛"是第幾個(gè)客戶。任務(wù)實(shí)訓(xùn)2-13具體代碼如下:name_list=["張楊","徐天","王飛","李明","潘悅"]print("客戶名單為:",name_list)name_find="王飛"index_find=name_list.index(name_find)print("\'%s\'是第%d個(gè)客戶"%(name_find,index_find+1))任務(wù)實(shí)訓(xùn)2-13鞏固訓(xùn)練:新建一個(gè)客戶名單列表["張楊","徐天","王飛","李明","潘悅"],并命名為name_list,利用for循環(huán)語(yǔ)句逐一輸出客戶"王飛"之前的名單。謝謝!第2章Python基礎(chǔ)2.5Python字符串操作Python字符串是一種以字符為元素的序列,因?yàn)樾蛄械脑厥怯星昂箜樞虻?,所以可以通過(guò)索引來(lái)訪問(wèn)一個(gè)字符或一組連續(xù)字符。一、字符串的訪問(wèn)1.訪問(wèn)單個(gè)字符在字符串中,字符的索引編號(hào)與列表的索引編號(hào)類似,第1個(gè)字符的索引編號(hào)0,其右邊一個(gè)字符的索引編號(hào)為1,以此類推。Python除了支持字符串的正向索引,還支持字符串的反向索引,最后一個(gè)字符的索引編號(hào)為-1,其左邊一個(gè)字符的索引編號(hào)為-2,以此類推。一、字符串的訪問(wèn)1.訪問(wèn)單個(gè)字符例如在字符串str=“Python”中,字符“o”可以通過(guò)兩種方式進(jìn)行訪問(wèn),str[4]或str[-2]。一、字符串的訪問(wèn)1.訪問(wèn)單個(gè)字符示例代碼如下:str="Python"print("字符串為:",str)print("正向引用時(shí),索引編號(hào)為4對(duì)應(yīng)的元素為:",str[4])print("反向引用時(shí),索引編號(hào)為-2對(duì)應(yīng)的元素為:",str[-2])一、字符串的訪問(wèn)1.訪問(wèn)單個(gè)字符一、字符串的訪問(wèn)2.訪問(wèn)切片字符串切片字符串是指從指定字符串中切割出部分字符,切割出來(lái)的字符串就是切片字符串,切片字符串的一般格式為:str[start:last:step]其中,start表示起始索引,start可以省略,默認(rèn)是0。last表示終止索引,并且這個(gè)終止索引不能取到。step表示索引步長(zhǎng),即索引之間的間隔。一、字符串的訪問(wèn)2.訪問(wèn)切片字符串示例代碼如下:str="helloworld"print("字符串為:",str)print("索引號(hào)1到3對(duì)應(yīng)的切片字符串為:",str[1:4])print("索引號(hào)0到2對(duì)應(yīng)的切片字符串為:",str[:3])print("索引號(hào)2到最后一個(gè)索引對(duì)應(yīng)的切片字符串為:",str[2:])print("按間隔為2正序輸出的切片字符串為:",str[::2])print("按間隔為1倒序輸出的切片字符串為:",str[::-1])一、字符串的訪問(wèn)2.訪問(wèn)切片字符串二、字符串的操作1.字符串的連接(1)使用連接符“+”連接字符串字符串的連接是指用連接符“+”把字符串連接起來(lái),其一般格式是:str1+str2+……二、字符串的操作1.字符串的連接(1)使用連接符“+”連接字符串示例代碼如下:str1="Python"str2="3.6"str=str1+str2print("Python的版本為:",str)二、字符串的操作1.字符串的連接(1)使用連接符“+”連接字符串二、字符串的操作1.字符串的連接(2)使用join連接字符串join一般格式是:"連接符".join([str1,str2,str3])二、字符串的操作2.查詢字符的索引號(hào)在Python中,可以使用find查詢字符的索引號(hào)。find的一般格式是:str.find(substr,start,end)其中,substr表示要查詢的字符,start表示字符串的起始查詢索引,end表示表示字符串的終止查詢索引,并且這個(gè)區(qū)間也是左閉右開(kāi)索引區(qū)間。如果substr不在s中,則會(huì)返回結(jié)果“-1”。二、字符串的操作2.查詢字符的索引號(hào)len(str)表示字符串str的長(zhǎng)度,所以len(str)等于10,tr.find('l',4,len(str))表示從索引號(hào)4到9(因?yàn)槭亲箝]右開(kāi)索引區(qū)間,10不能取到),即可以表示從索引號(hào)4到最后一個(gè)索引號(hào)。二、字符串的操作3.查詢字符的出現(xiàn)次數(shù)有時(shí),需要統(tǒng)計(jì)字符串中某個(gè)字符出現(xiàn)次數(shù),此時(shí)可以使用count查詢字符的出現(xiàn)次數(shù)。count的一般格式是:str.count(substr,start,end)其中,substr表示要統(tǒng)計(jì)的字符,start表示統(tǒng)計(jì)的起始索引,end表示統(tǒng)計(jì)的終止索引,并且這個(gè)區(qū)間也是左閉右開(kāi)索引區(qū)間。二、字符串的操作3.查詢字符的出現(xiàn)次數(shù)二、字符串的操作4.字符串拆分字符串可以按照某個(gè)分隔符進(jìn)行拆分,拆分時(shí)可使用split函數(shù),其一般格式是:str.split(sep,maxsplit)其中,sep表示分隔符,默認(rèn)的分隔符為空格。maxsplit表示拆分次數(shù),默認(rèn)無(wú)限次拆分,字符串拆分結(jié)果是一個(gè)列表。二、字符串的操作4.字符串拆分二、字符串的操作4.字符串拆分示例代碼如下:str="h-e-l-l-ow-o-r-l-d"print("按默認(rèn)的空格進(jìn)行拆分的結(jié)果為:",str.split())print("按小橫線-拆分3次的結(jié)果為:",str.split('-',3))二、字符串的操作5.字符替換在字符串中,可以將某個(gè)指定字符替換成其他字符,替換的方法是replace,其一般格式是:str.replace(oldstr,newstr,count)其中,oldstr表示需要替換的原字符,newstr表示替換后的新字符,count表示替換次數(shù),默認(rèn)全部替換。二、字符串的操作5.字符替換示例代碼如下:str="helloworld"print("將字符e替換成字符a的結(jié)果為:",str.replace('e','a'))print("將字符o替換成空格的結(jié)果為:",str.replace('o',''))print("將前2個(gè)字符l替換成*的結(jié)果為:",str.replace('l','*',2))二、字符串的操作5.字符替換任務(wù)實(shí)訓(xùn)2-14:從鍵盤輸入3個(gè)字符串“江蘇”,“蘇州”,“姑蘇區(qū)”,分別賦值為變量“province”、“city”、“district”,并將這三個(gè)變量連接成一個(gè)新的字符串,賦值為area,再輸出該變量。任務(wù)實(shí)訓(xùn)2-14具體代碼如下:province=input("請(qǐng)輸入省份名:")city=input("請(qǐng)輸入城市名:")district=input("請(qǐng)輸入?yún)^(qū)名:")area=province+city+districtprint("省份名、城市名、區(qū)名拼接的結(jié)果為:",area)任務(wù)實(shí)訓(xùn)2-14任務(wù)實(shí)訓(xùn)2-15:從鍵盤輸入3個(gè)字符串“江蘇”,“蘇州”,“姑蘇區(qū)”,分別賦值變量“province”、“city”、“district”,并將這三個(gè)變量將用join連接,連接符為“-”,輸出連接結(jié)果。任務(wù)實(shí)訓(xùn)2-15具體代碼如下:province=input("請(qǐng)輸入省份名:")city=input("請(qǐng)輸入城市名:")district=input("請(qǐng)輸入?yún)^(qū)名:")area="-".join([province,city,district])print("省份名、城市名、區(qū)名拼接的結(jié)果為:",area)任務(wù)實(shí)訓(xùn)2-15任務(wù)實(shí)訓(xùn)2-16:輸入字符串“中國(guó)江蘇-蘇州-姑蘇區(qū)”,并賦值為變量str,完成:(1)用默認(rèn)的空格作為分隔符,將str拆分為“中國(guó)”與“江蘇-蘇州-姑蘇區(qū)”,并將拆分結(jié)果中的“江蘇-蘇州-姑蘇區(qū)”賦值為變量area。(2)用分隔符“-”將變量area拆分,并依次輸出省份名、城市名和區(qū)名。任務(wù)實(shí)訓(xùn)2-16具體代碼如下:str="中國(guó)江蘇-蘇州-姑蘇區(qū)"area=str.split()[1]print("area=",area)province=area.split('-')[0]city=area.split('-')[1]district=area.split('-')[2]print("省份名為:%s\n城市名為:%s\n區(qū)名為:%s"%(province,city,district))任務(wù)實(shí)訓(xùn)2-16任務(wù)實(shí)訓(xùn)2-17:創(chuàng)建字符串“3.5萬(wàn)元”,并賦值給變量price,將單位“萬(wàn)元”轉(zhuǎn)換單元“元”,保留數(shù)值結(jié)果為整數(shù)。任務(wù)實(shí)訓(xùn)2-17任務(wù)實(shí)訓(xùn)2-17具體代碼如下:price="3.5萬(wàn)元"print("初始數(shù)據(jù)為:",price)price=price.replace('萬(wàn)元','')price=float(price)#將str轉(zhuǎn)換為浮點(diǎn)數(shù),是為了下一步的數(shù)值計(jì)算price=int(10000*price)#用int()可以將結(jié)果轉(zhuǎn)換為整數(shù)print("轉(zhuǎn)換結(jié)果為:%i元"%price)鞏固訓(xùn)練:創(chuàng)建字符串列表["3.5萬(wàn)元","4萬(wàn)元","3萬(wàn)元"],將列表中元素的單位“萬(wàn)元”都轉(zhuǎn)成元,并去掉單元“元”。(提示:先創(chuàng)建一個(gè)空列表,作為存放轉(zhuǎn)換結(jié)果的容器,結(jié)果可以利用for循環(huán)遍歷每一個(gè)元素,進(jìn)行轉(zhuǎn)換,再將轉(zhuǎn)換結(jié)果通過(guò)append逐一放入空列表。)謝謝!第2章Python基礎(chǔ)2.6Python字典操作列表和元組都是有序序列,其特點(diǎn)是元素之間有先后順序關(guān)系,并且可以通過(guò)索引的位置編號(hào)進(jìn)行訪問(wèn)。字典與列表就有明顯的不同,因?yàn)樽值涞臄?shù)據(jù)元素之間沒(méi)有任何順序關(guān)系,因此不能夠通過(guò)索引的位置編號(hào)來(lái)訪問(wèn)元素。訪問(wèn)字典中的元素,只能通過(guò)字典中特有“關(guān)鍵字:值”的機(jī)制來(lái)實(shí)現(xiàn)。字典是在大括號(hào){}中放置以逗號(hào)作為分隔符的“關(guān)鍵字:值”對(duì),關(guān)鍵字就相當(dāng)于索引,而它對(duì)應(yīng)的就是值,數(shù)據(jù)值是根據(jù)關(guān)鍵字來(lái)儲(chǔ)存的,只要找到關(guān)鍵字就可以找到需要的值,而且這種對(duì)應(yīng)的關(guān)系是唯一的。一、創(chuàng)建字典字典是在大括號(hào){}中放置以逗號(hào)作為分隔符的“關(guān)鍵字:值”對(duì),每一個(gè)“鍵:值”對(duì)都可以稱為字典的元素或數(shù)據(jù)項(xiàng)。創(chuàng)建字典的一般格式為:dict={key1:value1,key2:value2,……}其中,鍵與值之間用冒號(hào)“:”隔開(kāi),字典元素和元素之間用逗號(hào)“,”隔開(kāi)。當(dāng)字典的大括號(hào)沒(méi)有任何內(nèi)容時(shí),會(huì)產(chǎn)生一個(gè)空字典。一、創(chuàng)建字典示例代碼如下:dict={'code':'001','product':'手機(jī)','sale':1000}print(dict)一、創(chuàng)建字典二、訪問(wèn)字典關(guān)鍵字字典的關(guān)鍵字可以通過(guò)keys進(jìn)行訪問(wèn),其結(jié)果是一個(gè)列表,訪問(wèn)字典關(guān)鍵字的一般方法為:dict.keys()二、訪問(wèn)字典關(guān)鍵字示例代碼如下:dict={'code':'001','product':'手機(jī)','sale':1000}print("字典為:",dict)print("字典的關(guān)鍵字為:",dict.keys())二、訪問(wèn)字典關(guān)鍵字三、訪問(wèn)字典元素在Python中,可以利用關(guān)鍵字來(lái)訪問(wèn)字典元素,如果關(guān)鍵字不在字典中,會(huì)引發(fā)錯(cuò)誤。訪問(wèn)字典元素的一般格式為:dict[key]三、訪問(wèn)字典元素示例代碼如下:dict={'code':'001','product':'手機(jī)','sale':1000}print(dict)print("產(chǎn)品名稱為:",dict['product'])三、訪問(wèn)字典元素四、更新字典元素字典的元素可以通過(guò)關(guān)鍵字進(jìn)行更新,更新字典元素的一般方法為:dict[key]=new_value其中,key表示需要修改的元素的關(guān)鍵字,new_value表示修改后的新值。如果關(guān)鍵字存在,則修改關(guān)鍵字對(duì)應(yīng)的值,如果關(guān)鍵字不存在,則在字典中增加一個(gè)新值。四、更新字典元素示例代碼如下:dict={'code':'001','product':'手機(jī)','sale':1000}print(dict)dict['code']='004'dict['stock']=300print(dict)四、更新字典元素五、刪除字典元素字典的元素還可以通過(guò)關(guān)鍵字進(jìn)行刪除,刪除字典元素的一般方法為:dict.pop[key]五、刪除字典元素示例代碼如下:dict={'code':'001','product':'手機(jī)','sale':1000}print("字典為:",dict)dict.pop('code')print("刪除關(guān)鍵字code后的新字典為:",dict)五、刪除字典元素六、創(chuàng)建二維字典Python除了可以創(chuàng)建一維字典,還可以創(chuàng)建二維字典,二維字典的創(chuàng)建有多種方法。下面通過(guò)兩種方式將如數(shù)據(jù)創(chuàng)建為二維字典。

product(產(chǎn)品名稱)sale(產(chǎn)品銷量)001手機(jī)1000002電視機(jī)2000003筆記本電腦1500二維數(shù)據(jù)六、創(chuàng)建二維字典1.利用嵌套字典創(chuàng)建二維數(shù)據(jù)在一維字典的基礎(chǔ)上,還可以把一維字典的value值再寫成一個(gè)一維字典,即字典嵌套字典。利用嵌套字典創(chuàng)建二維數(shù)據(jù)的時(shí)候,需要確定外層字典和內(nèi)層字典以及兩層字典的關(guān)鍵字key。一般來(lái)說(shuō),可以將列數(shù)據(jù)看成是外層字典,而將行數(shù)據(jù)看成是內(nèi)層字典。六、創(chuàng)建二維字典1.利用嵌套字典創(chuàng)建二維數(shù)據(jù)在數(shù)據(jù)中,“product”和“sale”可以作為外層字典(列數(shù)據(jù))的關(guān)鍵字key,而001、002、003可以作為內(nèi)層字典(行數(shù)據(jù))的關(guān)鍵字key。

product(產(chǎn)品名稱)sale(產(chǎn)品銷量)001手機(jī)1000002電視機(jī)2000003筆記本電腦1500二維字典源數(shù)據(jù)六、創(chuàng)建二維字典1.利用嵌套字典創(chuàng)建二維數(shù)據(jù)

columns_key1columns_key2row_key1value[11]value[12]row_key2value[21]value[22]row_key3value[31]value[32]二維字典鍵值形式六、創(chuàng)建二維字典1.利用嵌套字典創(chuàng)建二維數(shù)據(jù)利用嵌套字典創(chuàng)建二維數(shù)據(jù)的一般方法為:dict={col_key1:{row_key1:value[11],row_key2:value[21],……},col_key2:{row_key1:value[12],row_key2:value[22],……},……}其中,col_key表示列字段名,row_key表示行字段名,vlaue[ij]表示第i行和第j列的數(shù)據(jù)值。六、創(chuàng)建二維字典2.利用字典和列表創(chuàng)建二維數(shù)據(jù)利用字典和列表創(chuàng)建二維字典使用起來(lái)比嵌套字典更為方便,即在輸入內(nèi)層字典時(shí),不按照key:value來(lái)輸入,而是將字典轉(zhuǎn)換列表輸入,但是在訪問(wèn)行數(shù)據(jù)時(shí)就無(wú)法通過(guò)key來(lái)訪問(wèn),只能通過(guò)列表索引來(lái)訪問(wèn)。六、創(chuàng)建二維字典2.利用字典和列表創(chuàng)建二維數(shù)據(jù)利用字典和列表創(chuàng)建二維數(shù)據(jù)的一般方法為:dict={columns_key1:[value[11],value[21],……]},columns_key2:[value[12],value[22],……]},……}任務(wù)實(shí)訓(xùn)2-18:創(chuàng)建字典{'code':'001','product':'手機(jī)','sale':1000},命名為dict,利用for循環(huán)語(yǔ)句輸出每一個(gè)組鍵值對(duì)。任務(wù)實(shí)訓(xùn)2-18具體代碼如下:dict={'code':'001','product':'手機(jī)','sale':1000}print("字典為:",dict)keys=dict.keys()foriinkeys:print("關(guān)鍵字%s對(duì)應(yīng)的值為:%s"%(i,dict[i]))任務(wù)實(shí)訓(xùn)2-18任務(wù)實(shí)訓(xùn)2-19:利用嵌套字典創(chuàng)建為二維數(shù)據(jù),并完成:(1)查詢編號(hào)為002的產(chǎn)品名稱。(2)查詢編號(hào)為003的產(chǎn)品銷量。任務(wù)實(shí)訓(xùn)2-19具體代碼如下:dict={'product':{'001':'手機(jī)','002':'電視機(jī)','003':'筆記本電腦'},

'sale':{'001':1000,'002':2000,'003':1500}}print(dict)print("編號(hào)為002的產(chǎn)品名稱的查詢結(jié)果為:",dict['product']['002'])print("編號(hào)為003的產(chǎn)品銷量的查詢結(jié)果為:",dict['sale']['003'])任務(wù)實(shí)訓(xùn)2-19任務(wù)實(shí)訓(xùn)2-20:利用字典和列表創(chuàng)建為二維數(shù)據(jù),并完成:(1)查詢編號(hào)為002的產(chǎn)品名稱。(編號(hào)為002對(duì)應(yīng)的行索引為1)(2)查詢編號(hào)為003的產(chǎn)品銷量。(編號(hào)為003對(duì)應(yīng)的行索引為2)任務(wù)實(shí)訓(xùn)2-20具體代碼如下:dict={'product':['手機(jī)','電視機(jī)','筆記本電腦'],'sale':[1000,2000,1500]}print(dict)print("編號(hào)為002的產(chǎn)品名稱的查詢結(jié)果為:",dict['product'][1])print("編號(hào)為003的產(chǎn)品銷量的查詢結(jié)果為:",dict['sale'][2])任務(wù)實(shí)訓(xùn)2-20鞏固訓(xùn)練:構(gòu)建餐飲消費(fèi)明細(xì)的字典data_dict3,訂單編號(hào)為a0001的name(姓名)、amount(消費(fèi)金額)為“徐倩”和126,訂單編號(hào)為a0002的name(姓名)、amount(消費(fèi)金額)為“張峰”和86,訂單編號(hào)為b0003的name(姓名)、amount(消費(fèi)金額)為“肖明”和57,訂單編號(hào)為c0004的name(姓名)為“楊天”和88。謝謝!第2章Python基礎(chǔ)2.7Python函數(shù)操作在程序設(shè)計(jì)中,有很多操作是完全相似的,只是處理的對(duì)象不同,遇到這種情況比較好的做法是將反復(fù)用到的某些程序?qū)懗珊瘮?shù),當(dāng)需要時(shí)調(diào)用函數(shù)就可以了。Python自帶了很多內(nèi)置函數(shù),如輸入函數(shù)input和輸出函數(shù)print。當(dāng)然,用戶也可以自己創(chuàng)建函數(shù),稱為自定義函數(shù)。一、定義函數(shù)函數(shù)的定義需要注意幾點(diǎn):(1)函數(shù)定義是以關(guān)鍵字def開(kāi)始,后面跟函數(shù)名,函數(shù)后面跟括號(hào)括起來(lái)的形式參數(shù),當(dāng)函數(shù)有多個(gè)參數(shù)的時(shí)候,形式參數(shù)之間要用逗號(hào)隔開(kāi)。形式參數(shù)在定義的時(shí)候并不占用內(nèi)存地址。(2)函數(shù)體描述了函數(shù)的主要功能,函數(shù)體往往包含return語(yǔ)句,該語(yǔ)句用于傳遞函數(shù)的返回值,如果沒(méi)有return語(yǔ)句,則表示函數(shù)不返回任何值。一、定義函數(shù)在Python中,將一個(gè)程序段的運(yùn)算或處理放在函數(shù)中完成,這就需要先定義函數(shù),然后根據(jù)需要調(diào)用函數(shù),而且可以多次調(diào)用,這也體現(xiàn)了函數(shù)的特點(diǎn)。Python函數(shù)定義的一般方法為:def函數(shù)名(形式參數(shù)1,形式參數(shù)2,…): 函數(shù)體 一、定義函數(shù)示例代碼如下:deffun(x,y):result=(x**2+y**2)/2#計(jì)算(x^2+y^2)/2returnresult二、調(diào)用函數(shù)當(dāng)定義了函數(shù)之后,就可以調(diào)用函數(shù),調(diào)用函數(shù)需要在形式參數(shù)的位置輸入實(shí)際參數(shù)值,調(diào)用有參數(shù)函數(shù)的形式:函數(shù)名(實(shí)際參數(shù)值1,實(shí)際參數(shù)值2,…)其中,實(shí)際參數(shù)值在輸入時(shí),要保證與形式參數(shù)一一對(duì)應(yīng),并且參數(shù)類型也要兼容。實(shí)際參數(shù)在使用時(shí)會(huì)占用內(nèi)存地址。二、調(diào)用函數(shù)示例代碼如下:deffun(x,y):result=(x**2+y**2)/2#計(jì)算(x^2+y^2)/2returnresultprint("兩個(gè)數(shù)2和3的平方和的平均值為:",fun(2,3))二、調(diào)用函數(shù)三、匿名函數(shù)在程序設(shè)計(jì)中,有的函數(shù)需要反復(fù)使用,就可以通過(guò)前面的方法定義函數(shù)并進(jìn)行調(diào)用。而有的函數(shù)僅僅是臨時(shí)使用,使用一次后就不再使用,這樣的函數(shù)就是匿名函數(shù),匿名函數(shù)就是可以不用定義函數(shù)名而直接使用的函數(shù)。三、匿名函數(shù)非匿名函數(shù)在定義時(shí),就已經(jīng)創(chuàng)建函數(shù)對(duì)象和作用域?qū)ο?,所以即使未調(diào)用非匿名函數(shù),也占用內(nèi)存空間。而匿名函數(shù),僅在調(diào)用時(shí),才臨時(shí)創(chuàng)建函數(shù)對(duì)象和作用域鏈對(duì)象;調(diào)用完,立即釋放,所以匿名函數(shù)比非匿名函數(shù)更節(jié)省內(nèi)存空間。三、匿名函數(shù)1.匿名函數(shù)的定義在Python中,可以使用lambda關(guān)鍵字來(lái)定義一個(gè)匿名函數(shù),lambda的一般方法為:lambda參數(shù)1,參數(shù)2,…:表達(dá)式其中,關(guān)鍵字lambda表示匿名函數(shù),冒號(hào)前面表示參數(shù)名,參數(shù)可以有多個(gè),但是只有一個(gè)返回值,因此只能有一個(gè)表達(dá)式,返回值就是該表達(dá)式的結(jié)果。三、匿名函數(shù)1.匿名函數(shù)的定義示例代碼如下:f=lambdax,y:(x**2+y**2)/2print("兩個(gè)數(shù)2和3的平方和的平均值為:",f(2,3))三、匿名函數(shù)1.匿名函數(shù)的定義三、匿名函數(shù)2.匿名函數(shù)的操作由于匿名函數(shù)lambda里面不能處理for循環(huán)之類的復(fù)雜運(yùn)算,所以如果要對(duì)匿名函數(shù)lambda進(jìn)行復(fù)雜運(yùn)算,就需要與map、filter等運(yùn)算結(jié)合起來(lái)使用。三、匿名函數(shù)2.匿名函數(shù)的操作(1)map操作匿名函數(shù)的map操作可以使用匿名函數(shù)作用于可迭代對(duì)象(如列表、元組等序列)的每一個(gè)元素。三、匿名函數(shù)2.匿名函數(shù)的操作(1)map操作map操作一般方法為:map(function,iterable)其中,iterable表示使用可迭代對(duì)象,function表示lambda匿名函數(shù)。map操作的結(jié)果僅僅是一個(gè)迭代結(jié)果,如<mapobjectat0x000001C12226B128>,要查看結(jié)果必須用list進(jìn)行輸出,即list(map(function,iterable))。三、匿名函數(shù)2.匿名函數(shù)的操作(1)map操作三、匿名函數(shù)2.匿名函數(shù)的操作(1)map操作示例代碼如下:print("輸出1到20的平方構(gòu)成的列表:")result=list(map(lambdax:x**2,range(1,21)))print(result)三、匿名函數(shù)2.匿名函數(shù)的操作(2)filter操作匿名函數(shù)的filter操作可以使用匿名函數(shù)的布爾值結(jié)果應(yīng)用于可迭代對(duì)象(如列表、元組等序列)的每一個(gè)元素,返回所有為True的元素,并放在一個(gè)迭代結(jié)果中。filter操作的一般方法為:filter(function,iterable)三、匿名函數(shù)2.匿名函數(shù)的操作(2)filter操作示例代碼如下:print("輸出100以內(nèi)6的倍數(shù)的列表:")result=list(filter(lambdax:x%6==0,range(1,101)))print(result)三、匿名函數(shù)2.匿名函數(shù)的操作(2)filter操作任務(wù)實(shí)訓(xùn)2-21:創(chuàng)建函數(shù)fun_sum,該函數(shù)包含1個(gè)形式參數(shù)n,函數(shù)的作用是計(jì)算:1+2+……+n。并調(diào)用該函數(shù),輸入實(shí)際參數(shù)值10。任務(wù)實(shí)訓(xùn)2-21具體代碼如下:deffun_sum(n):sum=0foriinrange(n+1):sum=sum+ireturnsumprint("前10個(gè)整數(shù)的和=",fun_sum(10))任務(wù)實(shí)訓(xùn)2-21任務(wù)實(shí)訓(xùn)2-22:定義函數(shù)fun_list,該函數(shù)有兩個(gè)形式參數(shù),第1個(gè)形式參數(shù)為一個(gè)輸入列表,第2個(gè)形式參數(shù)表示列表的多個(gè)輸出結(jié)果。第2個(gè)形式參數(shù)也是一個(gè)列表,該列表有3個(gè)取值,0表示輸出列表的長(zhǎng)度,1表示輸出列表所有元素的和,2表示輸出列表所有元素的平均值。輸入列表[2,3,4,1,6,7,5],通過(guò)函數(shù)fun_list輸出列表的長(zhǎng)度和列表所有元素的平均值。任務(wù)實(shí)訓(xùn)2-22具體代碼如下:deffun_list(list,n):result=[]list_len=len(list)result.append(list_len)list_sum=0foriinlist:list_sum=list_sum+ilist_mean=list_sum/list_lenresult.append(list_sum)result.append(list_mean)print("輸入的列表為:",list)returnresult[n]list=[2,3,4,1,6,7,5]print("列表長(zhǎng)度為:",fun_list(list,0))print("列表所有元素的平均值為:",fun_list(list,2))任務(wù)實(shí)訓(xùn)2-22任務(wù)實(shí)訓(xùn)2-23:利用匿名函數(shù)的map操作,將列表[0.22,0.34,0.44]中的每一個(gè)元素都轉(zhuǎn)換成百分比形式。任務(wù)實(shí)訓(xùn)2-23具體代碼如下:print("原始列表為:",[0.22,0.34,0.44])result=list(map(lambdax:"%.2f%%"%(x*100),[0.22,0.34,0.44]))print("轉(zhuǎn)換后的列表為:",result)%.2f是格式符,表示2位小數(shù)的浮點(diǎn)數(shù),%%是格式符,表示百分號(hào)%任務(wù)實(shí)訓(xùn)2-23任務(wù)實(shí)訓(xùn)2-24:利用匿名函數(shù)的filter操作,生成一個(gè)由個(gè)位為2的二位數(shù)組成的列表list1,即list1=[12,22,32,…,92],再用map操作將這個(gè)列表中每個(gè)元素除以10,生成一個(gè)新列表list2,即list=[1.2,2.2,3.2,…,9.2],list2的前3三個(gè)元素組成的切片列表list3,以此輸出list1、list2、list3。任務(wù)實(shí)訓(xùn)2-24具體代碼如下:list1=list(filter(lambdax:x%10==2,range(101)))print("list1=",list1)list2=list(map(lambdax:x/10,list1))print("list2=",list2)list3=list2[:3]print("list3=",list3)任務(wù)實(shí)訓(xùn)2-24鞏固訓(xùn)練:創(chuàng)建一個(gè)列表list1,list1=['3.5萬(wàn)','4萬(wàn)','2.2萬(wàn)'],利用匿名函數(shù)的map操作將list1轉(zhuǎn)換為list2,list2=[35000,40000,22000]。謝謝!第2章Python基礎(chǔ)2.8Python的NumPy庫(kù)NumPy是Python的開(kāi)源的科學(xué)計(jì)算機(jī)工具包,是一個(gè)高級(jí)數(shù)值編程工具,通過(guò)NumPy可以不用遍歷循環(huán)就實(shí)現(xiàn)大型的矩陣的計(jì)算。NumPy可以實(shí)現(xiàn)生成隨機(jī)數(shù)、線性代數(shù)、傅里葉變換等功能。同時(shí),NumPy可以保存任意類型的數(shù)據(jù),這使得Numpy可以快速而高效地處理各種數(shù)據(jù)。NumPy提供了許多高級(jí)的數(shù)值編程工具,如矩陣數(shù)據(jù)類型、矢量處理,以及精密的運(yùn)算庫(kù),NumPy專為進(jìn)行嚴(yán)格的數(shù)字處理而產(chǎn)生。在導(dǎo)入NumPy的時(shí)候,一般需要先使用一行代碼,代碼如下:importnumpyasnp一、創(chuàng)建數(shù)組對(duì)象1.創(chuàng)建一維數(shù)組當(dāng)數(shù)組中每個(gè)元素都只帶有一個(gè)下標(biāo)時(shí),這樣的數(shù)組就是一維數(shù)組,一維數(shù)組是由數(shù)字組成的順序排序單一數(shù)組。一維數(shù)組是計(jì)算機(jī)程序中最基本的數(shù)組,二維及多維數(shù)組可以看作是一維數(shù)組的多次疊加產(chǎn)生的。一、創(chuàng)建數(shù)組對(duì)象1.創(chuàng)建一維數(shù)組Python提供array函數(shù)可以創(chuàng)建一維數(shù)組,通過(guò)array函數(shù)創(chuàng)建一維數(shù)組類似

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論