Python少兒編程全套教學課件_第1頁
Python少兒編程全套教學課件_第2頁
Python少兒編程全套教學課件_第3頁
Python少兒編程全套教學課件_第4頁
Python少兒編程全套教學課件_第5頁
已閱讀5頁,還剩548頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Python少兒編程第一章走進Python編程世界第1章走進Python編程世界.pptx第2章Python編程基礎.pptx第3章神奇的分支和循環.pptx第4章形形色色的數據容器.pptx第5章強大的函數積木.pptx第6章會畫畫的“小海龜”.pptx第7章神秘的類和對象.pptx第8章永久存儲的文件.pptx第9章一起捉bug.pptx第10章玩游戲不如自己開發游戲.pptx第11章一起來創作——FlappyBird.pptx全套可編輯PPT課件目錄1.1認識Python1.2搭建Python開發環境1.3編程初體驗PART01認識PythonPython的產生與發展1.11989年圣誕節期間,荷蘭人GuidovanRossum在阿姆斯特丹開發了一種新的編程語言Python,作為ABC語言的一種繼承。Python是從ABC發展起來的,主要受到了Modula-3(另一種語言)的影響,并且結合了Unixshell和C的習慣。2000年10月,Python2.0版本發布。1991年,第一個Python編譯器誕生。2008年12月,Python3.0版本發布。2011年1月,Python被TIOBE編程語言排行榜評為2010年度語言。2020年1月,Python2.7正式終止支持,全面進入Python3時代。Python的發展主要經歷了幾個階段Python的產生與發展1.101簡單易學02免費開源03類庫豐富04可擴展05解釋性06可移植性07可嵌入性Python的特點1.201Web開發04數據分析02網絡爬蟲05自動化運維03人工智能06游戲開發Python的應用領域1.3PART02搭建Python開發環境安裝Python2.11.安裝步驟1訪問/downloads/windows/,在打開的下載頁面中選擇“StableReleases”→“Python3.9.4-April,2021”→“DownloadWindowsinstaller(64-bit)”選項,如圖1-1所示。圖1-1下載Python安裝Python2.11.安裝步驟2雙擊下載好的python-3.9.4-amd64.exe文件,在打開的對話框中勾選“AddPython3.9toPATH”復選框(將安裝路徑添加到系統環境變量Path中),然后選擇“Customizeinstallation”選項,如圖1-2所示。圖1-2安裝向導安裝Python2.11.安裝步驟3

顯示“OptionalFeatures”界面,選擇Python提供的工具包,一般保持默認的全部選中,然后單擊“Next”按鈕,如圖1-3所示。圖1-3選擇Python提供的工具包安裝Python2.11.安裝步驟4顯示“AdvancedOptions”界面,勾選“Installforallusers”復選框(為所有用戶安裝),在“Customizeinstalllocation”編輯框中設置安裝路徑(如D:\Python39,也可單擊“Browse”按鈕選擇安裝目錄),然后單擊“Install”按鈕,如圖1-4所示。圖1-4選擇高級選項與安裝路徑安裝Python2.11.安裝步驟5

顯示“SetupProgress”界面,開始安裝并顯示安裝進度,如圖1-5所示。安裝成功后,單擊“Close”按鈕關閉對話框即可。圖1-5安裝進度安裝Python2.12.驗證打開命令提示符(cmd)窗口,執行“python”命令。如果出現類似圖1-6所示結果,說明Python安裝成功。圖1-6Python安裝成功安裝PyCharm2.21.安裝步驟1訪問/pycharm/download/#section=windows,在打開的下載頁面中單擊“Community”下的“Download”按鈕,下載社區版,如圖1-7所示。圖1-7下載PyCharm安裝PyCharm2.21.安裝步驟2

雙擊下載好的pycharm-community-2021.1.exe文件,根據安裝提示進行操作即可完成安裝。圖1-8設置安裝選項安裝PyCharm2.22.設置步驟1

啟動PyCharm,打開“PyCharmUserAgreement”對話框,勾選“IconfirmthatIhavereadandacceptthetermsofthisUserAgreement”復選框,然后單擊“Continue”按鈕,如圖1-9所示。圖1-9PyCharm導入設置安裝PyCharm2.22.設置步驟2打開“WelcometoPyCharm”對話框,在左側選擇“Customize”選項,在右側“Colortheme”的下拉列表中選擇“IntelliJLight”選項,如圖1-10所示。“IntelliJLight”主題的用戶界面如圖1-11所示。圖1-10設置用戶界面主題

圖1-11“IntelliJLight”主題的用戶界面安裝PyCharm2.22.設置步驟3

在界面左側選擇“Plugins”選項,在搜索框中輸入“Chinese”,然后在下面列表中選擇“Chinese(Simplified)LanguagePack/中文語言包”選項,單擊“Install”按鈕,如圖1-12所示。圖1-12安裝中文插件安裝PyCharm2.22.設置步驟4

安裝完成后,單擊“RestartIDE”按鈕,在打開的對話框中單擊“Restart”按鈕,如圖1-13所示。圖1-13重啟PyCharm安裝PyCharm2.22.設置步驟5重啟后,便可進入PyCharm中文界面,如圖1-14所示。圖1-14PyCharm中文界面PART03編程初體驗第一個Python小游戲3.1步驟1

啟動PyCharm,在打開的“歡迎訪問PyCharm”對話框中選擇“新建項目”選項(見圖1-14)。步驟2

顯示“新建項目”界面,在“位置”編輯框中設置項目保存的路徑并將項目命名為“第1章”;在“使用此工具新建環境”下拉列表中選擇默認的“Virtualenv”選項;在“基本解釋器”中選擇Python安裝目錄下的python.exe;取消勾選“創建main.py歡迎腳本”復選框,然后單擊“創建”按鈕,如圖1-15所示。第一個Python小游戲3.1圖1-15新建項目第一個Python小游戲3.1步驟3

