




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Python少兒編程第一章走進(jìn)Python編程世界第1章走進(jìn)Python編程世界.pptx第2章Python編程基礎(chǔ).pptx第3章神奇的分支和循環(huán).pptx第4章形形色色的數(shù)據(jù)容器.pptx第5章強(qiáng)大的函數(shù)積木.pptx第6章會(huì)畫畫的“小海龜”.pptx第7章神秘的類和對(duì)象.pptx第8章永久存儲(chǔ)的文件.pptx第9章一起捉bug.pptx第10章玩游戲不如自己開發(fā)游戲.pptx第11章一起來創(chuàng)作——FlappyBird.pptx全套可編輯PPT課件目錄1.1認(rèn)識(shí)Python1.2搭建Python開發(fā)環(huán)境1.3編程初體驗(yàn)PART01認(rèn)識(shí)PythonPython的產(chǎn)生與發(fā)展1.11989年圣誕節(jié)期間,荷蘭人GuidovanRossum在阿姆斯特丹開發(fā)了一種新的編程語(yǔ)言Python,作為ABC語(yǔ)言的一種繼承。Python是從ABC發(fā)展起來的,主要受到了Modula-3(另一種語(yǔ)言)的影響,并且結(jié)合了Unixshell和C的習(xí)慣。2000年10月,Python2.0版本發(fā)布。1991年,第一個(gè)Python編譯器誕生。2008年12月,Python3.0版本發(fā)布。2011年1月,Python被TIOBE編程語(yǔ)言排行榜評(píng)為2010年度語(yǔ)言。2020年1月,Python2.7正式終止支持,全面進(jìn)入Python3時(shí)代。Python的發(fā)展主要經(jīng)歷了幾個(gè)階段Python的產(chǎn)生與發(fā)展1.101簡(jiǎn)單易學(xué)02免費(fèi)開源03類庫(kù)豐富04可擴(kuò)展05解釋性06可移植性07可嵌入性Python的特點(diǎn)1.201Web開發(fā)04數(shù)據(jù)分析02網(wǎng)絡(luò)爬蟲05自動(dòng)化運(yùn)維03人工智能06游戲開發(fā)Python的應(yīng)用領(lǐng)域1.3PART02搭建Python開發(fā)環(huán)境安裝Python2.11.安裝步驟1訪問/downloads/windows/,在打開的下載頁(yè)面中選擇“StableReleases”→“Python3.9.4-April,2021”→“DownloadWindowsinstaller(64-bit)”選項(xiàng),如圖1-1所示。圖1-1下載Python安裝Python2.11.安裝步驟2雙擊下載好的python-3.9.4-amd64.exe文件,在打開的對(duì)話框中勾選“AddPython3.9toPATH”復(fù)選框(將安裝路徑添加到系統(tǒng)環(huán)境變量Path中),然后選擇“Customizeinstallation”選項(xiàng),如圖1-2所示。圖1-2安裝向?qū)О惭bPython2.11.安裝步驟3
顯示“OptionalFeatures”界面,選擇Python提供的工具包,一般保持默認(rèn)的全部選中,然后單擊“Next”按鈕,如圖1-3所示。圖1-3選擇Python提供的工具包安裝Python2.11.安裝步驟4顯示“AdvancedOptions”界面,勾選“Installforallusers”復(fù)選框(為所有用戶安裝),在“Customizeinstalllocation”編輯框中設(shè)置安裝路徑(如D:\Python39,也可單擊“Browse”按鈕選擇安裝目錄),然后單擊“Install”按鈕,如圖1-4所示。圖1-4選擇高級(jí)選項(xiàng)與安裝路徑安裝Python2.11.安裝步驟5
顯示“SetupProgress”界面,開始安裝并顯示安裝進(jìn)度,如圖1-5所示。安裝成功后,單擊“Close”按鈕關(guān)閉對(duì)話框即可。圖1-5安裝進(jìn)度安裝Python2.12.驗(yàn)證打開命令提示符(cmd)窗口,執(zhí)行“python”命令。如果出現(xiàn)類似圖1-6所示結(jié)果,說明Python安裝成功。圖1-6Python安裝成功安裝PyCharm2.21.安裝步驟1訪問/pycharm/download/#section=windows,在打開的下載頁(yè)面中單擊“Community”下的“Download”按鈕,下載社區(qū)版,如圖1-7所示。圖1-7下載PyCharm安裝PyCharm2.21.安裝步驟2
雙擊下載好的pycharm-community-2021.1.exe文件,根據(jù)安裝提示進(jìn)行操作即可完成安裝。圖1-8設(shè)置安裝選項(xiàng)安裝PyCharm2.22.設(shè)置步驟1
啟動(dòng)PyCharm,打開“PyCharmUserAgreement”對(duì)話框,勾選“IconfirmthatIhavereadandacceptthetermsofthisUserAgreement”復(fù)選框,然后單擊“Continue”按鈕,如圖1-9所示。圖1-9PyCharm導(dǎo)入設(shè)置安裝PyCharm2.22.設(shè)置步驟2打開“WelcometoPyCharm”對(duì)話框,在左側(cè)選擇“Customize”選項(xiàng),在右側(cè)“Colortheme”的下拉列表中選擇“IntelliJLight”選項(xiàng),如圖1-10所示?!癐ntelliJLight”主題的用戶界面如圖1-11所示。圖1-10設(shè)置用戶界面主題
圖1-11“IntelliJLight”主題的用戶界面安裝PyCharm2.22.設(shè)置步驟3
在界面左側(cè)選擇“Plugins”選項(xiàng),在搜索框中輸入“Chinese”,然后在下面列表中選擇“Chinese(Simplified)LanguagePack/中文語(yǔ)言包”選項(xiàng),單擊“Install”按鈕,如圖1-12所示。圖1-12安裝中文插件安裝PyCharm2.22.設(shè)置步驟4
安裝完成后,單擊“RestartIDE”按鈕,在打開的對(duì)話框中單擊“Restart”按鈕,如圖1-13所示。圖1-13重啟PyCharm安裝PyCharm2.22.設(shè)置步驟5重啟后,便可進(jìn)入PyCharm中文界面,如圖1-14所示。圖1-14PyCharm中文界面PART03編程初體驗(yàn)第一個(gè)Python小游戲3.1步驟1
啟動(dòng)PyCharm,在打開的“歡迎訪問PyCharm”對(duì)話框中選擇“新建項(xiàng)目”選項(xiàng)(見圖1-14)。步驟2
顯示“新建項(xiàng)目”界面,在“位置”編輯框中設(shè)置項(xiàng)目保存的路徑并將項(xiàng)目命名為“第1章”;在“使用此工具新建環(huán)境”下拉列表中選擇默認(rèn)的“Virtualenv”選項(xiàng);在“基本解釋器”中選擇Python安裝目錄下的python.exe;取消勾選“創(chuàng)建main.py歡迎腳本”復(fù)選框,然后單擊“創(chuàng)建”按鈕,如圖1-15所示。第一個(gè)Python小游戲3.1圖1-15新建項(xiàng)目第一個(gè)Python小游戲3.1步驟3
打開PyCharm工作窗口,在左側(cè)顯示創(chuàng)建的“第1章”項(xiàng)目,同時(shí)打開“每日小技巧”對(duì)話框,單擊“關(guān)閉”按鈕關(guān)閉該對(duì)話框,如圖1-16所示。圖1-16PyCharm工作窗口第一個(gè)Python小游戲3.1步驟4
右擊項(xiàng)目名“第1章”,在彈出的快捷菜單中選擇“新建”→“Python文件”選項(xiàng),新建一個(gè)Python文件,如圖1-17所示。圖1-17新建Python文件第一個(gè)Python小游戲3.1步驟5
打開“新建Python文件”對(duì)話框,將文件命名為“猜數(shù)字”,然后雙擊“Python文件”選項(xiàng),如圖1-18所示。圖1-18命名文件第一個(gè)Python小游戲3.1步驟6
進(jìn)入“猜數(shù)字.py”代碼編輯界面,在代碼編輯區(qū)輸入代碼,如圖1-19所示。圖1-19輸入代碼第一個(gè)Python小游戲3.1步驟7
在菜單欄中選擇“運(yùn)行”→“運(yùn)行”選項(xiàng),打開“運(yùn)行”對(duì)話框,然后選擇“猜數(shù)字”選項(xiàng),運(yùn)行程序,在窗口下方即可顯示運(yùn)行結(jié)果,如圖1-20所示。圖1-20運(yùn)行程序Python編碼規(guī)范3.2一個(gè)好的、有使用價(jià)值的源程序都應(yīng)加上必要的注釋,以提高程序的可讀性。Python允許有多種注釋方式,常用的包括單行注釋和多行注釋兩種。(1)以“#”開始,以換行符結(jié)束的單行注釋。這種注釋可單獨(dú)占一行,也可出現(xiàn)在一行中其他內(nèi)容的右側(cè)。例如:1.注釋print('你真是太厲害了,一次就猜中了!') #輸出猜對(duì)了(2)以三重引號(hào)(單引號(hào)或雙引號(hào))開始,同樣以三重引號(hào)結(jié)束的多行注釋。例如:"""-----猜數(shù)字游戲-----
編寫者:小藍(lán)
編寫時(shí)間:20210423"""'''如果要修改此部分代碼,請(qǐng)?zhí)砑尤缦伦⑨?/p>
修改者:
修改時(shí)間:'''Python編碼規(guī)范3.2Python最獨(dú)特的一點(diǎn)就是依靠代碼塊的縮進(jìn)來體現(xiàn)代碼之間的邏輯關(guān)系。例如,對(duì)于選擇結(jié)構(gòu)來說,行尾的冒號(hào)及下一行的縮進(jìn)表示一個(gè)代碼塊的開始,而縮進(jìn)結(jié)束則表示一個(gè)代碼塊的結(jié)束。在Python中最好使用4個(gè)空格進(jìn)行懸掛式縮進(jìn),且同一級(jí)別的代碼塊的縮進(jìn)量必須相同。例如:2.縮進(jìn)a=1 #a賦值為1b=2 #b賦值為2ifa>b: #如果a大于bprint(a) #輸出a的值else: #如果a小于等于bprint(b) #輸出b的值Python編碼規(guī)范3.2Python建議每行代碼的長(zhǎng)度不要超過120個(gè)字符。對(duì)于過長(zhǎng)的代碼,建議進(jìn)行換行。換行有以下兩種方式。(1)可以在行尾使用續(xù)行符“\”來表示下面緊接的一行仍屬于當(dāng)前語(yǔ)句。例如:3.語(yǔ)句換行message='你真是太厲害了,一次就猜中了!'\'再猜一次,我不相信你還能猜到我在想什么。'等價(jià)于message='你真是太厲害了,一次就猜中了!再猜一次,我不相信你還能猜到我在想什么。'(2)根據(jù)Python會(huì)將圓括號(hào)中的行隱式連接起來這個(gè)特點(diǎn),可以使用圓括號(hào)包含多行內(nèi)容。例如,上述語(yǔ)句又可用以下形式表示。message=('你真是太厲害了,一次就猜中了!''再猜一次,我不相信你還能猜到我在想什么。')Python編碼規(guī)范3.2使用必要的空格與空行可增強(qiáng)代碼的可讀性。一般來說,運(yùn)算符兩側(cè)、函數(shù)參數(shù)之間、逗號(hào)后面建議使用空格進(jìn)行分隔。而不同功能的代碼塊之間、不同的函數(shù)定義及不同的類定義之間則建議增加一個(gè)空行以提高程序的可讀性。4.空格與空行感謝觀看Python少兒編程第二章Python編程基礎(chǔ)目錄1.1會(huì)變的數(shù)據(jù)1.2多樣的數(shù)據(jù)1.3數(shù)據(jù)的運(yùn)算1.4與外界對(duì)話PART01會(huì)變的數(shù)據(jù)變量的命名規(guī)則1.1Python中變量的命名需要遵循一定的規(guī)則,即變量名只能包括字母、數(shù)字和下劃線,且第一個(gè)字符必須是字母或下劃線,不能是數(shù)字。例如,name、_name1、name_2都是合法的變量名,但1name、2_name、&123、%name、M.Jack、?name2都是不合法的變量名。在實(shí)際開發(fā)過程中,為提高代碼的可讀性,會(huì)經(jīng)常使用以下3種命名方式。(1)小駝峰式命名。第一個(gè)單詞首字母小寫,之后的單詞首字母大寫,如myName、myFriendName等。(2)大駝峰式命名。每個(gè)單詞首字母都大寫,如MyName、MyFriendName等。(3)下劃線連接命名。用下劃線“_”連接每個(gè)單詞,如my_name、my_friend_name等。(1)Python的變量名區(qū)分英文字母大小寫,如score和Score是兩個(gè)不同的變量。(2)Python的關(guān)鍵字不能作為變量名使用。提示變量的賦值1.2變量賦值時(shí),Python會(huì)自動(dòng)聲明變量的數(shù)據(jù)類型(將在2.2節(jié)中介紹)。賦值運(yùn)算符“=”用于為變量賦值,賦值運(yùn)算符左側(cè)是變量名,而右側(cè)是變量指向的值。例如:a=1b=1.2c='小紅'Python還允許同時(shí)為多個(gè)變量賦相同的值。例如:a=b=c=1也可以同時(shí)為多個(gè)變量分別賦不同的值。例如:a,b,c=1,2,'hello'變量的賦值1.2【例2-1】
輸出小藍(lán)在不同的年齡喜歡的動(dòng)畫片。【參考代碼】name='小藍(lán)' #創(chuàng)建名字變量name,賦值為“小藍(lán)”age=3 #創(chuàng)建年齡變量age,賦值為3cartoon='小豬佩奇' #創(chuàng)建動(dòng)畫片變量cartoon,賦值為“小豬佩奇”#輸出小藍(lán)3歲喜歡的動(dòng)畫片print(name,age,'歲時(shí)喜歡的動(dòng)畫片是',cartoon)age=5 #age重新賦值為5cartoon='機(jī)器貓' #cartoon重新賦值為“機(jī)器貓”#輸出小藍(lán)5歲喜歡的動(dòng)畫片print(name,age,'歲時(shí)喜歡的動(dòng)畫片是',cartoon)age=10 #age重新賦值為10cartoon='海賊王' #cartoon重新賦值為“海賊王”#輸出小藍(lán)10歲喜歡的動(dòng)畫片print(name,age,'歲時(shí)喜歡的動(dòng)畫片是',cartoon)變量的賦值1.2【運(yùn)行結(jié)果】
程序運(yùn)行結(jié)果如圖2-2所示。圖2-2例2-1程序運(yùn)行結(jié)果PART02多樣的數(shù)據(jù)數(shù)字2.11.intint(整型)數(shù)值通常稱為整數(shù)。Python可以處理任意大小的整數(shù),當(dāng)然包括負(fù)整數(shù)。整數(shù)在程序中的表示方法和數(shù)學(xué)上的寫法一致,如18、?175。2.floatfloat(浮點(diǎn)型)數(shù)值也稱為浮點(diǎn)數(shù),由整數(shù)和小數(shù)組成。Python中浮點(diǎn)數(shù)只能用十進(jìn)制形式表示,但其表示方法有如下兩種。(1)小數(shù)表示法,由整數(shù)部分和小數(shù)部分組成,如0.0013、?1482.5。(2)科學(xué)表示法,通常用來表示一些比較大或比較小的數(shù)值。例如,0.0013可表示為1.3e?3,?1482.5可表示為?1.4825e3。3.complexcomplex(復(fù)數(shù)型)數(shù)值由實(shí)數(shù)部分和虛數(shù)部分組成,一般形式為a+bj,其中,a是復(fù)數(shù)的實(shí)數(shù)部分,b是復(fù)數(shù)的虛數(shù)部分,這里的a和b是整數(shù)或浮點(diǎn)數(shù),如2.14j、2+12.1j。布爾類型2.2布爾(bool)類型是一種比較特殊的類型,它只有“True”(真)和“False”(假)兩種值。在Python中,可以直接用“True”和“False”表示布爾值(注意首字母大寫),也可以通過比較和判斷得到布爾值。例如:10<30 #判斷10是否小于30,結(jié)果為True10>20 #判斷10是否大于20,結(jié)果為False字符串2.3字符串(str)是以單引號(hào)或雙引號(hào)括起來的任意文本,如'abc'、"xyz"等。如果單引號(hào)本身也是字符串中的一個(gè)字符,那就可以用雙引號(hào)括起來;反之,如果雙引號(hào)本身也是字符串中的一個(gè)字符,那就可以用單引號(hào)括起來。例如:"I'mOK!"'Itoldmyfriend,"Pythonismyfavoritelanguage!"'如果字符串內(nèi)部既包含單引號(hào)又包含雙引號(hào),則可以用轉(zhuǎn)義字符“\”來標(biāo)識(shí),例如:'I\'m\"OK\"!'表示的字符串內(nèi)容是:I'm"OK"!字符串2.3轉(zhuǎn)義字符以“\”開頭,后跟一個(gè)字符,通常用來表示一些控制代碼和功能定義。Python中常用的轉(zhuǎn)義字符如表2-1所示。表2-1常用的轉(zhuǎn)義字符字符串2.3【例2-2】
輸出小藍(lán)個(gè)人信息的值及其類型,以及她的自我介紹。【參考代碼】name='小藍(lán)' #創(chuàng)建姓名變量name,賦值為“小藍(lán)”#輸出變量name的值及其類型print('name的值為',name,',類型是',type(name))sex='女生' #創(chuàng)建性別變量sex,賦值為“女生”#輸出變量sex的值及其類型print('sex的值為',sex,',類型是',type(sex))age=10 #創(chuàng)建年齡變量age,賦值為10#輸出變量age的值及其類型print('age的值為',age,',類型是',type(age))height=1.4 #創(chuàng)建身高變量height,賦值為1.4字符串2.3【參考代碼】#輸出變量height的值及其類型print('height的值為',height,',類型是',type(height))print('**********自我介紹**********')#輸出自我介紹print('大家好,我叫',name,',\n是一個(gè)開朗的',sex,',\n今年',age,'歲了,\n我已經(jīng)',height,'米了哦,\n很高興認(rèn)識(shí)大家。')字符串2.3【運(yùn)行結(jié)果】
程序運(yùn)行結(jié)果如圖2-3所示。圖2-3例2-2程序運(yùn)行結(jié)果【程序說明】
type()函數(shù)用于返回對(duì)象的類型。PART03數(shù)據(jù)的運(yùn)算算術(shù)運(yùn)算符3.1Python提供了7個(gè)基本的算術(shù)運(yùn)算符,其運(yùn)算方式與數(shù)學(xué)中基本類似。具體符號(hào)如表2-2所示。表2-2算術(shù)運(yùn)算符賦值運(yùn)算符3.2賦值運(yùn)算符用來給變量賦值,Python提供的賦值運(yùn)算符可分為簡(jiǎn)單賦值和復(fù)合賦值兩種。簡(jiǎn)單賦值運(yùn)算符“=”已經(jīng)在2.1中介紹了,下面著重介紹復(fù)合賦值運(yùn)算符。在Python中,經(jīng)常會(huì)有利用變量的原有值計(jì)算出新值并重新賦值給這個(gè)變量的情況。例如,下面表達(dá)式就是把變量a的值加上1后再賦值給a。a=a+1復(fù)合賦值運(yùn)算符允許縮短這個(gè)表達(dá)式,使用“+=”運(yùn)算符,可以將上面的表達(dá)式簡(jiǎn)寫為:a+=1 #相當(dāng)于a=a+1賦值運(yùn)算符3.2其中,復(fù)合賦值運(yùn)算符中較為常用的是復(fù)合算術(shù)賦值運(yùn)算符,包括+=、?=、*=、/=、%=、**=和//=共7種。例如:a+=b #相當(dāng)于a=a+ba-=b #相當(dāng)于a=a-ba*=b #相當(dāng)于a=a*ba/=b #相當(dāng)于a=a/ba%=b #相當(dāng)于a=a%ba**=b #相當(dāng)于a=a**ba//=b #相當(dāng)于a=a//b如果b是包含若干項(xiàng)的表達(dá)式,則相當(dāng)于它有括號(hào),例如:a*=b-3 #相當(dāng)于a=a*(b?3)提示關(guān)系運(yùn)算符3.3關(guān)系運(yùn)算符又稱比較運(yùn)算符,用于比較運(yùn)算符兩側(cè)數(shù)據(jù)的值,比較的結(jié)果是一個(gè)布爾值,即True或False。Python提供的關(guān)系運(yùn)算符如表2-3所示。表2-3關(guān)系運(yùn)算符關(guān)系運(yùn)算符3.3使用關(guān)系運(yùn)算符時(shí)須注意以下幾點(diǎn)。(1)等于、不等于、大于等于、小于等于運(yùn)算符(==、!=、>=、<=)的表示方法與數(shù)學(xué)中的表示方法不同(=、≠、≥、≤)。(2)關(guān)系運(yùn)算符兩側(cè)的值可以是數(shù)值、字符串等數(shù)據(jù)類型,但應(yīng)為同一類型。(3)字符串?dāng)?shù)據(jù)進(jìn)行比較運(yùn)算時(shí),按照其內(nèi)容的ASCII碼值進(jìn)行比較。在比較兩個(gè)字符串時(shí),先比較第一個(gè)字符,其中ASCII碼值較大的字符所在字符串較大,如果第一個(gè)字符相同,再比較第二個(gè)字符……。例如,'abce'>'abcdef'為True,是因?yàn)橹饌€(gè)比較前三個(gè)字符,其ASCII碼值相同,在比較第四個(gè)字符時(shí),“e”的ASCII碼值大于“d”的ASCII碼值,因此,該表達(dá)式的值為True。(注意:不是比較其長(zhǎng)短)邏輯運(yùn)算符3.4Python的邏輯運(yùn)算符包括and(與)、or(或)、not(非)3種,如表2-4所示。與C/C++、Java等語(yǔ)言不同的是,Python中邏輯運(yùn)算的返回值不一定是布爾值。表2-4邏輯運(yùn)算符邏輯運(yùn)算符3.4【例2-3】
關(guān)系運(yùn)算符和邏輯運(yùn)算符示例。【參考代碼】a=5 #創(chuàng)建變量a,賦值為5b=6 #創(chuàng)建變量b,賦值為6#輸出邏輯表達(dá)式的值print('a=',a,',b=',b)print('a-5andb<3=',a-5andb<3)print('a<6andb+3=',a<6andb+3)print('a-5orb<3=',a-5orb<3)print('a<6orb+3=',a<6orb+3)print('nota=',nota)邏輯運(yùn)算符3.4【運(yùn)行結(jié)果】
程序運(yùn)行結(jié)果如圖2-4所示。圖2-4例2-3程序運(yùn)行結(jié)果邏輯運(yùn)算符3.4【程序說明】
計(jì)算“a?5andb<3”表達(dá)式時(shí),先計(jì)算“a?5”得到的值為0,即為False,因此無(wú)須計(jì)算“b<3”的值,表達(dá)式的值即為0。計(jì)算“a<6andb+3”表達(dá)式時(shí),先計(jì)算“a<6”得到的值為True,因此,需計(jì)算表達(dá)式“b+3”的值,且整個(gè)表達(dá)式的值為“b+3”的值,即為9。計(jì)算“a?5orb<3”表達(dá)式時(shí),先計(jì)算“a?5”得到的值為0,即為False,因此,需計(jì)算“b<3”的值,且整個(gè)表達(dá)式的值為“b<3”的值,即為False。計(jì)算“a<6orb+3”表達(dá)式時(shí),先計(jì)算“a<6”得到的值為True,無(wú)須計(jì)算“b+3”的值,表達(dá)式的值為True。計(jì)算“nota”表達(dá)式時(shí),由于a的值為5,即為True,因此,表達(dá)式的值為False。成員運(yùn)算符3.5成員運(yùn)算符用于判斷一個(gè)元素是否在某個(gè)序列中,如字符串、列表、元組等。Python提供的成員運(yùn)算符如表2-5所示。表2-5成員運(yùn)算符成員運(yùn)算符3.5【例2-4】
判斷指定零食是否在購(gòu)物清單中。【參考代碼】snack1='薯片' #創(chuàng)建零食變量snack1,賦值為“薯片”snack2='棒棒糖' #創(chuàng)建零食變量snack2,賦值為“棒棒糖”#創(chuàng)建購(gòu)物清單列表snackListsnackList=['可樂','蘋果','薯片','奧利奧','雞腿']#判斷薯片是否在購(gòu)物清單中print('薯片在購(gòu)物清單中?',snack1insnackList)#判斷棒棒糖是否在購(gòu)物清單中print('棒棒糖在購(gòu)物清單中?',snack2insnackList)#判斷棒棒糖是否不在購(gòu)物清單中print('棒棒糖不在購(gòu)物清單中?',snack2notinsnackList)成員運(yùn)算符3.5【運(yùn)行結(jié)果】
程序運(yùn)行結(jié)果如圖2-5所示。圖2-5例2-4程序運(yùn)行結(jié)果身份運(yùn)算符3.6關(guān)系運(yùn)算符中的“==”是比較兩個(gè)變量的值是否相等。身份運(yùn)算符用來判斷兩個(gè)變量是否指向同一個(gè)內(nèi)存對(duì)象。Python提供的身份運(yùn)算符如表2-6所示。表2-6身份運(yùn)算符身份運(yùn)算符3.6【例2-5】
判斷三個(gè)整型變量是否為同一個(gè)對(duì)象?!緟⒖即a】int1=500 #創(chuàng)建變量int1,賦值為500int2=500 #創(chuàng)建變量int2,賦值為500int3=520 #創(chuàng)建變量int3,賦值為520print('int1和int2引用的是同一對(duì)象?',int1isint2)print('int1和int3引用的是同一對(duì)象?',int1isint3)print('int1的內(nèi)存地址:',id(int1),'\nint2的內(nèi)存地址:',id(int2),'\nint3的內(nèi)存地址:',id(int3))int1=520 #修改int1的值為520print('修改值后的int1和int3引用的是同一對(duì)象?',int1isint3)print('修改值后的int1內(nèi)存地址:',id(int1))身份運(yùn)算符3.6【運(yùn)行結(jié)果】程序運(yùn)行結(jié)果如圖2-6所示。圖2-6例2-5程序運(yùn)行結(jié)果【程序說明】id()函數(shù)返回對(duì)象的唯一標(biāo)識(shí)符,即對(duì)象的內(nèi)存地址。位運(yùn)算符3.7所謂位運(yùn)算是指進(jìn)行二進(jìn)制位的運(yùn)算。例如,將一個(gè)存儲(chǔ)單元中的各二進(jìn)制位左移或右移一位。Python提供的位運(yùn)算符包括按位與、按位或、按位異或、按位取反、左移和右移共6種,如表2-7所示。表2-7位運(yùn)算符位運(yùn)算符3.7假設(shè)變量a=10,b=23,即二進(jìn)制形式a=00001010,b=00010111。用變量a和b執(zhí)行表2-7中的位運(yùn)算符,結(jié)果如圖2-7所示。(a)按位與a&b (b)按位或a|b (c)按位異或a^b(d)按位取反~a (e)按位左移a<<2 (f)按位右移a>>2圖2-7位運(yùn)算符位運(yùn)算符3.7【例2-6】
數(shù)據(jù)的加密和解密?!緟⒖即a】a=2048 #創(chuàng)建變量a,并賦值為2048b=5 #創(chuàng)建變量b,并賦值為5print('a:',a) #輸出aa<<=b #將a左移b位,并賦給aprint('a左移b位:',a) #輸出aa>>=b #再將a右移b位,并賦給aprint('a再右移b位:',a) #輸出a【問題分析】定義變量a和b,先將a左移b位加密,然后再將a右移b位解密。位運(yùn)算符3.7【運(yùn)行結(jié)果】程序運(yùn)行結(jié)果如圖2-8所示。圖2-8例2-6程序運(yùn)行結(jié)果【程序說明】可以看出,a左移b位再右移b位后,還原到a的原始值,故可用這種方式來實(shí)現(xiàn)數(shù)據(jù)的加密和解密。運(yùn)算符優(yōu)先級(jí)3.8Python中運(yùn)算符的優(yōu)先級(jí)如表2-8所示。表2-8運(yùn)算符優(yōu)先級(jí)PART04與外界對(duì)話聽——輸入4.1Python提供了input()函數(shù)用于獲取用戶從鍵盤輸入的字符串,其基本格式如下。input([prompt])其中,prompt表示輸入提示,是一個(gè)字符串,[]表示可選。input()函數(shù)讓程序暫停運(yùn)行,等待用戶輸入數(shù)據(jù),當(dāng)獲取用戶輸入后,返回一個(gè)字符串(不包含末尾的換行符)。例如:name=input('請(qǐng)輸入名字:') #name為字符串當(dāng)將該返回值作為數(shù)值使用時(shí),就會(huì)引發(fā)錯(cuò)誤,此時(shí)可使用int()函數(shù)將字符串轉(zhuǎn)化為整型數(shù)據(jù),也可使用float()函數(shù)將字符串轉(zhuǎn)化為浮點(diǎn)型數(shù)據(jù)。例如:a=int(input('請(qǐng)輸入一個(gè)整數(shù)')) #a為整數(shù)b=float(input('請(qǐng)輸入一個(gè)浮點(diǎn)數(shù):')) #b為浮點(diǎn)數(shù)這里需要注意的是,使用int()函數(shù)時(shí),參數(shù)須是整型數(shù)值的字符串。說——輸出4.2在Python中使用print()函數(shù)進(jìn)行輸出,應(yīng)遵循以下原則。(1)輸出字符串時(shí)須用單引號(hào)或雙引號(hào)括起來。(2)輸出變量時(shí),可不加引號(hào)。(3)變量與字符串同時(shí)輸出或多個(gè)變量同時(shí)輸出時(shí),須用“,”隔開?!纠?-7】
輸出萬(wàn)能生日祝福?!締栴}分析】使用input()函數(shù)輸入名字,使用print()函數(shù)輸出對(duì)應(yīng)名字的生日祝福。說——輸出4.2【運(yùn)行結(jié)果】
程序運(yùn)行結(jié)果如圖2-9所示?!緟⒖即a】print('請(qǐng)輸入名字:') #輸出提示#根據(jù)輸入的名字輸出生日祝福print('親愛的',input(), ':\n\t生日快樂!??\n\t希望你能開心快樂每一天!??????')圖2-9例2-7程序運(yùn)行結(jié)果感謝觀看Python少兒編程第三章神奇的分支和循環(huán)目錄1.1前進(jìn)的向?qū)?.2選擇不同的道路1.3擺脫重復(fù)的任務(wù)PART01前進(jìn)的向?qū)裁词橇鞒虉D1.1流程圖是對(duì)某一個(gè)問題的定義、分析或解法的圖形表示,圖中用各種符號(hào)來表示操作、數(shù)據(jù)、流向及裝置等。程序流程圖則表示程序的運(yùn)行順序,是一種常用的表示算法的圖形化工具。換言之,程序流程圖就是通過畫圖的方式表達(dá)程序運(yùn)行的所有路徑,通過使用箭頭和框圖把程序運(yùn)行的方向與步驟展示出來。程序流程圖的基本符號(hào)1.2圖3-1程序流程圖中常用的符號(hào)程序流程圖的基本符號(hào)1.2(1)端點(diǎn)符表示算法的起始或結(jié)束。(2)判斷符用于對(duì)給定的條件進(jìn)行判斷,根據(jù)判斷的結(jié)果來選擇流程方向。它只有一個(gè)入口,可以有若干個(gè)出口,但有且僅有一個(gè)出口被激活。(3)處理符表示算法中的具體處理步驟。(4)流線符表示數(shù)據(jù)流,箭頭指示流向。(5)連接符用于連接因頁(yè)面寫不下而斷開的流程線,對(duì)應(yīng)的連接符應(yīng)有同一標(biāo)記。(6)注解符用來標(biāo)識(shí)注解內(nèi)容,它不是程序流程圖的必要部分,不反應(yīng)流程和操作,只是為了對(duì)流程圖中某些符號(hào)的操作進(jìn)行必要的補(bǔ)充說明,以幫助讀者更好的理解。(7)數(shù)據(jù)符表示未指定媒體的數(shù)據(jù),可用于輸入和輸出,比較通用。程序流程圖還包括一些特殊的數(shù)據(jù)符,常用的有文件符、顯示符和人工輸入符。程序流程圖的基本符號(hào)1.2在程序設(shè)計(jì)中,包含了3種基本結(jié)構(gòu),即順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),其流程圖如圖3-2所示。圖3-23種基本結(jié)構(gòu)的流程圖掃地機(jī)器人的工作流程圖1.3掃地機(jī)器人工作時(shí)傳感器會(huì)檢測(cè)前方、左邊和右邊是否有障礙物,并將檢測(cè)結(jié)果傳給掃地機(jī)器人進(jìn)行判斷。掃地機(jī)器人根據(jù)判斷結(jié)果規(guī)劃路徑,具體如下。(1)判斷前方是否有障礙物,如果沒有,則機(jī)器人前行;如果有,則進(jìn)行下一步判斷。(2)判斷左邊是否有障礙物,如果沒有,則機(jī)器人左轉(zhuǎn);如果有,則進(jìn)行下一步判斷。(3)判斷右邊是否有障礙物,如果沒有,則機(jī)器人右轉(zhuǎn);如果有,則后退。(4)循環(huán)執(zhí)行(1)~(3),直到機(jī)器人停止工作。掃地機(jī)器人的工作流程圖1.3圖3-3掃地機(jī)器人的工作流程圖PART02選擇不同的道路簡(jiǎn)單的if語(yǔ)句2.1if語(yǔ)句允許程序通過判斷條件是否成立而選擇是否執(zhí)行指定的語(yǔ)句。if語(yǔ)句的基本語(yǔ)法格式如下。if判斷條件:
語(yǔ)句塊if語(yǔ)句的執(zhí)行過程是:如果判斷條件為True,執(zhí)行語(yǔ)句塊,否則直接執(zhí)行if語(yǔ)句后的語(yǔ)句。例如:weather='晴' #創(chuàng)建變量weather代表天氣,賦值為“晴”ifweather=='晴': #如果天氣為晴print('去公園玩') #輸出“去公園玩”if-else語(yǔ)句2.2if語(yǔ)句只允許在條件為True時(shí)執(zhí)行指定的語(yǔ)句,而if-else語(yǔ)句還可在條件為False時(shí)執(zhí)行指定的語(yǔ)句,其基本語(yǔ)法格式如下。if判斷條件:
語(yǔ)句塊1else:
語(yǔ)句塊2上述語(yǔ)句的執(zhí)行過程是:當(dāng)判斷條件為True時(shí),執(zhí)行語(yǔ)句塊1,否則執(zhí)行語(yǔ)句塊2。if-else語(yǔ)句2.2【例3-1】
根據(jù)輸入的天氣選擇是否出門游玩?!緟⒖即a】weather=input('請(qǐng)輸入天氣情況:') #輸入變量weather的值ifweather=='晴'orweather=='多云': #如果天氣為晴或多云print('去公園玩') #輸出“去公園玩”else: #如果不是print('在家玩') #輸出“在家玩”【問題分析】
本例題可使用if-else語(yǔ)句進(jìn)行條件判斷,如果輸入天氣為“晴”或“多云”,輸出“去公園玩”,否則輸出“在家玩”。if-else語(yǔ)句2.2【運(yùn)行結(jié)果】
程序運(yùn)行結(jié)果如圖3-4所示。圖3-4例3-1程序運(yùn)行結(jié)果if-elif-else語(yǔ)句2.3編程時(shí)常常需要判定一系列的條件,一旦其中某一個(gè)條件為True就立刻停止。此時(shí),可采用if-elif-else語(yǔ)句(elif是elseif的簡(jiǎn)寫),其基本語(yǔ)法格式如下。if判斷條件1:
語(yǔ)句塊1elif判斷條件2:
語(yǔ)句塊2……elif判斷條件n:
語(yǔ)句塊nelse:
語(yǔ)句塊n+1if-elif-else語(yǔ)句2.3表3-1溫度和穿衣建議對(duì)照關(guān)系【例3-2】
根據(jù)輸入的溫度temperature給出穿衣建議,溫度和穿衣建議對(duì)照關(guān)系如表3-1所示。if-elif-else語(yǔ)句2.3【參考代碼】#輸入溫度temperature的值并將其轉(zhuǎn)化為浮點(diǎn)數(shù)temperature=float(input('請(qǐng)輸入溫度(℃):'))iftemperature>=28.0: #如果溫度大于等于28.0print('穿衣建議:輕棉織物制作的短衣、短裙、短褲等') #輸出穿衣建議eliftemperature>=24.0: #如果溫度大于等于24.0小于28.0print('穿衣建議:棉麻面料的襯衫、薄長(zhǎng)裙、薄T恤等') #輸出穿衣建議eliftemperature>=21.0: #如果溫度大于等于21.0小于24.0print('穿衣建議:?jiǎn)螌用蘼槊媪系腡恤衫、長(zhǎng)褲、薄牛仔褲等') #輸出穿衣建議eliftemperature>=18.0: #如果溫度大于等于18.0小于21.0print('穿衣建議:薄外套、風(fēng)衣、薄毛衣等') #輸出穿衣建議eliftemperature>=15.0: #如果溫度大于等于15.0小于18.0print('穿衣建議:風(fēng)衣、外套、毛衣等') #輸出穿衣建議eliftemperature>=11.0: #如果溫度大于等于11.0小于15.0print('穿衣建議:毛衣、風(fēng)衣、大衣等') #輸出穿衣建議eliftemperature>=6.0: #如果溫度大于等于6.0小于11.0print('穿衣建議:棉衣、冬大衣、薄羽絨服等') #輸出穿衣建議else: #以上條件都不滿足print('穿衣建議:羽絨服、厚棉衣、冬大衣等') #輸出穿衣建議if-elif-else語(yǔ)句2.3【運(yùn)行結(jié)果】
程序運(yùn)行結(jié)果如圖3-5所示。圖3-5例3-2程序運(yùn)行結(jié)果【程序說明】
每個(gè)else本身都隱含了一個(gè)條件,如第1個(gè)elif實(shí)質(zhì)上表示條件24.0≤temperature<28.0成立,此隱含條件與對(duì)應(yīng)的if所給出的條件完全相反。在編程時(shí)要善于利用隱含條件,使程序代碼清晰簡(jiǎn)潔。嵌套的if語(yǔ)句2.4在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句時(shí),稱為if語(yǔ)句的嵌套,其基本語(yǔ)法格式如下。if判斷條件1: if判斷條件2:
語(yǔ)句塊1 else:
語(yǔ)句塊2else: if判斷條件3:
語(yǔ)句塊3 else:
語(yǔ)句塊4嵌套的if語(yǔ)句2.4【例3-3】
分配任務(wù)。在社會(huì)實(shí)踐活動(dòng)中有三項(xiàng)任務(wù),分別是:種樹、采茶、打掃街道。依據(jù)小組人數(shù)及男生、女生人數(shù)決定小組的任務(wù),人數(shù)小于5的小組負(fù)責(zé)打掃街道,人數(shù)大于等于5且男生多于女生的小組負(fù)責(zé)種樹,人數(shù)大于等于5且男生不多于女生的小組負(fù)責(zé)采茶。輸入小組男生、女生人數(shù),輸出小組接受的任務(wù)?!締栴}分析】
本例題可使用嵌套的if語(yǔ)句實(shí)現(xiàn),程序流程圖如圖3-6所示。嵌套的if語(yǔ)句2.4圖3-6分配任務(wù)流程圖嵌套的if語(yǔ)句2.4【參考代碼】boy=int(input('請(qǐng)輸入男生人數(shù):')) #輸入男生人數(shù)并轉(zhuǎn)化為整數(shù)girl=int(input('請(qǐng)輸入女生人數(shù):')) #輸入女生人數(shù)并轉(zhuǎn)化為整數(shù)total=boy+girl #計(jì)算總?cè)藬?shù)iftotal<5: #如果總?cè)藬?shù)小于5print('打掃街道') #輸出“打掃街道”else: #如果總?cè)藬?shù)大于等于5ifboy>girl: #如果男生人數(shù)大于女生人數(shù)print('種樹') #輸出“種樹”else: #如果男生人數(shù)小于等于女生人數(shù)print('采茶') #輸出“采茶”嵌套的if語(yǔ)句2.4【運(yùn)行結(jié)果】
程序運(yùn)行結(jié)果如圖3-7所示。圖3-7例3-3程序運(yùn)行結(jié)果PART03擺脫重復(fù)的任務(wù)while語(yǔ)句3.1while循環(huán)語(yǔ)句的基本語(yǔ)法格式如下。while判斷條件:
語(yǔ)句塊 #循環(huán)體上述語(yǔ)句的執(zhí)行過程是:當(dāng)判斷條件為True時(shí),執(zhí)行循環(huán)體;接著再次判斷條件,如果為True,繼續(xù)執(zhí)行循環(huán)體;如此反復(fù),直到判斷條件為False時(shí)結(jié)束循環(huán),執(zhí)行while語(yǔ)句后的語(yǔ)句。while語(yǔ)句3.1【例3-4】
輸入一個(gè)整數(shù)n,求S=1+2+3+…+n的值?!締栴}分析】
本例題可使用循環(huán)結(jié)構(gòu)來實(shí)現(xiàn)。重復(fù)執(zhí)行循環(huán)體n次,每次加一個(gè)數(shù)。繼續(xù)分析發(fā)現(xiàn),每次累加的數(shù)是有規(guī)律的,后一個(gè)數(shù)是前一個(gè)數(shù)加1。因此,只需在加完上一個(gè)數(shù)i后,使i加1就可得到下一個(gè)數(shù)?!緟⒖即a】n=int(input('請(qǐng)輸入一個(gè)整數(shù):')) #輸入n的值,并轉(zhuǎn)化為整數(shù)i=1 #創(chuàng)建變量i,賦值為1S=0 #創(chuàng)建變量S,賦值為0whilei<=n: #循環(huán),當(dāng)i>n時(shí)結(jié)束S+=i #求和,將結(jié)果賦給Si+=1 #變量i加1print('S=1+2+3+…+n=',S) #輸出S的值while語(yǔ)句3.1【運(yùn)行結(jié)果】
程序運(yùn)行結(jié)果如圖3-8所示。圖3-8例3-4程序運(yùn)行結(jié)果在使用while語(yǔ)句時(shí),需要注意以下兩點(diǎn)。(1)變量初始化描述要完整、準(zhǔn)確。(2)在循環(huán)體中應(yīng)有使循環(huán)趨于結(jié)束的語(yǔ)句。for語(yǔ)句3.21.基本語(yǔ)法格式for語(yǔ)句的基本語(yǔ)法格式如下。for變量in序列:
語(yǔ)句塊 #循環(huán)體上述語(yǔ)句的執(zhí)行過程是:如果序列中包含表達(dá)式,則先進(jìn)行求值計(jì)算;然后,序列中的第一個(gè)元素賦給變量,執(zhí)行循環(huán)體;接著序列中的第二個(gè)元素賦給變量,執(zhí)行循環(huán)體;依此類推,直到序列中最后一個(gè)元素賦給變量,執(zhí)行循1環(huán)體后for循環(huán)結(jié)束,執(zhí)行for語(yǔ)句后的語(yǔ)句。for語(yǔ)句3.21.基本語(yǔ)法格式例如,使用for循環(huán)輸出字符串“python”中的每一個(gè)字符,可使用下面代碼實(shí)現(xiàn)。forxin'python':print(x)上述代碼運(yùn)行結(jié)果如圖3-9所示。圖3-9for循環(huán)輸出字符串“python”中的每一個(gè)字符for語(yǔ)句3.22.range()函數(shù)for語(yǔ)句經(jīng)常與range()函數(shù)一起使用,range()函數(shù)是Python的內(nèi)置函數(shù),可創(chuàng)建一個(gè)整數(shù)列表。range()函數(shù)的語(yǔ)法格式如下。range([start,]stop[,step])(1)start:計(jì)數(shù)從start開始,默認(rèn)為0。例如,range(5)等價(jià)于range(0,5)。(2)stop:計(jì)數(shù)到stop結(jié)束,但不包括stop。例如,range(0,5)是[0,1,2,3,4]。(3)step:步長(zhǎng),默認(rèn)為1。例如,range(0,5)等價(jià)于range(0,5,1)。for語(yǔ)句3.22.range()函數(shù)【例3-5】
雞兔同籠。大約在1500年前,《孫子算經(jīng)》中記載:“今有雉兔同籠,上有三十五頭,下有九十四足,問雉兔各幾何?”編程計(jì)算雞和兔的數(shù)量并輸出?!締栴}分析】根據(jù)題意設(shè)雞和兔的數(shù)量分別為cock和rabbit,如果籠中全部是雞,雞的最大數(shù)量為35,所以cock在0~35取值,且rabbit=35?cock。確定了雞的范圍后進(jìn)行窮舉并判斷,由于雞有兩只腳,兔有4只腳,所以判斷條件為雞和兔的腳的總數(shù)量為94?!緟⒖即a】forcockinrange(0,35+1): #循環(huán)范圍為0~35,cock表示雞的數(shù)量rabbit=35-cock #計(jì)算兔的數(shù)量ifcock*2+rabbit*4==94: #如果雞和兔的腳的總數(shù)為94print('雞有',cock,'只') #輸出雞的數(shù)量print('兔有',rabbit,'只') #輸出兔的數(shù)量for語(yǔ)句3.22.range()函數(shù)【運(yùn)行結(jié)果】
程序運(yùn)行結(jié)果如圖3-10所示。圖3-10例3-5程序運(yùn)行結(jié)果嵌套的循環(huán)語(yǔ)句3.3一個(gè)循環(huán)語(yǔ)句的循環(huán)體內(nèi)包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。嵌套在循環(huán)體內(nèi)的循環(huán)稱為內(nèi)循環(huán),嵌套有內(nèi)循環(huán)的循環(huán)稱為外循環(huán)。內(nèi)循環(huán)中還可以嵌套循環(huán),這就是多重循環(huán)。while語(yǔ)句和for語(yǔ)句可以互相嵌套,自由組合。外層循環(huán)體中可以包含一個(gè)或多個(gè)內(nèi)層循環(huán)結(jié)構(gòu),但要注意的是,各循環(huán)必須完整包含,相互之間不允許有交叉現(xiàn)象。嵌套的循環(huán)語(yǔ)句3.3【例3-6】
輸出下面九九乘法表。1*1=11*2=22*2=41*3=32*3=63*3=91*4=42*4=83*4=124*4=16…………1*9=92*9=183*9=274*9=36……9*9=81【問題分析】該問題可使用for語(yǔ)句的循環(huán)嵌套來實(shí)現(xiàn),外循環(huán)控制行,內(nèi)循環(huán)控制列。嵌套的循環(huán)語(yǔ)句3.3【參考代碼】forxinrange(1,10): #循環(huán)變量x從1到9foryinrange(1,x+1): #循環(huán)變量y從1到xprint(y,'*',x,'=',x*y,'',end='') #輸出乘法表達(dá)式
print('') #輸出空字符串,換行【運(yùn)行結(jié)果】
程序運(yùn)行結(jié)果如圖3-11所示。圖3-11例3-6程序運(yùn)行結(jié)果break和continue語(yǔ)句3.4【例3-7】
身份驗(yàn)證。循環(huán)判斷用戶輸入的賬號(hào)和密碼是否正確,如果正確則退出。1.
break語(yǔ)句【問題分析】
首先設(shè)定用戶的正確賬號(hào)和密碼;然后使用while循環(huán),在循環(huán)中,輸入賬號(hào)和密碼,如果都正確則輸出登錄成功并跳出循環(huán),否則輸出賬號(hào)或密碼輸入有誤,繼續(xù)循環(huán)。break和continue語(yǔ)句3.41.
break語(yǔ)句【參考代碼】name='python' #創(chuàng)建變量name表示正確賬號(hào)password='12345678' #創(chuàng)建變量password表示正確密碼whileTrue: #循環(huán)name_input=input('請(qǐng)輸入賬號(hào):') #輸入賬號(hào)password_input=input('請(qǐng)輸入密碼:') #輸入密碼ifname!=name_input: #如果賬號(hào)不正確print('輸入的賬號(hào)有誤!') #輸出賬號(hào)有誤elifpassword!=password_input: #如果密碼不正確print('輸入的密碼有誤!') #輸出密碼有誤else: #如果賬號(hào)和密碼都正確print('登錄成功!') #輸出登錄成功break #跳出循環(huán)break和continue語(yǔ)句3.41.
break語(yǔ)句【運(yùn)行結(jié)果】
程序運(yùn)行結(jié)果如圖3-12所示。圖3-12例3-7程序運(yùn)行結(jié)果break和continue語(yǔ)句3.4【例3-8】
學(xué)生休息詢問。班級(jí)組織徒步,全程5公里,每1公里詢問學(xué)生是否需要休息,如果需要?jiǎng)t休息10分鐘,否則繼續(xù)徒步。2.
continue語(yǔ)句【問題分析】
使用for循環(huán)語(yǔ)句,并使用range(1,6)生成循環(huán)變量。在循環(huán)中輸出已徒步的公里數(shù),然后輸入“y”或“n”回答是否需要休息,如果輸入為“n”則使用continue語(yǔ)句結(jié)束本次循環(huán),不輸出后面的休息10分鐘。結(jié)束循環(huán)后,輸出到達(dá)終點(diǎn)?!緟⒖即a】foriinrange(1,6): #循環(huán)變量i從1到5print('已徒步',i,'公里') #輸出已徒步的公里數(shù)ifi!=5:answer=input('是否需要休息?(y/n):') #輸入回復(fù)ifanswer=='n': #如果回復(fù)為“n”continue #結(jié)束本次循環(huán)print('休息10分鐘') #輸出休息10分鐘print('到達(dá)終點(diǎn)') #輸出到達(dá)終點(diǎn)break和continue語(yǔ)句3.4【運(yùn)行結(jié)果】
程序運(yùn)行結(jié)果如圖3-13所示。2.
continue語(yǔ)句圖3-13例3-8程序運(yùn)行結(jié)果【程序說明】
若把程序中的continue語(yǔ)句換成break語(yǔ)句,則輸入第一個(gè)“n”后將會(huì)終止程序。感謝觀看Python少兒編程第四章形形色色的數(shù)據(jù)容器目錄1.1通用系列1.2百變字符串1.3會(huì)魔法的列表1.4被束縛了的元組1.5有身份的字典1.6獨(dú)一無(wú)二的集合PART01通用序列索引1.1序列中的所有元素都可以通過索引(下標(biāo))來獲取,從左往右,第一個(gè)元素的索引為0,第二個(gè)為1,依此類推到最后一位。索引還可以取負(fù)值,從右往左,最后一個(gè)元素的索引為?1,倒數(shù)第二個(gè)為?2,依此類推到左側(cè)第一位。例如,創(chuàng)建字符串“str1='Python'”,其索引如表4-1所示。表4-1字符串str1的索引由表4-1可知,str1[0]和str1[?6]的值都是字符“P”。還可使用序列字面值直接使用索引,如'Python'[0]的值也是字符“P”。分片1.2分片與索引類似,都可以獲取序列中的元素,區(qū)別是索引只能獲取單個(gè)元素,而分片可以獲取一定范圍內(nèi)的元素。分片通過冒號(hào)隔開的兩個(gè)索引來實(shí)現(xiàn),其語(yǔ)法格式如下。slice[start:end:step]其中,slice表示序列;start表示起始索引,缺省時(shí)分片從序列中的第一個(gè)元素開始;end表示結(jié)束索引(不含),缺省時(shí)分片到序列的最后一個(gè)元素結(jié)束;step表示步長(zhǎng),缺省時(shí)為1,不能為0。例如,創(chuàng)建字符串“str2='abcdefg'”,使用分片獲取字符串中元素的幾種情況如表4-2所示。分片1.2表4-2分片獲取字符串str2中元素分片1.2Python中步長(zhǎng)不能設(shè)置為0,但可以是負(fù)數(shù)。當(dāng)步長(zhǎng)為負(fù)數(shù)時(shí),起始索引必須大于結(jié)束索引,即分片從右往左提取元素。例如:str3=str2[7:0:-1] #str3為'gfedcb'str3=str2[-1:-8:-1] #str3為'gfedcba'str3=str2[::-1] #str3為'gfedcba'相加1.3使用加法運(yùn)算符可對(duì)序列進(jìn)行連接操作。例如:str4='Hello,'+'World' #字符串連接,str4為'Hello,World'list1=[1,2,3]+[4,5,6] #列表連接,list1為[1,2,3,4,5,6]相乘1.4使用數(shù)字n乘以一個(gè)序列會(huì)生成新的序列,在新的序列中,原來的序列將重復(fù)n次。例如:str5='hello'*3 #str5為'hellohellohello'長(zhǎng)度、最小值和最大值1.5序列常用的內(nèi)置函數(shù)有l(wèi)en()、min()和max(),其參數(shù)都為序列名。其中,len()函數(shù)返回序列中元素的個(gè)數(shù)(即序列長(zhǎng)度),min()函數(shù)和max()函數(shù)則分別返回序列中最小和最大的元素?!纠?-1】
輸入一個(gè)字符串,輸出字符串中的最大字符和最小字符,并將字符串輸出為如下格式(輸出的“?”的個(gè)數(shù)會(huì)隨著字符串的長(zhǎng)度而變化),如圖4-1所示。圖4-1輸出的文字格式【問題分析】本例題中,輸出連續(xù)相同的字符“?”,可使用序列的乘法運(yùn)算實(shí)現(xiàn),它的個(gè)數(shù)等于輸入字符串的長(zhǎng)度,可使用len()函數(shù)獲取。然后使用max()和min()函數(shù)獲取字符串中的最大字符和最小字符并輸出。長(zhǎng)度、最小值和最大值1.5【參考代碼】strs=input('請(qǐng)輸入一個(gè)字符串:') #輸入字符串并賦給strsstr_len=len(strs) #獲取strs長(zhǎng)度并賦給str_lenstr_max=max(strs) #獲取strs中最大字符并賦給str_maxstr_min=min(strs) #獲取strs中最小字符并賦給str_minprint('該字符串中最大字符為:',str_max) #輸出最大字符print('該字符串中最小字符為:',str_min) #輸出最小字符print('+'+'-'*str_len+'+') #輸出“+”、str_len個(gè)“-”和“+”print('|'+strs+'|') #輸出“|”、字符串和“|”print('+'+'-'*str_len+'+') #輸出“+”、str_len個(gè)“-”和“+”長(zhǎng)度、最小值和最大值1.5【運(yùn)行結(jié)果】
程序運(yùn)行結(jié)果如圖4-2所示。圖4-2例4-1程序運(yùn)行結(jié)果查找和計(jì)數(shù)1.6序列提供index()方法用于返回指定元素在序列中首次出現(xiàn)的位置,如果該元素不在序列中則拋出異常,其語(yǔ)法格式如下。sequence.index(obj)如果需要知道指定元素在序列中出現(xiàn)的次數(shù),可以使用count()方法進(jìn)行計(jì)數(shù)并返回,其語(yǔ)法格式如下。其中,sequence表示序列,obj表示要查找的對(duì)象。sequence.count(obj)【例4-2】
查找輸入的人物是否在《三國(guó)演義》片段中,如果在,則統(tǒng)計(jì)出現(xiàn)的次數(shù)?!締栴}分析】首先使用“in”運(yùn)算符判斷輸入的人物是否在《三國(guó)演義》片段中,如果在,則使用index()方法獲取首次出現(xiàn)的位置,然后使用count()方法統(tǒng)計(jì)出現(xiàn)的次數(shù)。查找和計(jì)數(shù)1.6【參考代碼】#創(chuàng)建字符串excerpts并賦值excerpts='''次日,于桃園中,備下烏牛白馬祭禮等項(xiàng),三人焚香再拜而說誓曰:
“念劉備、關(guān)羽、張飛,雖然異姓,既結(jié)為兄弟,則同心協(xié)力,救困扶危;
上報(bào)國(guó)家,下安黎庶。不求同年同月同日生,只愿同年同月同日死。
皇天后土,實(shí)鑒此心,背義忘恩,天人共戮!”誓畢,拜玄德為兄,
關(guān)羽次之,張飛為弟。祭罷天地,復(fù)宰牛設(shè)酒,聚鄉(xiāng)中勇士,
得三百余人,就桃園中痛飲一醉。來日收拾軍器,但恨無(wú)馬匹可乘。
正思慮間,人報(bào)有兩個(gè)客人,引一伙伴當(dāng),趕一群馬,投莊上來。
玄德曰:“此天佑我也!”三人出莊迎接。原來二客乃中山大商:
一名張世平,一名蘇雙,每年往北販馬,近因寇發(fā)而回。
玄德請(qǐng)二人到莊,置酒管待,訴說欲討賊安民之意。二客大喜,
愿將良馬五十匹相送;又贈(zèng)金銀五百兩,鑌鐵一千斤,以資器用。'''查找和計(jì)數(shù)1.6【參考代碼】(續(xù))name=input('請(qǐng)輸入人物姓名:') #輸入人物姓名并賦給nameifnameinexcerpts: #如果name在此片段中#使用index()方法獲取name首次出現(xiàn)的位置indexindex=excerpts.index(name)print(name,'首次出現(xiàn)的位置索引為:',index) #輸出index#使用count()方法獲取name出現(xiàn)的次數(shù)并輸出print(name,'在此片段中出現(xiàn)',excerpts.count(name),'次')else:print(name,'沒有出現(xiàn)在此片段中') #輸出name不在此片段中查找和計(jì)數(shù)1.6【運(yùn)行結(jié)果】
程序運(yùn)行結(jié)果如圖4-3所示。圖4-3例4-2程序運(yùn)行結(jié)果PART02百變字符串字符串格式化2.1Python提供了“%”符號(hào)進(jìn)行字符串格式化,其語(yǔ)法格式如下。1.
“%”符號(hào)其中,[]中的項(xiàng)為可選項(xiàng),也可以表示為如下形式。'%[標(biāo)志][0][輸出最小寬度][.精度]格式字符'%變量'%[±][0][m][.n]格式字符'%變量(1)標(biāo)志:標(biāo)志字符為“+”或“?”,指定輸出數(shù)據(jù)的對(duì)齊方式。(2)輸出最小寬度:用十進(jìn)制整數(shù)m表示輸出的最小位數(shù)。(3)精度:精度格式符以“.”開頭,后跟十進(jìn)制整數(shù)n。(4)格式字符:用來表示輸出數(shù)據(jù)的類型,各種格式字符及其功能說明如表4-3所示。字符串格式化2.11.
“%”符號(hào)表4-3格式字符字符串格式化2.11.
“%”符號(hào)【例4-3】
使用“%”符號(hào)格式化?!緟⒖即a】a=15 #定義變量a并賦值b=12345678.1234567 #定義變量b并賦值s='IlovePython!' #定義字符串s并賦值print('a=%05d'%a) #使用m控制輸出位數(shù),空位補(bǔ)0print('b=%8.3f'%b) #使用m.n控制輸出的長(zhǎng)度和小數(shù)點(diǎn)位數(shù)print('%17s'%s) #使用m控制輸出字符串長(zhǎng)度print('%-17.6s'%s) #使用-m.n左對(duì)齊、控制字符串長(zhǎng)度和字符位數(shù)字符串格式化2.11.
“%”符號(hào)【運(yùn)行結(jié)果】程序運(yùn)行結(jié)果如圖4-4所示。圖4-4例4-3程序運(yùn)行結(jié)果【程序說明】
輸出變量a時(shí),“%05d”表示輸出寬度為5并用“0”來補(bǔ)空位。輸出變量b時(shí),“%8.3f”表示輸出寬度為8,精度為3,由于實(shí)際長(zhǎng)度超過8位,故應(yīng)按實(shí)際位數(shù)輸出,小數(shù)位數(shù)超過3位部分被截去。輸出字符串s時(shí),“%17s”表示輸出字符串寬度為17,如果字符串本身長(zhǎng)度不足17,則用空格左補(bǔ)齊,可以看到“IlovePython!”前存在3個(gè)空格?!??17.6s”表示輸出寬度雖為17,但這里指定了精度“.6”,也就是說指定了輸出字符的個(gè)數(shù)為6,并且用“?”指定了左對(duì)齊,所以輸出6個(gè)字符“Ilove”,后面還有11個(gè)空格。字符串格式化2.1使用format()方法也可以格式化字符串,其基本語(yǔ)法格式如下。2.format()方法模板字符串是由一系列槽(用大括號(hào)表示)組成,用于控制字符串中嵌入值出現(xiàn)的位置,其基本思想是,將format()方法中逗號(hào)分隔的參數(shù)按照序號(hào)替換到模板字符串的槽中(序號(hào)從0開始)。例如:模板字符串.format(逗號(hào)分隔的參數(shù))#s為'你好,張三,你這個(gè)月的工資是8500元!'s='你好,{1},你這個(gè)月的工資是{0}元!'.format(8500,'張三')如果大括號(hào)中沒有序號(hào),則按照出現(xiàn)順序替換,例如:#s為'你好,8500,你這個(gè)月的工資是張三元!'s='你好,{},你這個(gè)月的工資是{}元!'.format(8500,'張三')字符串格式化2.1format()方法中模板字符串的槽除了包括參數(shù)序號(hào)外,還可以包括格式控制信息,此時(shí)槽的內(nèi)部格式如下。2.format()方法{參數(shù)序號(hào):格式控制標(biāo)記}其中格式控制標(biāo)記用于控制參數(shù)顯示時(shí)的格式,它包括“填充”“對(duì)齊”“寬度”“,”“.精度”“格式字符”6個(gè)可選字段,這些字段可以組合使用。具體的格式控制標(biāo)記及其說明如表4-4所示。字符串格式化2.12.format()方法表4-4格式控制標(biāo)記字符串格式化2.12.format()方法【例4-4】
模擬輸出簡(jiǎn)單的非刷新文本進(jìn)度條。要求按照任務(wù)執(zhí)行百分比將整個(gè)任務(wù)劃分為100個(gè)單位,每執(zhí)行10%輸出一次進(jìn)度條,每行輸出包含進(jìn)度百分比、代表已完成部分(**)和未完成部分(..)的兩種字符,以及一個(gè)跟隨完成進(jìn)度前進(jìn)的小箭頭,風(fēng)格如下:%10[**->..................]【問題分析】本例題的關(guān)鍵是輸出字符的格式,可使用format()方法進(jìn)行格式化。采用for循環(huán)和print()函數(shù)構(gòu)成程序的主體部分,使用格式字符“%”輸出百分比,為了使輸出整齊,可使用{:^4.0%}格式化百分比部分。由于程序執(zhí)行速度太快,不便于觀察,可使用time.sleep(t)函數(shù)將當(dāng)前程序暫停t秒,其中,time是Python標(biāo)準(zhǔn)時(shí)間庫(kù)。字符串格式化2.12.format()方法【參考代碼】importtime #導(dǎo)入time模塊scale=10 #變量scale表示輸出進(jìn)度條的精度print('-----------執(zhí)行開始-----------') #輸出執(zhí)行開始提示foriinrange(scale+1): #循環(huán)變量從0到scaledone='**'*i #用“*”表示已完成的部分undone='..'*(scale-i) #用“.”表示未完成的部分percent=i/scale #計(jì)算完成百分比#格式化輸出
print('{:>4.0%}[{}->{
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小區(qū)租戶物業(yè)管理合同
- 張家港廠房出租合同
- 灑水車租賃合同
- 換熱站施工承包合同
- 鋼筋銷售合同
- 店鋪門面轉(zhuǎn)讓合同
- 三方商鋪?zhàn)赓U合同
- 房地產(chǎn)勞動(dòng)合同臺(tái)賬明細(xì)
- 挖掘機(jī)設(shè)備租賃合同
- 2025年4月份辦公樓租賃合同新增的隔震溝維護(hù)條款
- 2025年江蘇建筑職業(yè)技術(shù)學(xué)院高職單招(數(shù)學(xué))歷年真題考點(diǎn)含答案解析
- 配電工程施工方案
- 2025年深入貫徹中央八項(xiàng)規(guī)定精神學(xué)習(xí)教育知識(shí)競(jìng)賽試題及答案
- 2025年中國(guó)計(jì)量器具市場(chǎng)調(diào)查研究報(bào)告
- 2025年吉林鐵道職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)必考題
- 《正定矩陣的應(yīng)用分析》1400字
- 掛網(wǎng)噴播植草施工方案
- CNAS-CC190-2021 能源管理體系認(rèn)證機(jī)構(gòu)要求
- 牧運(yùn)通備案辦理流程
- 中職高教版(2023)語(yǔ)文職業(yè)模塊-第三單元3.2簡(jiǎn)單相信傻傻堅(jiān)持【課件】
- 《企業(yè)安全生產(chǎn)培訓(xùn)課件:個(gè)人防護(hù)裝備及使用》
評(píng)論
0/150
提交評(píng)論