版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Python程序設(shè)計(jì)第1章初識Python【教學(xué)目標(biāo)】
學(xué)習(xí)內(nèi)容Python語言概述搭建Python環(huán)境PyCharn集成開發(fā)環(huán)境Python程序的編寫與運(yùn)行技能目標(biāo)能理解Python程序運(yùn)行過程會搭建Python環(huán)境會編寫及運(yùn)行Python程序任務(wù)一大聲說:中國,我愛你!
1949年10月1日,中華人民共和國成立,風(fēng)雨兼程,砥礪奮進(jìn),輝煌燦爛,共筑中華民族偉大復(fù)興的中國夢!
本次的任務(wù)是使用Python程序來表達(dá)興奮的心情,其中利用PyCharm集成開發(fā)環(huán)境編寫HelloChina程序,輸出“中國,我愛你!”?!咎崾尽?1)打開PyCharm,新建一個名為:pythonProject的項(xiàng)目并且保存在D盤根目錄下。(2)在pythonProject項(xiàng)目里新建一個名為:HelloChina的.py文件。(3)在HelloChina.py文件中輸入代碼:print("中國,我愛你!"),如圖1-32所示。(4)在代碼輸入空白區(qū)域單擊鼠標(biāo)右鍵,選擇Run命令執(zhí)行代碼,在PyCharm下方的控制臺可以看到“中國,我愛你!”已經(jīng)被打印輸出了。1.1Python語言概述1.1.1Python語言的發(fā)展
Python語言誕生于1990年,由吉多.范羅蘇姆(GuidovanRossum)設(shè)計(jì)并領(lǐng)導(dǎo)開發(fā)。1989年12月,Guido考慮啟動一個開發(fā)項(xiàng)目以打發(fā)圣誕節(jié)前后的時間,所以決定為當(dāng)時正在構(gòu)思的一個新的腳本語言寫一個解釋器,因此在次年誕生了Python語言。該語言以“Python”命名源于Guido對當(dāng)時一部英劇“MontyPython'sFlyingCircus”的極大興趣。
Python語言是免費(fèi)和開源的,無論用于何種用途,開發(fā)人員都無須支付任何費(fèi)用,也不用擔(dān)心版權(quán)問題,可以在Python語言的官網(wǎng)()自由下載使用,Python軟件基金會(PythonSoftwareFoundation,PSF)作為一個非營利組織,擁有Python2.1版本之后所有版本的版權(quán),該組織致力于更好推進(jìn)并保護(hù)Python語言的開放性。1.1Python語言概述1.1.2Python語言特點(diǎn)
1.Python語言的優(yōu)點(diǎn)
簡單、易學(xué)
免費(fèi)、開源
互動模式
可移植
可擴(kuò)展
可嵌入
支持中文
豐富的第三方庫
2.Python語言的缺點(diǎn)
速度慢
強(qiáng)制縮進(jìn)
單行語句1.1Python語言概述1.1.3Python語言應(yīng)用領(lǐng)域常規(guī)軟件開發(fā)科學(xué)計(jì)算系統(tǒng)管理與自動化運(yùn)維云計(jì)算Web開發(fā)游戲網(wǎng)絡(luò)爬蟲數(shù)據(jù)分析人工智能1.2搭建Python環(huán)境1.2.1Python下載和安裝
Python已經(jīng)被移植到許多平臺上,例如Windows、Mac、Linux等主流平臺,可以根據(jù)需要為這些平臺安裝Python。在Mac和Linux系統(tǒng)中,默認(rèn)已經(jīng)安裝了Python。如果需要安裝其他版本的Python,可以登錄Python官網(wǎng),找到相應(yīng)系統(tǒng)的Python安裝文件進(jìn)行安裝。1.2搭建Python環(huán)境1.2.2Python程序的運(yùn)行方式
安裝Python成功之后,就可以運(yùn)行Python程序。Python的運(yùn)行方式有3種: (1)Windows系統(tǒng)的命令行工具(cmd) (2)帶圖形界面的PythonShell-IDLE (3)命令行版本的PythonShell-Python3.91.2搭建Python環(huán)境1.2.3Python程序初體驗(yàn)1.在命令行中開發(fā)Python程序2.使用文本編輯器編寫Python程序1.3PyCharm集成開發(fā)環(huán)境1.3.1安裝PyCharm集成開發(fā)環(huán)境
1.PyCharm是JetBrains公司開發(fā)的Python集成開發(fā)環(huán)境。PyCharm的功能十分強(qiáng)大,包括調(diào)試、項(xiàng)目管理、代碼跳轉(zhuǎn)、智能提示、自動補(bǔ)充、單元測試、版本控制等,對編程有非常大的輔助作用,十分適合開發(fā)較大型的項(xiàng)目,也非常適合初學(xué)者。
2.PyCharn可以跨平臺使用,分為社區(qū)版和專業(yè)版,其中社區(qū)版是免費(fèi)的,專業(yè)版是需付費(fèi)使用的。1.3.2使用PyCharm1.4Python程序的編寫與運(yùn)行1.4.1Python程序運(yùn)行過程
首先由開發(fā)人員編寫程序代碼,也就是編碼階段。
其次,解釋器將程序代碼編譯為字節(jié)碼,字節(jié)碼是以后綴為pyc文件的形式存在,默認(rèn)放置在Python安裝目錄的peache文件夾下,主要作用是提高程序的運(yùn)行速度。
最后,解釋器將編譯好的字節(jié)碼載入一個Python虛擬機(jī)(PythonVirtualMachine)中運(yùn)行。Python的整個運(yùn)行過程如圖1-30所示。1.4Python程序的編寫與運(yùn)行1.4.2編寫與運(yùn)行Python小程序1.圓面積的計(jì)算。2.簡單的人機(jī)對話。3.同切圓的繪制。【任務(wù)實(shí)現(xiàn)】快樂學(xué)習(xí)、進(jìn)步一點(diǎn)點(diǎn)Python程序設(shè)計(jì)第2章Python語言基礎(chǔ)【教學(xué)目標(biāo)】
學(xué)習(xí)內(nèi)容Python語言的基本詞法變量和賦值數(shù)據(jù)類型:數(shù)字?jǐn)?shù)字運(yùn)算數(shù)據(jù)類型:字符串?dāng)?shù)據(jù)類型操作技能目標(biāo)能熟練運(yùn)用Python語言的基本詞法能理解Python變量的類型及賦值能運(yùn)用Python數(shù)字類型的各種數(shù)據(jù)及其運(yùn)算能使用Python字符串類型數(shù)據(jù)進(jìn)行各種操作能對各種不同數(shù)據(jù)類型進(jìn)行判斷及轉(zhuǎn)換任務(wù)一好好學(xué)習(xí)、天天向上
1951年,毛澤東主席題詞“好好學(xué)習(xí)、天天向上”,成為激勵一代代中國人奮發(fā)圖強(qiáng)的經(jīng)典短語。那么“天天向上”的力量有多強(qiáng)大呢?
本次的任務(wù)是使用Python程序來演算一下,其中利用Python內(nèi)置math數(shù)學(xué)模塊測試“天天向上”力量?!咎崾尽?/p>
一年365天,以第1天的能力值為基數(shù),記為1.0,當(dāng)好好學(xué)習(xí)時能力值相比前一天提高1‰,當(dāng)沒有學(xué)習(xí)時能力值相比前一天下降1‰。每天努力和每天放任,一年下來的能力值相差多少呢?根據(jù)題目,天天向上的力量是(1+0.001)365,相反則是(1-0.001)365。2.1Python語言的基本詞法2.1.1縮進(jìn)
Python語言采用嚴(yán)格縮進(jìn)來表明代碼的層次關(guān)系,代碼編寫中,縮進(jìn)可以用Tab鍵或多個空格實(shí)現(xiàn)。在Java、C/C++等語言中,用花括句表示代碼塊,例如。if(x>100){y=x*5-1;}else{y=0;}而Python使用縮進(jìn)或空格來表示代碼塊,通常語句未尾的冒號表示代碼塊的開始,例如。ifx>100:y=x*5-1else:y=02.1Python語言的基本詞法2.1.2注釋
注釋是程序員在代碼中加入的一行或多行信息,用來對語句、函數(shù)、數(shù)據(jù)結(jié)構(gòu)或方法等進(jìn)行說明。注釋是輔助性文字,會被編譯或解釋器略去,不被計(jì)算機(jī)執(zhí)行。Python語言中的注釋有兩種方法,單行注釋和多行注釋,單行注釋以#開頭,多行注釋以三個英文的單引號'''或三個英文的雙引號"""開頭和結(jié)尾。"""多行注釋開始下面的代碼根據(jù)變量x的值計(jì)算y的值注意代碼中使用縮進(jìn)表示代碼塊多行注釋結(jié)束"""x=5ifx>100:
y=x*5-1#單行注釋:x>100時執(zhí)行該語句else:y=0#單行注釋:x<=100時執(zhí)行該語句print(y)#單行注釋:輸出y2.1Python語言的基本詞法2.1.3續(xù)行
在遇到較長的語句時,可使用語句續(xù)行符號,將一條語句寫在多行之中。
Python有兩種續(xù)行方式。一種是使用“\”符號;另一種續(xù)行方式是使用括號(包括圓括號()、方括號[]和大括號{}等),括號中的內(nèi)容可分多行書寫,括號中的空白和換行符都會被忽略。使用“\”符號,例如。ifx<100andx>10:y=x*5-1else:y=0使用括號,例如。if(x<100#這是多行語句中的注釋andx>10):y=x*5-1else:y=02.1Python語言的基本詞法2.1.4分隔
Python使用分號分隔語句,從而將多條語句寫在一行。print(10);print(5+2)2.1.5標(biāo)識符
標(biāo)識符用來識別變量、函數(shù)、類、模塊以及對象的名稱。標(biāo)識符的第一個字符必須是字母(A~Z或a~z)或下劃線,其后的字符可以是字母、下劃線、或數(shù)字(0~9)。(1)Python標(biāo)識符區(qū)分大小寫,如:Data和data為不同的名稱。(2)以雙下劃線開始和結(jié)束的名稱通常具有特殊的含義,如:__init__為類的構(gòu)造函數(shù),要避免使用。(3)一些特殊的名稱,如is、if、for等作為Python語言的保留關(guān)鍵字,不能作為標(biāo)識符。2.1Python語言的基本詞法2.1.6關(guān)鍵字
關(guān)鍵字即預(yù)定義保留標(biāo)識符。關(guān)鍵字有特殊的語法含義,不能在程序中用作標(biāo)識符,否則會產(chǎn)生編譯錯誤。2.1Python語言的基本詞法2.1.7命名規(guī)則
2.2變量和賦值2.2.1變量與類型
變量用于引用在程序中可能會變化的值。在Python中,存儲一個數(shù)據(jù)需要利用變量。
number1=25#number1就是一個變量number2=100#number2也是一個變量result=number1+number2#把number1和number2中存儲的數(shù)據(jù)累加起來,然后放到新的result變量中。如果給變量取非法名稱,解釋器會提示語法錯誤,例如。2texts='happystudy'#第一個字符不能是數(shù)字
SyntaxError:invalidsyntaxxiaozhang@xiaoming='perfect'#只能由字母、下畫線和數(shù)字組成
SyntaxError:EOLwhilescanningstringliteral
Python區(qū)分大小寫,number、Number和NUMBER是不同的標(biāo)識符。2.2變量和賦值2.2.2變量的聲明與賦值
賦值語句是將一個值指定給一個變量,在Python中賦值語句可以作為一個表達(dá)式,將等號“=”作為賦值操作符,賦值語句語法如下。
variable=expression(變量=表達(dá)式)
表達(dá)式表示涉及值、變量和操作符的一個運(yùn)算,它們組合在一起表達(dá)一個新值,并且表達(dá)式只有在賦值語句中才會計(jì)算得到結(jié)果。在Python中,不用顯式聲明變量,直接為變量賦值即可。x=5*(3/2)#表達(dá)式賦值print(x)7.5給變量賦值,變量名必須在賦值操作符的左邊,否則語句有誤。1=y
SyntaxError:can'tassigntoliteral鏈?zhǔn)劫x值用于為多個變量賦同一個值,例如。
x=y=123可以同時為多個對象指定不同的變量值,例如。a,b,c=1,2,"山雨欲來風(fēng)滿樓"2.2變量和賦值使用del語句刪除不再使用的變量。
>>>x=1
>>>delx >>>x#NameError:namexisnotdefined2.2.3刪除變量2.3數(shù)據(jù)類型:數(shù)字
數(shù)字類型是編程語言的語法基礎(chǔ),決定了程序如何存儲和處理數(shù)據(jù)。Python支持整數(shù)、浮點(diǎn)數(shù)、復(fù)數(shù)、小數(shù)、分?jǐn)?shù)五種數(shù)字類型。2.3數(shù)據(jù)類型:數(shù)字2.3.1整數(shù)
整數(shù)類型可細(xì)分為整型(int)和布爾型(bool)。整型常量是不帶小數(shù)點(diǎn)的數(shù)。2.3.2浮點(diǎn)數(shù)
浮點(diǎn)數(shù)類型的名稱為float。2.3.3復(fù)數(shù)
復(fù)數(shù)類型的名稱為complex。復(fù)數(shù)常量表示為“實(shí)部+虛部”形式,虛部以j或J結(jié)尾。2.3.4小數(shù)
小數(shù)可以看作是固定精度的浮點(diǎn)數(shù),它有固定的位數(shù)和小數(shù)點(diǎn),可以滿足規(guī)定精度的計(jì)算。2.3.5分?jǐn)?shù)
分?jǐn)?shù)使用fractions模塊中的Fraction()函數(shù)創(chuàng)建,其基本語法格式如下。
x=Fraction(a,b)
其中,a為分子,b為分母,Python自動計(jì)算x為最簡分?jǐn)?shù)2.4數(shù)字運(yùn)算2.4.1數(shù)字運(yùn)算操作符與表達(dá)式
2.4數(shù)字運(yùn)算2.4.1數(shù)字運(yùn)算操作符與表達(dá)式
表達(dá)式是可以計(jì)算的代碼片段,由操作數(shù)、運(yùn)算符和圓括按一定規(guī)則組成表達(dá)式。表達(dá)式通過運(yùn)算后產(chǎn)生運(yùn)算結(jié)果,運(yùn)算結(jié)果的類型由操作數(shù)和運(yùn)算符共同決定。表達(dá)式既可以非常簡單,也可以非常復(fù)雜。當(dāng)表達(dá)式包含多個運(yùn)算符時,運(yùn)算符的優(yōu)先級控制各運(yùn)算符的計(jì)算順序。例如,表達(dá)式x+y*z按x+(y*z)計(jì)算,因?yàn)?運(yùn)算符的優(yōu)先級高于+運(yùn)算符。Python表達(dá)式遵循下列書寫規(guī)則。(1)表達(dá)式從左到右在同一個基準(zhǔn)上書寫。例如,數(shù)學(xué)公式a2+b2應(yīng)該寫為:a**2+b**2。(2)運(yùn)算符不能省略。例如,數(shù)學(xué)公式ab(a乘以b)應(yīng)寫為:a*b。(3)括號必須成對出現(xiàn),而且只能使用圓括號,圓括號可以嵌套使用。例如數(shù)學(xué)表達(dá)式sin[a(x+1)+b]寫成Python表達(dá)式為:math.sin(a+(x+1)+b)。2.4數(shù)字運(yùn)算2.4.2常用數(shù)字處理函數(shù)
1.內(nèi)置的常用數(shù)學(xué)函數(shù)2.math模塊【任務(wù)實(shí)現(xiàn)】程序如下:importmathbase=0.001 #能力值提高值dayu=math.pow((1.0+base),365)daydown=math.pow((1.0-base),365)print("向上:{:.2f},向下:{:.2f}.".format(dayu,daydown))程序輸出結(jié)果如下:向上:1.44,向下:0.69.從結(jié)果可觀察到,每天努力1‰,一年下來將提高44%,好像不多?如果好好學(xué)習(xí)時能力值相比前一天提高1%,效果相差是中多少呢?任務(wù)二祝福祖國生日快樂【提示】(1)使用strip()函數(shù)去除前后空格。(2)使用lower()函數(shù)將英文字母小寫。(3)使用replace()函數(shù)替換不規(guī)范的用語。2.5數(shù)據(jù)類型:字符串
字符串是一種有序的字符集合,用于表示文本數(shù)據(jù)。字符串中的字符可以是各種Unicode字符。字符串屬于不可變序列,即不能修改字符串。字符串中的字符按照從左到右的順序,具有位置順序即支持索引、分片等操作。2.5.1字符串常量Python字符串常量可用下列多種方法表示。單引號:'a'、'123'、'abc'。雙引號:"a"、"123"、"abc"。三個單引號或雙引號:"'Pythoncode"'、"'"'Pythonstring""''。帶“r”或“R”前綴的Raw字符串:r'abc\n123'、R'abc\n123'。帶“u”或“U”前綴的Unicode字符串:u'asdf'、U'asdf'。字符串默認(rèn)為Unicode字符串,“u”或“U”前綴可以省略。2.5數(shù)據(jù)類型:字符串2.5.1字符串常量1.轉(zhuǎn)義字符2.Raw字符串Python不會解析Raw字符串中的轉(zhuǎn)義字符。Raw字符串的典型應(yīng)用是表示W(wǎng)indows系統(tǒng)中的文件路徑,使用示例如下。myfile=open('D:\temp\newpy.py','r')myfile=open(r'D:\temp\newpy.py','r')2.5數(shù)據(jù)類型:字符串2.5.2字符串操作符Python提供了5個字符串操作符:in、空格、加號、星號和逗號。1.in:字符串是字符的有序集合,可用操作符判斷字符串包含關(guān)系。2.空格:以空格分隔(或者沒有分隔符號)的多個字符串可自動合并。3.加號:加號可將多個字符串合并。4.星號:星號用于將字符串復(fù)制多次以構(gòu)成新的字符串。5.逗號:在使用逗號分隔字符串時,會創(chuàng)建字符串組成的元組。2.5.3字符串的索引
字符串是一個有序的集合,其中的每個字符可通過偏移量進(jìn)行索引或分片。字符串中的字符按從左到右的順序,偏移量依次為:0、1、2……end-1(最后一個字符的偏移量為字符串長度減1);或者為:-end……-2、-1。2.5數(shù)據(jù)類型:字符串2.5.4字符串的切片
字符串的切片也稱分片,它利用索引范圍從字符串中獲得連續(xù)的多個字符(即子字符串)。其基本格式如下。
x[start:end]
表示返回字符串x中從偏移量start開始到偏移量end之前的子字符串。start和end參數(shù)均可省略,start默認(rèn)為0,end默認(rèn)為字符串長度。2.5.5迭代字符串
字符串是有序的字符集合,可用for循環(huán)迭代處理字符串,例如。>>>forain"abc": print(a)abc2.5數(shù)據(jù)類型:字符串2.5.6字符串處理函數(shù)常用的字符串處理函數(shù)包括len()、str()、ord()和chr()等。1.求字符串長度2.字符串轉(zhuǎn)換3.字符Unicode碼的轉(zhuǎn)換2.5.7字符串處理方法字符串是str類型的對象,Python提供了一系列方法用于字符串的處理。2.5數(shù)據(jù)類型:字符串2.5.8格式化字符串Python中有兩種方法格式化字符串。1.使用“%”操作符
在Python中,要實(shí)現(xiàn)格式化字符串,可以使用“%”操作符,其基本格式如下。格式字符串%(參數(shù)1,參數(shù)2…)
“%”之前為格式字符串,“%”之后為需要填入格式字符串中的參數(shù)。多個參數(shù)之間用逗號分隔。只有一個參數(shù)時,可省略圓括號。在格式字符串中,用格式控制符代表要填入的參數(shù)的格式。2.5數(shù)據(jù)類型:字符串2.5.8格式化字符串
格式控制符的基本格式如下。
%[name][flags][width[.precision]]格式控制符
其中,name為圓括號括起來的字典對象的鍵,width指定數(shù)字的寬度,.precision指定數(shù)字的小數(shù)位數(shù)。flags為標(biāo)識符,可使用下列符號。
“+”:在數(shù)值前面添加正數(shù)(+)或負(fù)數(shù)(-)符號。
“-”:在指定數(shù)字寬度時,當(dāng)數(shù)字位數(shù)小于寬度時,將數(shù)字左對齊,末尾填充空格。
“0”:在指定數(shù)字寬度時,當(dāng)數(shù)字位數(shù)小于寬度時,在數(shù)字前面填充0。與“+”或“-”同時使用時,“0”標(biāo)識不起作用。
“”:空格,在正數(shù)前添加一個空格表示符號位。2.5數(shù)據(jù)類型:字符串2.5.8格式化字符串2.使用format()方法
使用“%”操作符是早期Python中提供的方法,自從Python2.6版本開始,字符串提供了format()方法對字符串進(jìn)行格式化。其基本格式如下。
<模板字符串>.format(<逗號分隔的參數(shù)>)
format()方法中模板字符串的槽除了包括參數(shù)序號,還可以包括格式控制信息,此時,槽的內(nèi)部樣式如下。
{<參數(shù)序號>:<格式控制標(biāo)記>}
其中,格式控制標(biāo)記用來控制參數(shù)顯示時的格式,格式內(nèi)容如圖2-1所示。2.6數(shù)據(jù)類型操作2.6.1類型判斷
可以使用type()函數(shù)查看數(shù)據(jù)類型。2.6.2類型轉(zhuǎn)換1.轉(zhuǎn)換整數(shù)
可以使用int()函數(shù)將一個字符串按指定進(jìn)制轉(zhuǎn)換為整數(shù)?;靖袷饺缦隆?/p>
int('整數(shù)字符串',n)2.轉(zhuǎn)換浮點(diǎn)數(shù)
float()函數(shù)可將整數(shù)和字符串轉(zhuǎn)換為浮點(diǎn)數(shù)。【任務(wù)實(shí)現(xiàn)】程序如下:string1='haPPyBiRthDAyTou'string2='HappybiRthDAyTou'string3='haPpyBirThdAy2China'string4='happybirthday2u'string1=string1.strip().lower().replace('u','you').replace('2','to')string2=string2.strip().lower().replace('u','you').replace('2','to')string3=string3.strip().lower().replace('u','you').replace('2','to')string4=string4.strip().lower().replace('u','you').replace('2','to')print(string1)print(string2)print(string3)print(string4)快樂學(xué)習(xí)、進(jìn)步一點(diǎn)點(diǎn)Python程序設(shè)計(jì)第3章Python語句流程結(jié)構(gòu)【教學(xué)目標(biāo)】
學(xué)習(xí)內(nèi)容順序結(jié)構(gòu)程序設(shè)計(jì)選擇結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)技能目標(biāo)會使用輸入input()函數(shù)、輸出print()函數(shù)能對if的單分支、雙分支、多分支及嵌套語句熟練使用能對while循環(huán)語句、for語句、break語句和coutinue語句熟練使用會使用range()函數(shù)任務(wù)一喝酒不開車,開車不喝酒
喝酒不開車,開車不喝酒,這不僅僅是一句宣傳語,而是一種責(zé)任。車輛駕駛?cè)藛T血液中的酒精含量大于或等于20mg/100mL并且小于8mg/100mL時屬于酒后駕車,血液中的酒精含量大于或等于80mg/100mL為醉酒駕車??墒褂煤粑骄凭珯z測儀現(xiàn)場檢驗(yàn),由檢測儀打印出結(jié)果:酒后駕車,暫扣6個月駕駛證,并處1000以上2000元以下罰款,一次扣12分。醉酒駕車,罰款5000元,一次扣12分,處15日以下拘留,并且5年內(nèi)不得重新獲得駕照。本次的任務(wù)是使用Python程序?qū)崿F(xiàn)檢測儀的判斷與輸出功能(直接由鍵盤輸入血液中的酒精含量)。【提示】
該任務(wù)中涉及一個變量即血液中的酒精含量(mg/100ml),設(shè)為數(shù)字類型y,先從鍵盤輸入數(shù)據(jù)賦值給y,再判斷如果y<20,則輸出為“不是酒駕,請放行!”;如果判斷y大于或等于20且小于80,則輸出顯示為“酒后駕車:罰款1000~2000元,暫扣6個月駕駛證,一次扣12分!”;如果判斷y≥80,則輸出顯示為“醉酒駕車:罰款5000元,一次扣12分,處15日以下拘留,并且5年內(nèi)不得重新獲得駕照!”。3.1順序結(jié)構(gòu)程序設(shè)計(jì)3.1.1輸出函數(shù)print()
順序結(jié)構(gòu)是最簡單的程序結(jié)構(gòu),是構(gòu)成復(fù)雜程序的基礎(chǔ),順序結(jié)構(gòu)程序由簡單語句組成,語句按書寫順序執(zhí)行,且每條語句都被執(zhí)行
Python的基本輸出語句使用的是print()函數(shù),其基本語法如下。
print([obj1,obj2,...][,sep=""][,end="\n"][,file=sys.stdout])基本輸出中的數(shù)據(jù)對象(obj)可以是數(shù)值、字符串,也可以是列表、元組、字典或者是集合。輸出時會將逗號間的內(nèi)容用空格分隔開。。1.省略所有參數(shù)2.輸出一個或多個數(shù)據(jù)對象3.使用指定輸出分隔符4.指定輸出結(jié)尾符號5.輸出到文件3.1順序結(jié)構(gòu)程序設(shè)計(jì)3.1.2輸入函數(shù)input()
基本語法如下。
變量=input("提示字符串")其中,變量和提示字符串均可省略。input()函數(shù)將用戶輸入的內(nèi)容作為字符串返回。用戶按Enter鍵結(jié)束輸入,Enter鍵之前的全部字符均作為輸入內(nèi)容。指定變量時,變量將保存輸入的字符串。3.2選擇結(jié)構(gòu)程序設(shè)計(jì)3.2.1if單分支語句
if語句單分支結(jié)構(gòu)的語法形式如下。
if條件表達(dá)式:語句/語句塊其中:(1)條件表達(dá)式可以是關(guān)系表達(dá)式、邏輯表達(dá)式、算術(shù)表達(dá)式等。(2)語句/語句塊可以是單個語句,也可以是多個語句。多個語句的縮進(jìn)必須對齊一致。(3)條件表達(dá)式的值為真(True)時,執(zhí)行后面的語句(塊),否則不做任何操作,控制將轉(zhuǎn)到語句的結(jié)束點(diǎn)。
選擇結(jié)構(gòu)是根據(jù)條件來控制代碼執(zhí)行分支語句,選擇結(jié)構(gòu)也叫分支結(jié)構(gòu)。Python使用if語句來實(shí)現(xiàn)分支結(jié)構(gòu)。實(shí)例一輸入一個學(xué)生的兩門課程的考試成績(設(shè)為x1,x2),如果兩門成績均大于或等于60分,則輸出“pass”。x1=eval(input("請輸入第一門課程的考試成績:"))x2=eval(input("請輸入第二門課程的考試成績:"))ifx1>=60andx2>=60:print("pass")3.2選擇結(jié)構(gòu)程序設(shè)計(jì)3.2.2if雙分支語句
if語句雙分支結(jié)構(gòu)的語法形式如下。
if條件表達(dá)式:
語句/語句塊1else:
語句/語句塊2實(shí)例二提示用戶輸入密碼(key),如果正確(等于123),則顯示“密碼正確!”信息;否則,顯示“密碼錯誤”信息。key=int(input("請輸入密碼:"))ifkey==123:print("密碼正確!")else:print("密碼錯誤!")3.2選擇結(jié)構(gòu)程序設(shè)計(jì)3.2.3if多分支語句
if語句多分支結(jié)構(gòu)的語法形式如下。
if條件表達(dá)式1:
語句/語句塊1elif條件表達(dá)式2:
語句/語句塊2…elif條件表達(dá)式n:
語句/語句塊n[else:
語句/語句塊n+1]實(shí)例三根據(jù)用戶輸入的期未考試成績(如:mark),輸出相應(yīng)的成績評定信息。成績大于或等于90分輸出“優(yōu)”;成績大于或等于80分小于90分輸出“良”;成績大于或等于70分小于80分輸出“中”;成績大于或等于60分小于70分輸出“及格”;成績小于60分輸出“差”。mark=eval(input("請輸入分?jǐn)?shù):"))ifmark>=90:print("優(yōu)")elifmark>=80:print("良")elifmark>=70:print("中")elifmark>=60:print("及格")else:print("不及格"3.2選擇結(jié)構(gòu)程序設(shè)計(jì)3.2.4if語句嵌套
一般形式如下。
if條件表達(dá)式1: if條件表達(dá)式11: 語句/語句塊1else: 語句/語句塊2else: if條件表達(dá)式21: 語句/語句塊3else: 語句/語句塊4實(shí)例四任意輸入三個整數(shù),找出其中最大的數(shù)。a=int(input("請輸入第一個整數(shù):"))b=int(input("請輸入第二個整數(shù):"))c=int(input("請輸入第三個整數(shù):"))ifa>b:ifa>c:max=aelse:max=celse:ifb>c:max=belse:max=cprint("最大數(shù)為:",max)【任務(wù)實(shí)現(xiàn)】程序如下:y=eval(input("請輸入血液中的酒精含量(mg/100ml):"))ify<20:print("不是酒駕,請放行!")elify>=20andy<80:print("酒后駕車:罰款1000-2000元,暫扣6個月駕駛證,一次扣12分!")elify>=80:print("醉酒駕車:罰款5000元,一次扣12分,處15日以下拘留,并且5年內(nèi)不得重新獲得駕照!")任務(wù)二解密銀行卡
每個人都有多張銀行卡,有時候記不清密碼,在ATM機(jī)上連續(xù)輸入錯誤3次后銀行卡就會鎖定,這時該怎么辦呢?其實(shí)這時持卡人帶上自己的有效證件前往銀行柜臺,申請銀行卡解鎖和密碼重置,銀行會對信息審核,信息審核通過后當(dāng)場就可以申請密碼的重置。本次的任務(wù)是使用Python程序?qū)崿F(xiàn)銀行卡登錄功能,用戶輸入的密碼與設(shè)置好的密碼進(jìn)行對比,一致則輸出“歡迎進(jìn)入銀行系統(tǒng)!”,否則給第二、第三次輸入密碼機(jī)會;如果用戶輸入了3次密碼都不一致,那么結(jié)束程序并顯示“很抱歉,你已經(jīng)退出系統(tǒng)!”?!咎崾尽?/p>
程序運(yùn)行后,首先進(jìn)入登錄界面。為了更好地與用戶進(jìn)行交互,可以利用輸出語句打印出登錄界面。接著提示用戶輸入密碼,將用戶的密碼與系統(tǒng)密碼進(jìn)行比對,相等則表示密碼輸入正確,可進(jìn)入系統(tǒng)。如果用戶輸入的密碼不正確,則給第二、三次輸入密碼的機(jī)會??梢允褂醚h(huán)來實(shí)現(xiàn)此功能。3.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
計(jì)算機(jī)可以按規(guī)定的條件,重復(fù)執(zhí)行某些操作。例如,要輸入全校學(xué)生成績;求若干數(shù)之和等,這類問題都可以通過循環(huán)來實(shí)現(xiàn)。Python中的循環(huán)語句有while和for兩種形式。3.3.1while循環(huán)語句
基本格式如下。
while條件表達(dá)式:
循環(huán)體語句/語句塊以while開頭的那行代碼稱為循環(huán)的頭部,頭部中的條件表達(dá)式稱為循環(huán)的條件,代碼的縮進(jìn)塊稱為循環(huán)體,每執(zhí)行一次循環(huán)體稱為通過該循環(huán)的一輪。實(shí)例五利用while循環(huán)求1+2+3+…+100的累加總和、偶數(shù)的和、奇數(shù)的和。i=1;sum_all=0;sum_odd=0;sum_even=0whilei<=100:sum_all+=iifi%2==0:sum_even+=ielse:sum_odd+=ii+=1print("1+2+3+…+100的累加總和:",sum_all)print("1+2+3+…+100的偶數(shù)的和:",sum_even)print("1+2+3+…+100的奇數(shù)的和:",sum_odd)3.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
for循環(huán)的基本格式如下。
for變量in序列:循環(huán)體語句/語句塊1[else:循環(huán)體語句/語句塊2]3.3.2for循環(huán)語句1.for語句輸出列表
fruits=['apple','orange','banana','grape']forfruitinfruits:print(fruit)程序輸出結(jié)果:appleorangebananagrape3.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)3.3.2for循環(huán)語句2.for語句修改列表元素#把banana改為applefruits=['apple','orange','banana','grape']foriinrange(len(fruits)):iffruits[i]=='banana':fruits[i]='apple'print(fruits)程序輸出結(jié)果:['apple','orange','apple','grape']3.for語句刪除列表元素#把列表中banana刪除fruits=['apple','orange','banana','grape']foriinfruits:ifi=='banana':fruits.remove(i)print(fruits)程序輸出結(jié)果:['apple','orange','grape']3.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)3.3.2for循環(huán)語句4.統(tǒng)計(jì)列表元素#統(tǒng)計(jì)apple的個數(shù)fruits=['apple','orange','banana','grape','apple']count=0foriinfruits:ifi=='apple':count+=1print("fruits列表中apple的個數(shù)="+str(count)+"個")程序輸出結(jié)果:fruits列表中apple的個數(shù)=2個3.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
Python內(nèi)置range()函數(shù)能返回一系列連續(xù)增加的整數(shù),range()函數(shù)大多數(shù)出現(xiàn)在for循環(huán)中作為索引使用,range()函數(shù)的一般形式是。
range(start,end[,step])參數(shù)含義如下。start:計(jì)數(shù)從start開始,默認(rèn)是從0開始,如range(5)等價于range(0,5)。end:計(jì)數(shù)到end結(jié)束,但不包括end,如range(0,5)是[0,1,2,3,4]沒有5。step:每次跳躍的間距,默認(rèn)為1,如range(0,5)等價于range(0,5,1)。3.3.3range()函數(shù)實(shí)例六利用for循環(huán)求1+2+3+…+100的累加總和、偶數(shù)的和、奇數(shù)的和。i=1;sum_all=0;sum_odd=0;sum_even=0foriinrange(1,101):sum_all+=iifi%2==0:sum_even+=ielse:sum_odd+=iprint("1+2+3+…+100的累加總和:",sum_all)print("1+2+3+…+100的偶數(shù)的和:",sum_even)print("1+2+3+…+100的奇數(shù)的和:",sum_odd)實(shí)例七輸出所有的“水仙花數(shù)”。所謂“水仙花數(shù)”是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如,153是一個水仙花數(shù),因?yàn)?53=13+53+33。實(shí)現(xiàn)思路:如何從一個三位數(shù)中提取各位數(shù)字是關(guān)鍵。這里借助%(取模-返回除法的余數(shù))和//(取整除-返回商的整數(shù)部分)來完成。foriinrange(100,1000):a=i%10 #個位數(shù)b=i//10%10 #十位數(shù)c=i//100#百位數(shù)if(i==a**3+b**3+c**3):print(i)3.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)for循環(huán)嵌套的基本格式如下。
for變量in序列:for變量in序列:循環(huán)體語句/語句塊1循環(huán)體語句/語句塊2while循環(huán)嵌套的基本格式如下。
while表達(dá)式:while表達(dá)式:循環(huán)體語句/語句塊1循環(huán)體語句/語句塊23.3.4循環(huán)嵌套實(shí)例八使用for語句嵌套輸出九九乘法表。foriinrange(1,10):forjinrange(1,i+1):print(“%d*%d=%d﹨t"%(j,i,j*i),end="")print()實(shí)例九使用while語句嵌套輸出九九乘法表。i=1whilei<10:j=1whilej<=i:print("%d*%d=%d﹨t"%(j,i,j*i),end="")j+=1i+=1print()3.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
break語句用于退出for或while循環(huán),即提前結(jié)束循環(huán),接著執(zhí)行循環(huán)語句的后繼語句。3.3.5break語句實(shí)例十使用break語句終止循環(huán)。forletterin"Python":ifletter=='h':breakprint("當(dāng)前字母是:",letter)3.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
continue語句類似于break語句,也在for或while循環(huán)中使用。但它只結(jié)束本次循環(huán)即跳過循環(huán)體內(nèi)自continue語句后尚未執(zhí)行的語句,返回到循環(huán)的起始處,并根據(jù)循環(huán)條件判斷是否執(zhí)行下一次循環(huán)。3.3.6coutinue語句實(shí)例十一輸入若干學(xué)生成績,如果輸入Q結(jié)束輸入,如果成績小于0,則重新輸入。最后統(tǒng)計(jì)并輸出學(xué)生人數(shù)和平均成績。num=0;scores=0#初始化學(xué)生人數(shù)和成績whileTrue:s=input("請輸人學(xué)生成績(按Q結(jié)束):")ifs.upper()=='Q':breakiffloat(s)<0:#成績必須>=0continuenum+=1#統(tǒng)計(jì)學(xué)生人數(shù)scores+=float(s) #累加成績print("學(xué)生人數(shù)為:%d,平均成績?yōu)?%.2f"%(num,scores/num))3.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)基本格式如下。
for變量in序列:循環(huán)體語句/語句塊1else:語句(塊)2或者:
whle條件表達(dá)式:循環(huán)體語句/語句塊1else:語句(塊)2。3.3.7else語句實(shí)例十二使用for語句的else子句。hobbies=""foriinrange(1,4):s=input("請輸人愛好之一(最多三個,按Q或q結(jié)束):")ifs.upper()=="Q":breakhobbies+=s+""else:print("你輸入了三個愛好。")print("您的愛好為:",hobbies)【任務(wù)實(shí)現(xiàn)】程序如下:i=1whilei<=3:print("-----歡迎進(jìn)入系統(tǒng)----------")print("請輸入你的密碼,你還有%d次機(jī)會:"%(4-i))key=int(input())ifkey==123: #判斷用戶密碼與系統(tǒng)密碼是否相等print("歡迎進(jìn)入銀行系統(tǒng)!") #密碼正確,利用break語句跳出循環(huán)breaki+=1ifi==4:print("很抱歉,你已經(jīng)退出系統(tǒng)!") #3次密碼都輸入錯誤,退出系統(tǒng)快樂學(xué)習(xí)、進(jìn)步一點(diǎn)點(diǎn)Python程序設(shè)計(jì)第4章Python數(shù)據(jù)結(jié)構(gòu)【教學(xué)目標(biāo)】
學(xué)習(xí)內(nèi)容Python常用數(shù)據(jù)結(jié)構(gòu)列表、元組、字典、集合迭代和列表解析技能目標(biāo)能理解Python各種數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)和適用場景會使用列表處理數(shù)據(jù)會使用元組處理數(shù)據(jù)會使用字典處理數(shù)據(jù)會使用集合處理數(shù)據(jù)能運(yùn)用迭代和列表解析處理各種類型的數(shù)據(jù)任務(wù)一學(xué)黨史,創(chuàng)佳績
建黨100周年之際,學(xué)校積極響應(yīng)黨和國家的號召,通過“學(xué)黨史,創(chuàng)佳績”活動,學(xué)校舉行黨史知識競賽,讓學(xué)生黨員、預(yù)備黨員以及入黨積極分子參加,最終有10名同學(xué)進(jìn)入決賽。
本次的任務(wù)是使用Python編寫成績排名程序,輸入10名同學(xué)的成績,對其進(jìn)行從高到低排序輸出?!咎崾尽?1)使用input()函數(shù)接收輸入。(2)將輸入的數(shù)據(jù)由字符串轉(zhuǎn)換成整數(shù)或浮點(diǎn)數(shù),然后將轉(zhuǎn)換好的數(shù)據(jù)保存到列表或元組中。(3)使用sort()函數(shù)進(jìn)行排序。(4)使用reverse()函數(shù)進(jìn)行反轉(zhuǎn)順序輸出。4.1Python常用數(shù)據(jù)結(jié)構(gòu)這4種數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)和適用場景分別如下。
列表(list)。列表是最常用的Python數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)在列表中是有序的,可以通過索引訪問列表中的數(shù)據(jù),并且列表中的數(shù)據(jù)可以修改。
元組(tuple)。元組與列表一樣,保存在其中的數(shù)據(jù)也是有序的,可以通過索引訪問元組中的數(shù)據(jù),但元組內(nèi)的數(shù)據(jù)不能修改。
字典(dict)。字典中的數(shù)據(jù)以鍵值對的形式保存,字典中的鍵是不重復(fù)的、唯的,通過鍵能夠快速地獲得對應(yīng)的值。字典中的數(shù)據(jù)是無序的。
集合(set)。集合中的數(shù)據(jù)是不重復(fù)的、無序的。4.2列表(list)4.2.1列表的概念與特點(diǎn)(1)列表中的數(shù)據(jù)是有序的,每個數(shù)據(jù)都會分配一個數(shù)字來標(biāo)識這個數(shù)據(jù)在列表中的位置,稱為索引。列表中第1個元素的索引是0,第2個元素的索引是1,其他元素的索引值以此類推,是一個升序整數(shù)數(shù)列。(2)列表的大小和列表中的元素都是可變的。(3)列表中可以存儲不同數(shù)據(jù)類型的數(shù)據(jù)。4.2列表(list)4.2.2使用列表存取數(shù)據(jù)1.創(chuàng)建列表
常用的創(chuàng)建列表的方法有兩種,一種是使用方括號[]進(jìn)行創(chuàng)建,另一種是使用list()函數(shù)進(jìn)行創(chuàng)建。
創(chuàng)建列表的基本格式如下。
變量=[數(shù)據(jù)1,數(shù)據(jù)2,...]實(shí)例一表1所示為某公司部分員工的信息,使用列表保存這些員工月薪數(shù)據(jù),并輸出。提示:先創(chuàng)建一個列表并將員工的月薪數(shù)據(jù)保存到列表中,再使用print()函數(shù)將列表打印出。salary=[10000,5200,4700,3860,1200,8500]print(salary)程序輸出結(jié)果:[10000,5200,4700,3860,1200,8500]4.2列表(list)4.2.2使用列表存取數(shù)據(jù)2.使用索引訪問列表數(shù)據(jù)
為訪問提取列表中的某個元素,可以在列表名稱后面緊接方括號[]包括索引,這樣就能訪問提取出列表中對應(yīng)的元素。
索引列表的基本格式如下。
變量=列表[索引]實(shí)例二在實(shí)例一的基礎(chǔ)上,通過索引顯示第3個員工和倒數(shù)第2個員工的月薪。提示:第3個員工的月薪數(shù)據(jù)是列表中的第3個元素,因?yàn)檎蛩饕龔?開始計(jì)算,所以它的索引值為2;倒數(shù)第2個員工的月薪數(shù)據(jù)是列中的倒數(shù)第2個元素,反向索引的索引值從-1開始計(jì)算,所以它的索引值為-2。程序輸出參考結(jié)果:列表中第3個員工的月薪是4700列表中倒數(shù)第2個員工的月薪是1200salary=[10000,5200,4700,3860,1200,8500]print("列表中第3個員工的月薪是%d"%(salary[2]))print("列表中倒數(shù)第2個員工的月薪是%d"%(salary[-2]))程序輸出結(jié)果:列表中第3個員工的月薪是4700列表中倒數(shù)第2個員工的月薪是12004.2列表(list)4.2.2使用列表存取數(shù)據(jù)3.更新列表中的值Python中也有很多方法支持對列表對象進(jìn)行操作,對列表對象進(jìn)行元素的增添、刪除、修改、查詢等,更新列表中數(shù)據(jù)的常用方法如表2所示實(shí)例三實(shí)例三:在實(shí)例一的基礎(chǔ)上,對保存員工月薪數(shù)據(jù)的列表進(jìn)行以下操作,并輸出更新后的列表。(1)公司新招了一名員工,月薪為3000元,將此數(shù)據(jù)加入到列表末尾。(2)公司新招了一名員工,月薪為4500元,將此數(shù)據(jù)插入到列表中索引為2的位置。(3)移除列表中最后一個數(shù)據(jù),并顯示被移除的數(shù)據(jù)的值。(4)將列表中的第2個數(shù)據(jù)的值增加100。(5)刪除列表中第5個數(shù)據(jù)。提示:在列表末尾添加數(shù)據(jù)使用append();在列表中的指定位置添加數(shù)據(jù)使用insert();移除列表中的數(shù)據(jù)并獲得該數(shù)據(jù)的值使用pop();使用可以修改指定索引位置的數(shù)據(jù),第2個數(shù)據(jù)的索引值為1;使用del可以刪除指定索引位置的數(shù)據(jù),第5個數(shù)據(jù)的索引值為4。4.2列表(list)4.2.2使用列表存取數(shù)據(jù)4.遍歷列表
如果要在遍歷列表的過程中修改列表中的元素或獲取當(dāng)前元素在列表中的索引值,可以先使用len()函數(shù)獲取列表長度,再使用range()函數(shù)生成遍歷列表的索引數(shù)列,最后在for循環(huán)中通過索引訪問或修改列表中的元素。實(shí)例四在例4-1的基礎(chǔ)上,按照列表元素的順序遍歷輸出所有員工的月薪。實(shí)現(xiàn)思路:利用for循環(huán)遍歷列表中的數(shù)據(jù)。salary=[10000,5200,4700,3860,1200,8500]foriteminsalary:print("員工的月薪是%d"%item)程序輸出結(jié)果:員工的月薪是員工的月薪是120010000員工的月薪是5200員工的月薪是4700員工的月薪是3860員工的月薪是8500實(shí)例五在實(shí)例一的基礎(chǔ)上,將所有月薪小于5000元的員工薪修改為5000元,并輸出其索引值。提示:使用for循環(huán)遍歷列表,在遍歷過程中修改列表數(shù)據(jù)的值,需要借助len()函數(shù)和range()函數(shù)生成遍歷索引的數(shù)列;同時,在遍歷過程中判斷員工月薪是否小于5000元。若小于5000元,則修改其月薪為5000元并輸出其索引值。salary=[10000,5200,4700,3860,1200,8500]forindexinrange(len(salary)):ifsalary[index]<5000:salary[index]=5000print("索引為%d的員工月薪小于5000"%index)print("修改后的列表:")print(salary)程序輸出結(jié)果:索引為2的員工月薪小于5000索引為3的員工月薪小于5000索引為4的員工月薪小于5000修改后的列表:[10000,5200,5000,5000,5000,8500]4.2列表(list)4.2.2使用列表存取數(shù)據(jù)5.二維列表
列表中的元素還可以是另一個列表,這種列表稱為多維列表。只有一層嵌套的多維列表稱為二維列表。在實(shí)際應(yīng)用中,三維及以上的多維列表很少使用,主要使用的是二維列表,其基本格式如下。
變量=[[元素1,元素2,...][元素1,元素2,...],...]實(shí)例六使用列表保存表1中所有員工的工號、姓名和月薪信息,再使用for循環(huán)遍歷輸出所有的員工信息。提示:員工數(shù)據(jù)包括工號、姓名和月薪,有的是字符串類型,有的是數(shù)值類型。因?yàn)楸碇械脑仡愋涂梢允遣幌嗤模钥墒褂昧斜韥肀4嬉粋€員工的數(shù);將員工數(shù)據(jù)列表作為另一個列表的元素,構(gòu)造二維列表;使用嵌套for循環(huán)遍歷二維列表中的數(shù)據(jù)值。employee_infos=[["Al","王華華",10000],["A2","李偉東",5200],["A3","張三",4700],["A4","李強(qiáng)",3860],["A5","陳五",1200],["A6","楊廣",8500]]foremployee_infoinemployee_infos:foriteminemployee_info:print(item,end="")print()程序輸出結(jié)果:Al王華華10000A2李偉東5200A3張三4700A4李強(qiáng)3860A5陳五1200A6楊廣85004.3元組(tuple)4.3.1元組的概念與特點(diǎn)(1)元組中存儲的數(shù)據(jù)是有序的,每個元素都可以使用索引進(jìn)行訪問,索引規(guī)則與列表一致。(2)元組的大小和元組中的元素都是只讀的、不可變的。(3)元組中可以存儲不同數(shù)據(jù)類型的數(shù)據(jù)。4.3元組(tuple)4.3.2創(chuàng)建元組
常用的創(chuàng)建方法有使用圓括號()創(chuàng)建和使用tuple()函數(shù)創(chuàng)建。
基本格式如下。
變量=(數(shù)據(jù)1,數(shù)據(jù)2,…)實(shí)例七使用元組保存表1中的員工月薪數(shù)據(jù),將元組中第3個數(shù)據(jù)修改為6200元并輸出。salary=(10000,5200,4700,3860,1200,8500)print(salary)salary[2]=6200print(salary)程序輸出結(jié)果:(10000,5200,4700,3860,1200,8500)TypeError:'tuple'objectdoesnotsupportitemassignment【任務(wù)實(shí)現(xiàn)】程序如下:r=10#學(xué)生人數(shù)x=[]#創(chuàng)建列表foriinrange(r):a=eval(input('請輸入第{}個數(shù):'.format(i+1)))x.append(a) #將數(shù)據(jù)加入列表print('列表:',x)y=tuple(x) #創(chuàng)建元組print('元組:',y)x.sort() #列表排序x.reverse() #反轉(zhuǎn)順序print('從高到低:',end='')forvinx:print(v,end='')共學(xué)《中國共產(chǎn)黨入黨誓詞》
入黨誓詞是《中國共產(chǎn)黨章程》的重要內(nèi)容,是每一位共產(chǎn)黨員對人民的莊嚴(yán)承諾。共學(xué)《中國共產(chǎn)黨入黨誓詞》守初心、擔(dān)使命、創(chuàng)偉業(yè)。為了深刻的學(xué)習(xí)入黨誓詞,
本次的任務(wù)是使用Python編寫統(tǒng)計(jì)《中國共產(chǎn)黨入黨誓詞》中使用的漢字和標(biāo)點(diǎn)的次數(shù),其中利用字典數(shù)據(jù)類型存儲及輸出每個漢字和標(biāo)點(diǎn)使用的次數(shù)。【提示】(1)使用字符串保存《中國共產(chǎn)黨入黨誓詞》全文。(2)遍歷字符串中所有的漢字和標(biāo)點(diǎn)。(3)在遍歷過程中統(tǒng)計(jì)使用到了哪些漢字和標(biāo)點(diǎn)。(4)在遍歷過程中統(tǒng)計(jì)使用到的漢字和標(biāo)點(diǎn)的個數(shù)。(5)使用字典結(jié)構(gòu)統(tǒng)計(jì)漢字和標(biāo)點(diǎn)個數(shù)。(6)判斷新字符是否存在于字典中,如果不存在,則添加新字符到字典中并將value賦值為1;如果已存在,則將value數(shù)加1。(7)使用for循環(huán)遍歷輸出漢字、標(biāo)點(diǎn)的個數(shù)。。4.4字典(dict)4.4.1字典的概念與特點(diǎn)(1)鍵必須是唯一的,但值可以是不唯一。(2)鍵的類型只能是字符串、數(shù)字或者元組,值可以是任意數(shù)據(jù)類型。(3)通過鍵可以快速地獲取與其唯一對應(yīng)的值。(4)字典中的數(shù)據(jù)保存是無序的。(5)字典中的數(shù)據(jù)是可變的。4.4字典(dict)4.4.2使用字典存取數(shù)據(jù)1.創(chuàng)建字典
Python中常用的兩種創(chuàng)建字典的方法分別是使用花括號{}創(chuàng)建和使用函數(shù)dict()創(chuàng)建。
基本格式如下。
變量={鍵1:值1,鍵2:值2,...}實(shí)例八使用字典保存表4-1中的員工數(shù)據(jù),其中員工工號作為字典的鍵,姓名和月薪組成的列表作為字典的值。employee_infos={"Al":["王華華",10000],"A2":["李偉東",5200],"A3":["張三",14700],"A4":["李強(qiáng)",3860],"A5":["陳五",1200],"A6":["楊廣",8500]}print(employee_infos)程序輸出結(jié)果:{'Al':['王華華',10000],'A2':['李偉東',5200],'A3':['張三',14700],'A4':['李強(qiáng)',3860],'A5':['陳五',1200],'A6':['楊廣',8500]}4.4字典(dict)4.4.2使用字典存取數(shù)據(jù)2.提取字典數(shù)據(jù)
字典中的數(shù)據(jù)是通過鍵來訪問的。通過在字典名稱后緊跟方括號[]包括的鍵可以提取相應(yīng)的值。
基本格式如下:
變量=字典[鍵]實(shí)例九在例4-8的基礎(chǔ)上,從字典中獲取員工工號為"A4"的員工信息employee_infos={"Al":["王華華",10000],"A2":["李偉東",5200],"A3":["張三",14700],"A4":["李強(qiáng)",3860],"A5":["陳五",1200],"A6":["楊廣",8500]}employee_info=employee_infos["A4"]print("工號為A4的員工信息:")print(employee_info)程序輸出結(jié)果:工號為A4的員工信息:['李強(qiáng)',3860]實(shí)例十在例4-8的基礎(chǔ)上,判斷是否有工號為“A9”的員工,如果存在,則輸出該員工的信息;如果不存在,則輸出“工號不存在”employee_infos={"Al":["王華華",10000],"A2":["李偉東",5200],"A3":["張三",14700],"A4":["李強(qiáng)",3860],"A5":["陳五",1200],"A6":["楊廣",8500]}employee_num="A9“ifemployee_numinemployee_infos:employee_info=employee_infos[employee_num]print("號為%s的員工信息:"%employee_num)print(employee_info)else:print("工號不存在")程序輸出結(jié)果:工號不存在實(shí)例十一在例4-8的基礎(chǔ)上,遍歷字典中所有員工信息并輸出。實(shí)現(xiàn)思路:使用for循環(huán)遍歷字典,獲得所有員工的工號;在循環(huán)代碼塊中,通過員工工號獲取員工信息,從而達(dá)到遍歷員工信息的目的;最后輸出員工工號及對應(yīng)的員工信息。employee_infos={"Al":["王華華",10000],"A2":["李偉東",5200],"A3":["張三",14700],"A4":["李強(qiáng)",3860],"A5":["陳五",1200],"A6":["楊廣",8500]}foremployee_numinemployee_infos:employee_info=employee_infos[employee_num]print("工號為%s的員工信息:"%employee_num)print(employee_info)程序輸出結(jié)果:工號為Al的員工信息:['王華華',10000]工號為A2的員工信息:['李偉東',5200]工號為A3的員工信息:['張三',14700]工號為A4的員工信息:['李強(qiáng)',3860]工號為A5的員工信息:['陳五',1200]工號為A6的員工信息:['楊廣',8500]4.4字典(dict)4.4.2使用字典存取數(shù)據(jù)3.更新字典中的數(shù)據(jù)
向字典中添加數(shù)據(jù)和修改數(shù)據(jù)的語法相同,其基本格式如下。
字典[鍵]=值
如果鍵不存在于字典中,就向字典中添加新的鍵和值,如果鍵已經(jīng)存在于字典中,就將新值賦給鍵對應(yīng)的值。實(shí)例十二在例4-8的基礎(chǔ)上,對員工信息進(jìn)行以下修改:(1)向字典中添加一個新的員工數(shù)據(jù):工號是A7姓名是李楊,月薪是9000。(2)將工號為A4的員工的月薪修改為4900。(3)輸出修改后的員工信息。employee_infos={"Al":["王華華",10000],"A2":["李偉東",5200],"A3":["張三",14700],"A4":["李強(qiáng)",3860],"A5":["陳五",1200],"A6":["楊廣",8500]}employee_infos["A7"]=["李楊",9000]employee_info=employee_infos["A4"]employee_info[1]=4900employee_infos["A4"]=employee_infoprint(employee_infos)程序輸出結(jié)果:{'Al':['王華華',10000],'A2':['李偉東',5200],'A3':['張三',14700],'A4':['李強(qiáng)',4900],'A5':['陳五',1200],'A6':['楊廣',8500],'A7':['李楊',9000]}4.4字典(dict)4.4.2使用字典存取數(shù)據(jù)4.刪除字典中的數(shù)據(jù)
字典中的數(shù)據(jù)也可以刪除,刪除字典中的值是通過鍵來完成的,其基本格式如下。del字典[鍵]實(shí)例十三在例4-8的基礎(chǔ)上,刪除工號為“A4”的員工信息,將修改后字典中保存的員工信息輸出。employee_infos={"Al":["王華華",10000],"A2":["李偉東",5200],"A3":["張三",14700],"A4":["李強(qiáng)",3860],"A5":["陳五",1200],"A6":["楊廣",8500]}delemployee_infos["A4"]print(employee_infos)程序輸出結(jié)果:{'Al':['王華華',10000],'A2':['李偉東',5200],'A3':['張三',14700],'A5':['陳五',1200],'A6':['楊廣',8500]}4.5集合(set)4.5.1集合的概念與特點(diǎn)(1)集合中保存的數(shù)據(jù)是唯一的,不重復(fù)的。(2)向集合中添加重復(fù)數(shù)據(jù)后,集合只會保留一個。(3)集合中保存的數(shù)據(jù)是無序的。4.5集合(set)4.5.2使用集合存取數(shù)據(jù)1.創(chuàng)建集合
創(chuàng)建集合的情況分為兩種。創(chuàng)建一個空集合,其基本格式如下。
變量=set()
創(chuàng)建一個非空集合,其基本格式如下。
變量={元素1,元素2,...}實(shí)例十四某連鎖餐飲公司兩家分店當(dāng)日銷售菜品的部分清單,如表4-3所示。創(chuàng)建一個非空集合用來統(tǒng)計(jì)a分店當(dāng)日銷售的菜品種類,并輸出集合中的數(shù)據(jù)branch_a={"魚香肉絲","米飯","魚香肉絲","水煮牛肉","米飯","蔥爆羊肉","蛋炒飯"}print("a店當(dāng)日銷售的菜品種類:")print(branch_a)程序輸出結(jié)果:a店當(dāng)日銷售的菜品種類:{'魚香肉絲','米飯','水煮牛肉','蛋炒飯','蔥爆羊肉'}4.5集合(set)4.5.2使用集合存取數(shù)據(jù)2.使用集合
可以向一個已經(jīng)存在的集合中添加或刪除元素,添加元素使用add()方法,刪除元素使用remove()方法。實(shí)例十五根據(jù)表4-3創(chuàng)建一個集合用來統(tǒng)計(jì)b分店當(dāng)日銷售的菜品種類,并輸出集合中的數(shù)據(jù)。要求先創(chuàng)建一個空集合,然后使用add()方法向集合中添加數(shù)據(jù)。branch_b=set()#創(chuàng)建空集合,向集合中添加菜品名稱#使用add()向集合中添加數(shù)據(jù)branch_b.add("魚香肉絲")branch_b.add("米飯")branch_b.add("米粉肉")branch_b.add("米飯")branch_b.add("烤鴨")branch_b.add("水煮牛肉")branch_b.add("蛋炒飯")print("b店當(dāng)日銷售的菜品種類:")print(branch_b)程序輸出結(jié)果:b店當(dāng)日銷售的菜品種類:{'烤鴨','魚香肉絲','蛋炒飯','水煮牛肉','米飯','米粉肉'}實(shí)例十六在例4-14的基礎(chǔ)上遍歷輸出a分店當(dāng)日銷售的菜品種類,并判斷a分店是否賣過米粉肉,將結(jié)果輸出。branch_a={"魚香肉絲","米飯","魚香肉絲","水煮牛肉","米飯","蔥爆羊肉","蛋炒飯"}print("今天a分店銷售的菜品種類是:")forspeciesinbranch_a:print(species,end="")print()if"米粉肉"inbranch_a:print("今天a分店賣過米粉肉")else:print("今天a分店沒有賣過米粉肉")程序輸出結(jié)果:今天a分店銷售的菜品種類是:蔥爆羊肉魚香肉絲水煮牛肉蛋炒飯米飯今天a分店沒有賣過米粉肉4.5集合(set)4.5.2使用集合存取數(shù)據(jù)3.集合運(yùn)算
Python中的集合與數(shù)學(xué)上的集合一樣,也可以計(jì)算兩個集合的差集、交集和并集?!?”指計(jì)算兩個集合的差集;“|”指計(jì)算兩個集合的并集;“&”指計(jì)算兩個集合的交集。實(shí)例十七在例4-14和例4-15的基礎(chǔ)上,按照以下要求輸出顯示。(1)兩家分店當(dāng)日都有銷售量的菜名名稱。(2)兩家分店當(dāng)日有銷售量的所有菜品名稱。branch_a={"魚香肉絲","米飯","魚香肉絲","水煮牛肉","米飯","蔥爆羊肉","蛋炒飯"}branch_b={"魚香肉絲","米粉肉","米飯","烤鴨","水煮牛肉","米飯","蛋炒飯"}print("兩家店當(dāng)日都有銷量的菜品名稱:")print(branch_a&branch_b) #兩家店當(dāng)日都有銷量的菜品名稱(取交集)print("兩家店當(dāng)日有銷量的所有菜品名稱:")print(branch_a|branch_b) #兩家店當(dāng)日有銷量的所有菜品名稱(取并集)程序輸出結(jié)果:兩家店當(dāng)日都有銷量的菜品名稱:{'水煮牛肉','米飯','魚香肉絲','蛋炒飯'}兩家店當(dāng)日有銷量的所有菜品名稱:{'米粉肉','米飯','魚香肉絲','烤鴨','蔥爆羊肉','水煮牛肉','蛋炒飯'}4.6迭代和列表解析4.6.1迭代
字符串、列表、元組和字典等對象沒有自己的迭代器,可通過調(diào)用iter()函數(shù)生成迭代器。對迭代器調(diào)用next()函數(shù)即可遍歷對象。next()函數(shù)依次返回可迭代對象的元素,無數(shù)據(jù)返回時,會產(chǎn)生異常,例如。4.6迭代和列表解析4.6.2列表解析列表解析與循環(huán)的概念緊密相關(guān),下面的示例說明如何使用for循環(huán)來修改列表。>>>t=[1,2,3,4]>>>forxinrange(4)t[x]=t[x]+10>>>t[
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《收入分配的決定》課件
- 2.1《改造我們的學(xué)習(xí)》課件 2024-2025學(xué)年統(tǒng)編版高中語文選擇性必修中冊
- 內(nèi)環(huán)境穩(wěn)態(tài)-課件
- 安徽省亳州市2025屆高考數(shù)學(xué)四模試卷含解析
- 13.3《 自己之歌(節(jié)選)》課件 2023-2024學(xué)年統(tǒng)編版高中語文選擇性必修中冊
- 2025屆廣東省佛山市四校高三沖刺模擬英語試卷含解析
- 2025屆德陽市重點(diǎn)中學(xué)高三最后一模英語試題含解析
- 八年級英語FamilylivesVocabulary課件
- 2025屆甘肅省宕昌縣第一中高考英語倒計(jì)時模擬卷含解析
- 天津市武清區(qū)等五區(qū)縣2025屆高考英語一模試卷含解析
- 骨科護(hù)理年會心得
- 小數(shù)加法和減法(教學(xué)設(shè)計(jì))-2024-2025學(xué)年五年級上冊數(shù)學(xué)蘇教版
- 中班健康課件《我不挑食》
- 中國鹽業(yè)集團(tuán)有限公司招聘筆試題庫2024
- 山東農(nóng)商銀行招聘考試試卷及答案
- 八年級地理下冊 7.2 新疆-祖國面積最大的省級行政區(qū)域教案 晉教版
- 2024年人教版小學(xué)四年級信息技術(shù)(上冊)期末試卷附答案
- 2023-2024學(xué)年教科版六年級上冊科學(xué)知識點(diǎn)總結(jié)
- 2024年上海市規(guī)劃和國土資源管理局所屬事業(yè)單位工作人員招考高頻考題難、易錯點(diǎn)模擬試題(共500題)附帶答案詳解
- 2024至2030年中國深圳酒店行業(yè)市場全景評估及發(fā)展戰(zhàn)略研究報告
- 2024-2030年中國自動門市場動向追蹤及應(yīng)用需求現(xiàn)狀分析報告
評論
0/150
提交評論