打開PyCharm工作窗口,在左側顯示創建的“第1章”項目,同時打開“每日小技巧”對話框,單擊“關閉”按鈕關閉該對話框,如圖1-16所示。圖1-16PyCharm工作窗口第一個Python小游戲3.1步驟4

右擊項目名“第1章”,在彈出的快捷菜單中選擇“新建”→“Python文件”選項,新建一個Python文件,如圖1-17所示。圖1-17新建Python文件第一個Python小游戲3.1步驟5

打開“新建Python文件”對話框,將文件命名為“猜數字”,然后雙擊“Python文件”選項,如圖1-18所示。圖1-18命名文件第一個Python小游戲3.1步驟6

進入“猜數字.py”代碼編輯界面,在代碼編輯區輸入代碼,如圖1-19所示。圖1-19輸入代碼第一個Python小游戲3.1步驟7

在菜單欄中選擇“運行”→“運行”選項,打開“運行”對話框,然后選擇“猜數字”選項,運行程序,在窗口下方即可顯示運行結果,如圖1-20所示。圖1-20運行程序Python編碼規范3.2一個好的、有使用價值的源程序都應加上必要的注釋,以提高程序的可讀性。Python允許有多種注釋方式,常用的包括單行注釋和多行注釋兩種。(1)以“#”開始,以換行符結束的單行注釋。這種注釋可單獨占一行,也可出現在一行中其他內容的右側。例如:1.注釋print('你真是太厲害了,一次就猜中了!') #輸出猜對了(2)以三重引號(單引號或雙引號)開始,同樣以三重引號結束的多行注釋。例如:"""-----猜數字游戲-----

編寫者:小藍

編寫時間:20210423"""'''如果要修改此部分代碼,請添加如下注釋

修改者:

修改時間:'''Python編碼規范3.2Python最獨特的一點就是依靠代碼塊的縮進來體現代碼之間的邏輯關系。例如,對于選擇結構來說,行尾的冒號及下一行的縮進表示一個代碼塊的開始,而縮進結束則表示一個代碼塊的結束。在Python中最好使用4個空格進行懸掛式縮進,且同一級別的代碼塊的縮進量必須相同。例如:2.縮進a=1 #a賦值為1b=2 #b賦值為2ifa>b: #如果a大于bprint(a) #輸出a的值else: #如果a小于等于bprint(b) #輸出b的值Python編碼規范3.2Python建議每行代碼的長度不要超過120個字符。對于過長的代碼,建議進行換行。換行有以下兩種方式。(1)可以在行尾使用續行符“\”來表示下面緊接的一行仍屬于當前語句。例如:3.語句換行message='你真是太厲害了,一次就猜中了!'\'再猜一次,我不相信你還能猜到我在想什么。'等價于message='你真是太厲害了,一次就猜中了!再猜一次,我不相信你還能猜到我在想什么。'(2)根據Python會將圓括號中的行隱式連接起來這個特點,可以使用圓括號包含多行內容。例如,上述語句又可用以下形式表示。message=('你真是太厲害了,一次就猜中了!''再猜一次,我不相信你還能猜到我在想什么。')Python編碼規范3.2使用必要的空格與空行可增強代碼的可讀性。一般來說,運算符兩側、函數參數之間、逗號后面建議使用空格進行分隔。而不同功能的代碼塊之間、不同的函數定義及不同的類定義之間則建議增加一個空行以提高程序的可讀性。4.空格與空行感謝觀看Python少兒編程第二章Python編程基礎目錄1.1會變的數據1.2多樣的數據1.3數據的運算1.4與外界對話PART01會變的數據變量的命名規則1.1Python中變量的命名需要遵循一定的規則,即變量名只能包括字母、數字和下劃線,且第一個字符必須是字母或下劃線,不能是數字。例如,name、_name1、name_2都是合法的變量名,但1name、2_name、&123、%name、M.Jack、?name2都是不合法的變量名。在實際開發過程中,為提高代碼的可讀性,會經常使用以下3種命名方式。(1)小駝峰式命名。第一個單詞首字母小寫,之后的單詞首字母大寫,如myName、myFriendName等。(2)大駝峰式命名。每個單詞首字母都大寫,如MyName、MyFriendName等。(3)下劃線連接命名。用下劃線“_”連接每個單詞,如my_name、my_friend_name等。(1)Python的變量名區分英文字母大小寫,如score和Score是兩個不同的變量。(2)Python的關鍵字不能作為變量名使用。提示變量的賦值1.2變量賦值時,Python會自動聲明變量的數據類型(將在2.2節中介紹)。賦值運算符“=”用于為變量賦值,賦值運算符左側是變量名,而右側是變量指向的值。例如:a=1b=1.2c='小紅'Python還允許同時為多個變量賦相同的值。例如:a=b=c=1也可以同時為多個變量分別賦不同的值。例如:a,b,c=1,2,'hello'變量的賦值1.2【例2-1】

輸出小藍在不同的年齡喜歡的動畫片。【參考代碼】name='小藍' #創建名字變量name,賦值為“小藍”age=3 #創建年齡變量age,賦值為3cartoon='小豬佩奇' #創建動畫片變量cartoon,賦值為“小豬佩奇”#輸出小藍3歲喜歡的動畫片print(name,age,'歲時喜歡的動畫片是',cartoon)age=5 #age重新賦值為5cartoon='機器貓' #cartoon重新賦值為“機器貓”#輸出小藍5歲喜歡的動畫片print(name,age,'歲時喜歡的動畫片是',cartoon)age=10 #age重新賦值為10cartoon='海賊王' #cartoon重新賦值為“海賊王”#輸出小藍10歲喜歡的動畫片print(name,age,'歲時喜歡的動畫片是',cartoon)變量的賦值1.2【運行結果】

程序運行結果如圖2-2所示。圖2-2例2-1程序運行結果PART02多樣的數據數字2.11.intint(整型)數值通常稱為整數。Python可以處理任意大小的整數,當然包括負整數。整數在程序中的表示方法和數學上的寫法一致,如18、?175。2.floatfloat(浮點型)數值也稱為浮點數,由整數和小數組成。Python中浮點數只能用十進制形式表示,但其表示方法有如下兩種。(1)小數表示法,由整數部分和小數部分組成,如0.0013、?1482.5。(2)科學表示法,通常用來表示一些比較大或比較小的數值。例如,0.0013可表示為1.3e?3,?1482.5可表示為?1.4825e3。3.complexcomplex(復數型)數值由實數部分和虛數部分組成,一般形式為a+bj,其中,a是復數的實數部分,b是復數的虛數部分,這里的a和b是整數或浮點數,如2.14j、2+12.1j。布爾類型2.2布爾(bool)類型是一種比較特殊的類型,它只有“True”(真)和“False”(假)兩種值。在Python中,可以直接用“True”和“False”表示布爾值(注意首字母大寫),也可以通過比較和判斷得到布爾值。例如:10<30 #判斷10是否小于30,結果為True10>20 #判斷10是否大于20,結果為False字符串2.3字符串(str)是以單引號或雙引號括起來的任意文本,如'abc'、"xyz"等。如果單引號本身也是字符串中的一個字符,那就可以用雙引號括起來;反之,如果雙引號本身也是字符串中的一個字符,那就可以用單引號括起來。例如:"I'mOK!"'Itoldmyfriend,"Pythonismyfavoritelanguage!"'如果字符串內部既包含單引號又包含雙引號,則可以用轉義字符“\”來標識,例如:'I\'m\"OK\"!'表示的字符串內容是:I'm"OK"!字符串2.3轉義字符以“\”開頭,后跟一個字符,通常用來表示一些控制代碼和功能定義。Python中常用的轉義字符如表2-1所示。表2-1常用的轉義字符字符串2.3【例2-2】

輸出小藍個人信息的值及其類型,以及她的自我介紹。【參考代碼】name='小藍' #創建姓名變量name,賦值為“小藍”#輸出變量name的值及其類型print('name的值為',name,',類型是',type(name))sex='女生' #創建性別變量sex,賦值為“女生”#輸出變量sex的值及其類型print('sex的值為',sex,',類型是',type(sex))age=10 #創建年齡變量age,賦值為10#輸出變量age的值及其類型print('age的值為',age,',類型是',type(age))height=1.4 #創建身高變量height,賦值為1.4字符串2.3【參考代碼】#輸出變量height的值及其類型print('height的值為',height,',類型是',type(height))print('**********自我介紹**********')#輸出自我介紹print('大家好,我叫',name,',\n是一個開朗的',sex,',\n今年',age,'歲了,\n我已經',height,'米了哦,\n很高興認識大家。')字符串2.3【運行結果】

程序運行結果如圖2-3所示。圖2-3例2-2程序運行結果【程序說明】

type()函數用于返回對象的類型。PART03數據的運算算術運算符3.1Python提供了7個基本的算術運算符,其運算方式與數學中基本類似。具體符號如表2-2所示。表2-2算術運算符賦值運算符3.2賦值運算符用來給變量賦值,Python提供的賦值運算符可分為簡單賦值和復合賦值兩種。簡單賦值運算符“=”已經在2.1中介紹了,下面著重介紹復合賦值運算符。在Python中,經常會有利用變量的原有值計算出新值并重新賦值給這個變量的情況。例如,下面表達式就是把變量a的值加上1后再賦值給a。a=a+1復合賦值運算符允許縮短這個表達式,使用“+=”運算符,可以將上面的表達式簡寫為:a+=1 #相當于a=a+1賦值運算符3.2其中,復合賦值運算符中較為常用的是復合算術賦值運算符,包括+=、?=、*=、/=、%=、**=和//=共7種。例如:a+=b #相當于a=a+ba-=b #相當于a=a-ba*=b #相當于a=a*ba/=b #相當于a=a/ba%=b #相當于a=a%ba**=b #相當于a=a**ba//=b #相當于a=a//b如果b是包含若干項的表達式,則相當于它有括號,例如:a*=b-3 #相當于a=a*(b?3)提示關系運算符3.3關系運算符又稱比較運算符,用于比較運算符兩側數據的值,比較的結果是一個布爾值,即True或False。Python提供的關系運算符如表2-3所示。表2-3關系運算符關系運算符3.3使用關系運算符時須注意以下幾點。(1)等于、不等于、大于等于、小于等于運算符(==、!=、>=、<=)的表示方法與數學中的表示方法不同(=、≠、≥、≤)。(2)關系運算符兩側的值可以是數值、字符串等數據類型,但應為同一類型。(3)字符串數據進行比較運算時,按照其內容的ASCII碼值進行比較。在比較兩個字符串時,先比較第一個字符,其中ASCII碼值較大的字符所在字符串較大,如果第一個字符相同,再比較第二個字符……。例如,'abce'>'abcdef'為True,是因為逐個比較前三個字符,其ASCII碼值相同,在比較第四個字符時,“e”的ASCII碼值大于“d”的ASCII碼值,因此,該表達式的值為True。(注意:不是比較其長短)邏輯運算符3.4Python的邏輯運算符包括and(與)、or(或)、not(非)3種,如表2-4所示。與C/C++、Java等語言不同的是,Python中邏輯運算的返回值不一定是布爾值。表2-4邏輯運算符邏輯運算符3.4【例2-3】

關系運算符和邏輯運算符示例。【參考代碼】a=5 #創建變量a,賦值為5b=6 #創建變量b,賦值為6#輸出邏輯表達式的值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)邏輯運算符3.4【運行結果】

程序運行結果如圖2-4所示。圖2-4例2-3程序運行結果邏輯運算符3.4【程序說明】

計算“a?5andb<3”表達式時,先計算“a?5”得到的值為0,即為False,因此無須計算“b<3”的值,表達式的值即為0。計算“a<6andb+3”表達式時,先計算“a<6”得到的值為True,因此,需計算表達式“b+3”的值,且整個表達式的值為“b+3”的值,即為9。計算“a?5orb<3”表達式時,先計算“a?5”得到的值為0,即為False,因此,需計算“b<3”的值,且整個表達式的值為“b<3”的值,即為False。計算“a<6orb+3”表達式時,先計算“a<6”得到的值為True,無須計算“b+3”的值,表達式的值為True。計算“nota”表達式時,由于a的值為5,即為True,因此,表達式的值為False。成員運算符3.5成員運算符用于判斷一個元素是否在某個序列中,如字符串、列表、元組等。Python提供的成員運算符如表2-5所示。表2-5成員運算符成員運算符3.5【例2-4】

判斷指定零食是否在購物清單中。【參考代碼】snack1='薯片' #創建零食變量snack1,賦值為“薯片”snack2='棒棒糖' #創建零食變量snack2,賦值為“棒棒糖”#創建購物清單列表snackListsnackList=['可樂','蘋果','薯片','奧利奧','雞腿']#判斷薯片是否在購物清單中print('薯片在購物清單中?',snack1insnackList)#判斷棒棒糖是否在購物清單中print('棒棒糖在購物清單中?',snack2insnackList)#判斷棒棒糖是否不在購物清單中print('棒棒糖不在購物清單中?',snack2notinsnackList)成員運算符3.5【運行結果】

程序運行結果如圖2-5所示。圖2-5例2-4程序運行結果身份運算符3.6關系運算符中的“==”是比較兩個變量的值是否相等。身份運算符用來判斷兩個變量是否指向同一個內存對象。Python提供的身份運算符如表2-6所示。表2-6身份運算符身份運算符3.6【例2-5】

判斷三個整型變量是否為同一個對象。【參考代碼】int1=500 #創建變量int1,賦值為500int2=500 #創建變量int2,賦值為500int3=520 #創建變量int3,賦值為520print('int1和int2引用的是同一對象?',int1isint2)print('int1和int3引用的是同一對象?',int1isint3)print('int1的內存地址:',id(int1),'\nint2的內存地址:',id(int2),'\nint3的內存地址:',id(int3))int1=520 #修改int1的值為520print('修改值后的int1和int3引用的是同一對象?',int1isint3)print('修改值后的int1內存地址:',id(int1))身份運算符3.6【運行結果】程序運行結果如圖2-6所示。圖2-6例2-5程序運行結果【程序說明】id()函數返回對象的唯一標識符,即對象的內存地址。位運算符3.7所謂位運算是指進行二進制位的運算。例如,將一個存儲單元中的各二進制位左移或右移一位。Python提供的位運算符包括按位與、按位或、按位異或、按位取反、左移和右移共6種,如表2-7所示。表2-7位運算符位運算符3.7假設變量a=10,b=23,即二進制形式a=00001010,b=00010111。用變量a和b執行表2-7中的位運算符,結果如圖2-7所示。(a)按位與a&b (b)按位或a|b (c)按位異或a^b(d)按位取反~a (e)按位左移a<<2 (f)按位右移a>>2圖2-7位運算符位運算符3.7【例2-6】

數據的加密和解密。【參考代碼】a=2048 #創建變量a,并賦值為2048b=5 #創建變量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位解密。位運算符3.7【運行結果】程序運行結果如圖2-8所示。圖2-8例2-6程序運行結果【程序說明】可以看出,a左移b位再右移b位后,還原到a的原始值,故可用這種方式來實現數據的加密和解密。運算符優先級3.8Python中運算符的優先級如表2-8所示。表2-8運算符優先級PART04與外界對話聽——輸入4.1Python提供了input()函數用于獲取用戶從鍵盤輸入的字符串,其基本格式如下。input([prompt])其中,prompt表示輸入提示,是一個字符串,[]表示可選。input()函數讓程序暫停運行,等待用戶輸入數據,當獲取用戶輸入后,返回一個字符串(不包含末尾的換行符)。例如:name=input('請輸入名字:') #name為字符串當將該返回值作為數值使用時,就會引發錯誤,此時可使用int()函數將字符串轉化為整型數據,也可使用float()函數將字符串轉化為浮點型數據。例如:a=int(input('請輸入一個整數')) #a為整數b=float(input('請輸入一個浮點數:')) #b為浮點數這里需要注意的是,使用int()函數時,參數須是整型數值的字符串。說——輸出4.2在Python中使用print()函數進行輸出,應遵循以下原則。(1)輸出字符串時須用單引號或雙引號括起來。(2)輸出變量時,可不加引號。(3)變量與字符串同時輸出或多個變量同時輸出時,須用“,”隔開。【例2-7】

輸出萬能生日祝福。【問題分析】使用input()函數輸入名字,使用print()函數輸出對應名字的生日祝福。說——輸出4.2【運行結果】

程序運行結果如圖2-9所示。【參考代碼】print('請輸入名字:') #輸出提示#根據輸入的名字輸出生日祝福print('親愛的',input(), ':\n\t生日快樂!??\n\t希望你能開心快樂每一天!??????')圖2-9例2-7程序運行結果感謝觀看Python少兒編程第三章神奇的分支和循環目錄1.1前進的向導1.2選擇不同的道路1.3擺脫重復的任務PART01前進的向導什么是流程圖1.1流程圖是對某一個問題的定義、分析或解法的圖形表示,圖中用各種符號來表示操作、數據、流向及裝置等。程序流程圖則表示程序的運行順序,是一種常用的表示算法的圖形化工具。換言之,程序流程圖就是通過畫圖的方式表達程序運行的所有路徑,通過使用箭頭和框圖把程序運行的方向與步驟展示出來。程序流程圖的基本符號1.2圖3-1程序流程圖中常用的符號程序流程圖的基本符號1.2(1)端點符表示算法的起始或結束。(2)判斷符用于對給定的條件進行判斷,根據判斷的結果來選擇流程方向。它只有一個入口,可以有若干個出口,但有且僅有一個出口被激活。(3)處理符表示算法中的具體處理步驟。(4)流線符表示數據流,箭頭指示流向。(5)連接符用于連接因頁面寫不下而斷開的流程線,對應的連接符應有同一標記。(6)注解符用來標識注解內容,它不是程序流程圖的必要部分,不反應流程和操作,只是為了對流程圖中某些符號的操作進行必要的補充說明,以幫助讀者更好的理解。(7)數據符表示未指定媒體的數據,可用于輸入和輸出,比較通用。程序流程圖還包括一些特殊的數據符,常用的有文件符、顯示符和人工輸入符。程序流程圖的基本符號1.2在程序設計中,包含了3種基本結構,即順序結構、分支結構和循環結構,其流程圖如圖3-2所示。圖3-23種基本結構的流程圖掃地機器人的工作流程圖1.3掃地機器人工作時傳感器會檢測前方、左邊和右邊是否有障礙物,并將檢測結果傳給掃地機器人進行判斷。掃地機器人根據判斷結果規劃路徑,具體如下。(1)判斷前方是否有障礙物,如果沒有,則機器人前行;如果有,則進行下一步判斷。(2)判斷左邊是否有障礙物,如果沒有,則機器人左轉;如果有,則進行下一步判斷。(3)判斷右邊是否有障礙物,如果沒有,則機器人右轉;如果有,則后退。(4)循環執行(1)~(3),直到機器人停止工作。掃地機器人的工作流程圖1.3圖3-3掃地機器人的工作流程圖PART02選擇不同的道路簡單的if語句2.1if語句允許程序通過判斷條件是否成立而選擇是否執行指定的語句。if語句的基本語法格式如下。if判斷條件:

語句塊if語句的執行過程是:如果判斷條件為True,執行語句塊,否則直接執行if語句后的語句。例如:weather='晴' #創建變量weather代表天氣,賦值為“晴”ifweather=='晴': #如果天氣為晴print('去公園玩') #輸出“去公園玩”if-else語句2.2if語句只允許在條件為True時執行指定的語句,而if-else語句還可在條件為False時執行指定的語句,其基本語法格式如下。if判斷條件:

語句塊1else:

語句塊2上述語句的執行過程是:當判斷條件為True時,執行語句塊1,否則執行語句塊2。if-else語句2.2【例3-1】

根據輸入的天氣選擇是否出門游玩。【參考代碼】weather=input('請輸入天氣情況:') #輸入變量weather的值ifweather=='晴'orweather=='多云': #如果天氣為晴或多云print('去公園玩') #輸出“去公園玩”else: #如果不是print('在家玩') #輸出“在家玩”【問題分析】

本例題可使用if-else語句進行條件判斷,如果輸入天氣為“晴”或“多云”,輸出“去公園玩”,否則輸出“在家玩”。if-else語句2.2【運行結果】

程序運行結果如圖3-4所示。圖3-4例3-1程序運行結果if-elif-else語句2.3編程時常常需要判定一系列的條件,一旦其中某一個條件為True就立刻停止。此時,可采用if-elif-else語句(elif是elseif的簡寫),其基本語法格式如下。if判斷條件1:

語句塊1elif判斷條件2:

語句塊2……elif判斷條件n:

語句塊nelse:

語句塊n+1if-elif-else語句2.3表3-1溫度和穿衣建議對照關系【例3-2】

根據輸入的溫度temperature給出穿衣建議,溫度和穿衣建議對照關系如表3-1所示。if-elif-else語句2.3【參考代碼】#輸入溫度temperature的值并將其轉化為浮點數temperature=float(input('請輸入溫度(℃):'))iftemperature>=28.0: #如果溫度大于等于28.0print('穿衣建議:輕棉織物制作的短衣、短裙、短褲等') #輸出穿衣建議eliftemperature>=24.0: #如果溫度大于等于24.0小于28.0print('穿衣建議:棉麻面料的襯衫、薄長裙、薄T恤等') #輸出穿衣建議eliftemperature>=21.0: #如果溫度大于等于21.0小于24.0print('穿衣建議:單層棉麻面料的T恤衫、長褲、薄牛仔褲等') #輸出穿衣建議eliftemperature>=18.0: #如果溫度大于等于18.0小于21.0print('穿衣建議:薄外套、風衣、薄毛衣等') #輸出穿衣建議eliftemperature>=15.0: #如果溫度大于等于15.0小于18.0print('穿衣建議:風衣、外套、毛衣等') #輸出穿衣建議eliftemperature>=11.0: #如果溫度大于等于11.0小于15.0print('穿衣建議:毛衣、風衣、大衣等') #輸出穿衣建議eliftemperature>=6.0: #如果溫度大于等于6.0小于11.0print('穿衣建議:棉衣、冬大衣、薄羽絨服等') #輸出穿衣建議else: #以上條件都不滿足print('穿衣建議:羽絨服、厚棉衣、冬大衣等') #輸出穿衣建議if-elif-else語句2.3【運行結果】

程序運行結果如圖3-5所示。圖3-5例3-2程序運行結果【程序說明】

每個else本身都隱含了一個條件,如第1個elif實質上表示條件24.0≤temperature<28.0成立,此隱含條件與對應的if所給出的條件完全相反。在編程時要善于利用隱含條件,使程序代碼清晰簡潔。嵌套的if語句2.4在if語句中又包含一個或多個if語句時,稱為if語句的嵌套,其基本語法格式如下。if判斷條件1: if判斷條件2:

語句塊1 else:

語句塊2else: if判斷條件3:

語句塊3 else:

語句塊4嵌套的if語句2.4【例3-3】

分配任務。在社會實踐活動中有三項任務,分別是:種樹、采茶、打掃街道。依據小組人數及男生、女生人數決定小組的任務,人數小于5的小組負責打掃街道,人數大于等于5且男生多于女生的小組負責種樹,人數大于等于5且男生不多于女生的小組負責采茶。輸入小組男生、女生人數,輸出小組接受的任務。【問題分析】

本例題可使用嵌套的if語句實現,程序流程圖如圖3-6所示。嵌套的if語句2.4圖3-6分配任務流程圖嵌套的if語句2.4【參考代碼】boy=int(input('請輸入男生人數:')) #輸入男生人數并轉化為整數girl=int(input('請輸入女生人數:')) #輸入女生人數并轉化為整數total=boy+girl #計算總人數iftotal<5: #如果總人數小于5print('打掃街道') #輸出“打掃街道”else: #如果總人數大于等于5ifboy>girl: #如果男生人數大于女生人數print('種樹') #輸出“種樹”else: #如果男生人數小于等于女生人數print('采茶') #輸出“采茶”嵌套的if語句2.4【運行結果】

程序運行結果如圖3-7所示。圖3-7例3-3程序運行結果PART03擺脫重復的任務while語句3.1while循環語句的基本語法格式如下。while判斷條件:

語句塊 #循環體上述語句的執行過程是:當判斷條件為True時,執行循環體;接著再次判斷條件,如果為True,繼續執行循環體;如此反復,直到判斷條件為False時結束循環,執行while語句后的語句。while語句3.1【例3-4】

輸入一個整數n,求S=1+2+3+…+n的值。【問題分析】

本例題可使用循環結構來實現。重復執行循環體n次,每次加一個數。繼續分析發現,每次累加的數是有規律的,后一個數是前一個數加1。因此,只需在加完上一個數i后,使i加1就可得到下一個數。【參考代碼】n=int(input('請輸入一個整數:')) #輸入n的值,并轉化為整數i=1 #創建變量i,賦值為1S=0 #創建變量S,賦值為0whilei<=n: #循環,當i>n時結束S+=i #求和,將結果賦給Si+=1 #變量i加1print('S=1+2+3+…+n=',S) #輸出S的值while語句3.1【運行結果】

程序運行結果如圖3-8所示。圖3-8例3-4程序運行結果在使用while語句時,需要注意以下兩點。(1)變量初始化描述要完整、準確。(2)在循環體中應有使循環趨于結束的語句。for語句3.21.基本語法格式for語句的基本語法格式如下。for變量in序列:

語句塊 #循環體上述語句的執行過程是:如果序列中包含表達式,則先進行求值計算;然后,序列中的第一個元素賦給變量,執行循環體;接著序列中的第二個元素賦給變量,執行循環體;依此類推,直到序列中最后一個元素賦給變量,執行循1環體后for循環結束,執行for語句后的語句。for語句3.21.基本語法格式例如,使用for循環輸出字符串“python”中的每一個字符,可使用下面代碼實現。forxin'python':print(x)上述代碼運行結果如圖3-9所示。圖3-9for循環輸出字符串“python”中的每一個字符for語句3.22.range()函數for語句經常與range()函數一起使用,range()函數是Python的內置函數,可創建一個整數列表。range()函數的語法格式如下。range([start,]stop[,step])(1)start:計數從start開始,默認為0。例如,range(5)等價于range(0,5)。(2)stop:計數到stop結束,但不包括stop。例如,range(0,5)是[0,1,2,3,4]。(3)step:步長,默認為1。例如,range(0,5)等價于range(0,5,1)。for語句3.22.range()函數【例3-5】

雞兔同籠。大約在1500年前,《孫子算經》中記載:“今有雉兔同籠,上有三十五頭,下有九十四足,問雉兔各幾何?”編程計算雞和兔的數量并輸出。【問題分析】根據題意設雞和兔的數量分別為cock和rabbit,如果籠中全部是雞,雞的最大數量為35,所以cock在0~35取值,且rabbit=35?cock。確定了雞的范圍后進行窮舉并判斷,由于雞有兩只腳,兔有4只腳,所以判斷條件為雞和兔的腳的總數量為94。【參考代碼】forcockinrange(0,35+1): #循環范圍為0~35,cock表示雞的數量rabbit=35-cock #計算兔的數量ifcock*2+rabbit*4==94: #如果雞和兔的腳的總數為94print('雞有',cock,'只') #輸出雞的數量print('兔有',rabbit,'只') #輸出兔的數量for語句3.22.range()函數【運行結果】

程序運行結果如圖3-10所示。圖3-10例3-5程序運行結果嵌套的循環語句3.3一個循環語句的循環體內包含另一個完整的循環結構,稱為循環的嵌套。嵌套在循環體內的循環稱為內循環,嵌套有內循環的循環稱為外循環。內循環中還可以嵌套循環,這就是多重循環。while語句和for語句可以互相嵌套,自由組合。外層循環體中可以包含一個或多個內層循環結構,但要注意的是,各循環必須完整包含,相互之間不允許有交叉現象。嵌套的循環語句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語句的循環嵌套來實現,外循環控制行,內循環控制列。嵌套的循環語句3.3【參考代碼】forxinrange(1,10): #循環變量x從1到9foryinrange(1,x+1): #循環變量y從1到xprint(y,'*',x,'=',x*y,'',end='') #輸出乘法表達式

print('') #輸出空字符串,換行【運行結果】

程序運行結果如圖3-11所示。圖3-11例3-6程序運行結果break和continue語句3.4【例3-7】

身份驗證。循環判斷用戶輸入的賬號和密碼是否正確,如果正確則退出。1.

break語句【問題分析】

首先設定用戶的正確賬號和密碼;然后使用while循環,在循環中,輸入賬號和密碼,如果都正確則輸出登錄成功并跳出循環,否則輸出賬號或密碼輸入有誤,繼續循環。break和continue語句3.41.

break語句【參考代碼】name='python' #創建變量name表示正確賬號password='12345678' #創建變量password表示正確密碼whileTrue: #循環name_input=input('請輸入賬號:') #輸入賬號password_input=input('請輸入密碼:') #輸入密碼ifname!=name_input: #如果賬號不正確print('輸入的賬號有誤!') #輸出賬號有誤elifpassword!=password_input: #如果密碼不正確print('輸入的密碼有誤!') #輸出密碼有誤else: #如果賬號和密碼都正確print('登錄成功!') #輸出登錄成功break #跳出循環break和continue語句3.41.

break語句【運行結果】

程序運行結果如圖3-12所示。圖3-12例3-7程序運行結果break和continue語句3.4【例3-8】

學生休息詢問。班級組織徒步,全程5公里,每1公里詢問學生是否需要休息,如果需要則休息10分鐘,否則繼續徒步。2.

continue語句【問題分析】

使用for循環語句,并使用range(1,6)生成循環變量。在循環中輸出已徒步的公里數,然后輸入“y”或“n”回答是否需要休息,如果輸入為“n”則使用continue語句結束本次循環,不輸出后面的休息10分鐘。結束循環后,輸出到達終點。【參考代碼】foriinrange(1,6): #循環變量i從1到5print('已徒步',i,'公里') #輸出已徒步的公里數ifi!=5:answer=input('是否需要休息?(y/n):') #輸入回復ifanswer=='n': #如果回復為“n”continue #結束本次循環print('休息10分鐘') #輸出休息10分鐘print('到達終點') #輸出到達終點break和continue語句3.4【運行結果】

程序運行結果如圖3-13所示。2.

continue語句圖3-13例3-8程序運行結果【程序說明】

若把程序中的continue語句換成break語句,則輸入第一個“n”后將會終止程序。感謝觀看Python少兒編程第四章形形色色的數據容器目錄1.1通用系列1.2百變字符串1.3會魔法的列表1.4被束縛了的元組1.5有身份的字典1.6獨一無二的集合PART01通用序列索引1.1序列中的所有元素都可以通過索引(下標)來獲取,從左往右,第一個元素的索引為0,第二個為1,依此類推到最后一位。索引還可以取負值,從右往左,最后一個元素的索引為?1,倒數第二個為?2,依此類推到左側第一位。例如,創建字符串“str1='Python'”,其索引如表4-1所示。表4-1字符串str1的索引由表4-1可知,str1[0]和str1[?6]的值都是字符“P”。還可使用序列字面值直接使用索引,如'Python'[0]的值也是字符“P”。分片1.2分片與索引類似,都可以獲取序列中的元素,區別是索引只能獲取單個元素,而分片可以獲取一定范圍內的元素。分片通過冒號隔開的兩個索引來實現,其語法格式如下。slice[start:end:step]其中,slice表示序列;start表示起始索引,缺省時分片從序列中的第一個元素開始;end表示結束索引(不含),缺省時分片到序列的最后一個元素結束;step表示步長,缺省時為1,不能為0。例如,創建字符串“str2='abcdefg'”,使用分片獲取字符串中元素的幾種情況如表4-2所示。分片1.2表4-2分片獲取字符串str2中元素分片1.2Python中步長不能設置為0,但可以是負數。當步長為負數時,起始索引必須大于結束索引,即分片從右往左提取元素。例如:str3=str2[7:0:-1] #str3為'gfedcb'str3=str2[-1:-8:-1] #str3為'gfedcba'str3=str2[::-1] #str3為'gfedcba'相加1.3使用加法運算符可對序列進行連接操作。例如:str4='Hello,'+'World' #字符串連接,str4為'Hello,World'list1=[1,2,3]+[4,5,6] #列表連接,list1為[1,2,3,4,5,6]相乘1.4使用數字n乘以一個序列會生成新的序列,在新的序列中,原來的序列將重復n次。例如:str5='hello'*3 #str5為'hellohellohello'長度、最小值和最大值1.5序列常用的內置函數有len()、min()和max(),其參數都為序列名。其中,len()函數返回序列中元素的個數(即序列長度),min()函數和max()函數則分別返回序列中最小和最大的元素。【例4-1】

輸入一個字符串,輸出字符串中的最大字符和最小字符,并將字符串輸出為如下格式(輸出的“?”的個數會隨著字符串的長度而變化),如圖4-1所示。圖4-1輸出的文字格式【問題分析】本例題中,輸出連續相同的字符“?”,可使用序列的乘法運算實現,它的個數等于輸入字符串的長度,可使用len()函數獲取。然后使用max()和min()函數獲取字符串中的最大字符和最小字符并輸出。長度、最小值和最大值1.5【參考代碼】strs=input('請輸入一個字符串:') #輸入字符串并賦給strsstr_len=len(strs) #獲取strs長度并賦給str_lenstr_max=max(strs) #獲取strs中最大字符并賦給str_maxstr_min=min(strs) #獲取strs中最小字符并賦給str_minprint('該字符串中最大字符為:',str_max) #輸出最大字符print('該字符串中最小字符為:',str_min) #輸出最小字符print('+'+'-'*str_len+'+') #輸出“+”、str_len個“-”和“+”print('|'+strs+'|') #輸出“|”、字符串和“|”print('+'+'-'*str_len+'+') #輸出“+”、str_len個“-”和“+”長度、最小值和最大值1.5【運行結果】

程序運行結果如圖4-2所示。圖4-2例4-1程序運行結果查找和計數1.6序列提供index()方法用于返回指定元素在序列中首次出現的位置,如果該元素不在序列中則拋出異常,其語法格式如下。sequence.index(obj)如果需要知道指定元素在序列中出現的次數,可以使用count()方法進行計數并返回,其語法格式如下。其中,sequence表示序列,obj表示要查找的對象。sequence.count(obj)【例4-2】

查找輸入的人物是否在《三國演義》片段中,如果在,則統計出現的次數。【問題分析】首先使用“in”運算符判斷輸入的人物是否在《三國演義》片段中,如果在,則使用index()方法獲取首次出現的位置,然后使用count()方法統計出現的次數。查找和計數1.6【參考代碼】#創建字符串excerpts并賦值excerpts='''次日,于桃園中,備下烏牛白馬祭禮等項,三人焚香再拜而說誓曰:

“念劉備、關羽、張飛,雖然異姓,既結為兄弟,則同心協力,救困扶危;

上報國家,下安黎庶。不求同年同月同日生,只愿同年同月同日死。

皇天后土,實鑒此心,背義忘恩,天人共戮!”誓畢,拜玄德為兄,

關羽次之,張飛為弟。祭罷天地,復宰牛設酒,聚鄉中勇士,

得三百余人,就桃園中痛飲一醉。來日收拾軍器,但恨無馬匹可乘。

正思慮間,人報有兩個客人,引一伙伴當,趕一群馬,投莊上來。

玄德曰:“此天佑我也!”三人出莊迎接。原來二客乃中山大商:

一名張世平,一名蘇雙,每年往北販馬,近因寇發而回。

玄德請二人到莊,置酒管待,訴說欲討賊安民之意。二客大喜,

愿將良馬五十匹相送;又贈金銀五百兩,鑌鐵一千斤,以資器用。'''查找和計數1.6【參考代碼】(續)name=input('請輸入人物姓名:') #輸入人物姓名并賦給nameifnameinexcerpts: #如果name在此片段中#使用index()方法獲取name首次出現的位置indexindex=excerpts.index(name)print(name,'首次出現的位置索引為:',index) #輸出index#使用count()方法獲取name出現的次數并輸出print(name,'在此片段中出現',excerpts.count(name),'次')else:print(name,'沒有出現在此片段中') #輸出name不在此片段中查找和計數1.6【運行結果】

程序運行結果如圖4-3所示。圖4-3例4-2程序運行結果PART02百變字符串字符串格式化2.1Python提供了“%”符號進行字符串格式化,其語法格式如下。1.

“%”符號其中,[]中的項為可選項,也可以表示為如下形式。'%[標志][0][輸出最小寬度][.精度]格式字符'%變量'%[±][0][m][.n]格式字符'%變量(1)標志:標志字符為“+”或“?”,指定輸出數據的對齊方式。(2)輸出最小寬度:用十進制整數m表示輸出的最小位數。(3)精度:精度格式符以“.”開頭,后跟十進制整數n。(4)格式字符:用來表示輸出數據的類型,各種格式字符及其功能說明如表4-3所示。字符串格式化2.11.

“%”符號表4-3格式字符字符串格式化2.11.

“%”符號【例4-3】

使用“%”符號格式化。【參考代碼】a=15 #定義變量a并賦值b=12345678.1234567 #定義變量b并賦值s='IlovePython!' #定義字符串s并賦值print('a=%05d'%a) #使用m控制輸出位數,空位補0print('b=%8.3f'%b) #使用m.n控制輸出的長度和小數點位數print('%17s'%s) #使用m控制輸出字符串長度print('%-17.6s'%s) #使用-m.n左對齊、控制字符串長度和字符位數字符串格式化2.11.

“%”符號【運行結果】程序運行結果如圖4-4所示。圖4-4例4-3程序運行結果【程序說明】

輸出變量a時,“%05d”表示輸出寬度為5并用“0”來補空位。輸出變量b時,“%8.3f”表示輸出寬度為8,精度為3,由于實際長度超過8位,故應按實際位數輸出,小數位數超過3位部分被截去。輸出字符串s時,“%17s”表示輸出字符串寬度為17,如果字符串本身長度不足17,則用空格左補齊,可以看到“IlovePython!”前存在3個空格。“%?17.6s”表示輸出寬度雖為17,但這里指定了精度“.6”,也就是說指定了輸出字符的個數為6,并且用“?”指定了左對齊,所以輸出6個字符“Ilove”,后面還有11個空格。字符串格式化2.1使用format()方法也可以格式化字符串,其基本語法格式如下。2.format()方法模板字符串是由一系列槽(用大括號表示)組成,用于控制字符串中嵌入值出現的位置,其基本思想是,將format()方法中逗號分隔的參數按照序號替換到模板字符串的槽中(序號從0開始)。例如:模板字符串.format(逗號分隔的參數)#s為'你好,張三,你這個月的工資是8500元!'s='你好,{1},你這個月的工資是{0}元!'.format(8500,'張三')如果大括號中沒有序號,則按照出現順序替換,例如:#s為'你好,8500,你這個月的工資是張三元!'s='你好,{},你這個月的工資是{}元!'.format(8500,'張三')字符串格式化2.1format()方法中模板字符串的槽除了包括參數序號外,還可以包括格式控制信息,此時槽的內部格式如下。2.format()方法{參數序號:格式控制標記}其中格式控制標記用于控制參數顯示時的格式,它包括“填充”“對齊”“寬度”“,”“.精度”“格式字符”6個可選字段,這些字段可以組合使用。具體的格式控制標記及其說明如表4-4所示。字符串格式化2.12.format()方法表4-4格式控制標記字符串格式化2.12.format()方法【例4-4】

模擬輸出簡單的非刷新文本進度條。要求按照任務執行百分比將整個任務劃分為100個單位,每執行10%輸出一次進度條,每行輸出包含進度百分比、代表已完成部分(**)和未完成部分(..)的兩種字符,以及一個跟隨完成進度前進的小箭頭,風格如下:%10[**->..................]【問題分析】本例題的關鍵是輸出字符的格式,可使用format()方法進行格式化。采用for循環和print()函數構成程序的主體部分,使用格式字符“%”輸出百分比,為了使輸出整齊,可使用{:^4.0%}格式化百分比部分。由于程序執行速度太快,不便于觀察,可使用time.sleep(t)函數將當前程序暫停t秒,其中,time是Python標準時間庫。字符串格式化2.12.format()方法【參考代碼】importtime #導入time模塊scale=10 #變量scale表示輸出進度條的精度print('-----------執行開始-----------') #輸出執行開始提示foriinrange(scale+1): #循環變量從0到scaledone='**'*i #用“*”表示已完成的部分undone='..'*(scale-i) #用“.”表示未完成的部分percent=i/scale #計算完成百分比#格式化輸出

print('{:>4.0%}[{}->{

溫馨提示

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

評論

0/150

提交評論