




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Python編程案例教程全套可編輯PPT課件項目一走進Python編程世界163走進Python編程世界項目導讀Python是一門簡單易學、跨平臺、可擴展的高級編程語言,它在Web開發(fā)、網絡爬蟲、人工智能、數據分析、自動化運維、游戲開發(fā)、辦公自動化等多個領域應用廣泛。從TIOBE編程語言排行榜可以看出,Python的排名逐年上升,與Java、C、C++一起成為了全球4大流行語言。因此,學習Python是非常有必要的。本項目將帶領大家一起走進Python編程世界。
項目一走進Python編程世界學習目標了解Python的產生與發(fā)展、特點、應用領域。掌握在Windows中搭建Python開發(fā)環(huán)境的方法。熟悉Python程序的開發(fā)流程和編碼規(guī)范。掌握使用PyCharm編寫和運行Python程序的方法。能搭建Python開發(fā)環(huán)境,并利用該環(huán)境編寫和運行簡單的Python程序。任務一走進Python編程世界思政目標通過對計算機技術的了解,增強探索意識。
養(yǎng)成事前調研、做好準備工作的習慣。貫徹互助共享的精神。任務一Content項目一搭建Python開發(fā)環(huán)境開發(fā)一個Python程序搭建Python開發(fā)環(huán)境任
務
一任務描述
在學習和使用Python前,需要對Python有一個基本的認識,了解Python的產生與發(fā)展、特點、應用領域等。而開發(fā)Python程序,首先須選擇開發(fā)工具,搭建好Python開發(fā)環(huán)境。本任務將帶領大家搭建Python開發(fā)環(huán)境。任務一一、Python的產生與發(fā)展1989年圣誕節(jié)期間,荷蘭人GuidovanRossum在阿姆斯特丹開發(fā)了一種新的編程語言Python,作為ABC語言的一種繼承。之所以用Python(通稱“大蟒蛇”)作為該編程語言的名字,是因為Guido是MontyPython喜劇團的愛好者。ABC語言是由Guido參與設計的一種教學語言,但ABC語言并沒有成功,究其原因,Guido認為是其非開放性造成的。于是,Guido決定在Python中避免這一錯誤。同時,他還想實現在ABC中閃現過但未曾實現的功能。任務一就這樣,Python在Guido手中誕生了??梢哉f,Python是從ABC發(fā)展起來的,主要受到了Modula-3(另一種語言)的影響,并且結合了Unixshell和C的習慣。Python的發(fā)展主要經歷了下面幾個階段。1991年,第一個Python編譯器誕生。2000年10月,Python2.0版本發(fā)布。2008年12月,Python3.0版本發(fā)布。2011年1月,Python被TIOBE編程語言排行榜評為2010年度語言。2020年1月,Python2.7正式終止支持,全面進入Python3時代。一、Python的產生與發(fā)展任務一二、Python的特點(1)簡單易學。Python是一種代表簡單主義思想的語言。它采用強制縮進的方式使得代碼具有較好的可讀性。用Python語言編寫程序時無須考慮底層的細節(jié),這使得編程人員能夠專注于問題本身,從而找到更好的解決方法。(2)免費開源。Python是FLOSS(免費自由、開放源碼軟件)之一。使用者可以自由地發(fā)布這個軟件的拷貝,閱讀它的源代碼,對它做改動,或者把它的一部分用于新的軟件。(3)類庫豐富。Python標準庫非常龐大,覆蓋了網絡、文件、GUI、數據庫、文本等各個方面。使用Python開發(fā)程序,許多功能不必從零編寫,直接使用現成的庫即可。除此之外,Python還有許多第三方庫,可供用戶直接使用。任務一(4)可擴展。如果需要一段運行速度很快的關鍵代碼或不想公開某些算法,就可以將部分程序用C或C++語言編寫,然后在Python程序中調用。(5)解釋性。在計算機內部,Python解釋器把源代碼轉換為字節(jié)碼文件,然后再把它翻譯成計算機使用的機器語言并運行。這使得Python的使用更加簡單,也使得Python程序更加易于移植。(6)可移植性。由于Python的開源性和解釋性,它可以移植到多個平臺上,如Linux、Windows、MacOS、Android等。(7)可嵌入性。可以把Python程序嵌入到C/C++程序中,從而為應用程序提供腳本功能。二、Python的特點任務一開源是為了降低知識獲得的成本,是一種共享共治精神。但開源軟件同樣也有版權,同樣受到法律保護,只不過由于自由開源運動的本質是發(fā)揚自由開放精神,故它把重點放在了擴大用戶的自由和權益方面,而不是對作者特權的保護方面。
對企業(yè)和軟件開發(fā)者來說,共享和開源有助于自己更嫻熟地掌握相關知識、提高自己的項目質量,同時也是推銷自己的最好方式。對使用者來說,共享和開源提供了一個學習和參與項目的途徑??萍计栈萑蝿找蝗ython的應用領域Python的應用領域非常廣泛,它的企業(yè)需求也在逐漸上升,從國內的百度、阿里、騰訊,到國外的Google、YouTube、Facebook等,各公司都在大規(guī)模使用Python完成各種開發(fā)任務。1.Web開發(fā)由于Python是一種解釋型的腳本語言,且有多種Web開發(fā)框架和成熟的模板系統(tǒng),其開發(fā)效率高,運行速度快,所以非常適合Web開發(fā)。Python常用的Web開發(fā)框架有Django、Tornado、Flask和Twisted等。由于后臺服務器的通用性,除了狹義的網站之外,很多App和游戲的服務器端也同樣用Python實現。任務一三、Python的應用領域2.網絡爬蟲網絡爬蟲是Python比較常用的一個場景,很多的搜索引擎都有自己的爬蟲程序,如Google爬蟲Googlebot、百度爬蟲Baiduspider、必應爬蟲Bingbot等。Python提供了很多服務于編寫網絡爬蟲的庫,如urllib、requests、Selenium和BeautifulSoup等,還提供了一個網絡爬蟲框架Scrapy。3.人工智能Python提供了多種庫用于人工智能。例如,用于數據分析的NumPy、Pandas和SciPy,用于機器學習的Sklearn,用于神經網絡的PyBrain,用于數據可視化的Matplotlib等。任務一三、Python的應用領域4.數據分析Python在數據分析處理方面有很完備的生態(tài)環(huán)境。大數據分析中涉及的分布式計算、數據可視化、數據庫操作等,Python都提供了成熟的模塊可供選擇。例如,Hadoop-MapReduce和Spark等分布式計算框架,都可以直接使用Python完成計算邏輯。5.自動化運維Python擁有強大的開發(fā)能力和完整工具鏈,很適合用于自動化運維。系統(tǒng)運維管理是一個工程,Python有非常豐富的服務器管理工具,包括用于配置管理的SaltStack、用于批量執(zhí)行的Fabric、用于監(jiān)控的Zenoss和Nagios、用于虛擬化管理的Python-Libvirt、用于進程管理的Supervisor、用于云計算的OpenStack等。任務一三、Python的應用領域6.游戲開發(fā)Python提供了很好的3D游戲引擎和開發(fā)庫用于游戲開發(fā),如Panda3D、Pygame等。此外,Python還可以直接調用OpenGL實現3D繪制,這是高性能游戲引擎的技術基礎。7.辦公自動化Python提供了多種庫用于辦公自動化,使工作化繁為簡。例如,操作Excel的xlwings、openpyxl,操作Word的python-docx、comtypes、pywin32,操作PowerPoint的pywin32、python-pptx,處理郵件的smtplib、email,批量處理文件的os、shutil等。任務一(1)IDLE是Python自帶的IDE,具備基本的IDE的功能。安裝Python的同時會自動安裝IDLE,它包含交互式和文本式兩種模式。四、Python的開發(fā)工具Python開發(fā)工具根據其用途不同可分為兩種,一種是Python代碼編輯器,一種是Python集成開發(fā)環(huán)境(integrateddevelopmentenvironment,IDE),使用IDE可以極大地提高Python開發(fā)人員的編程效率。下面介紹幾款Python開發(fā)常用的IDE。任務一(2)PyCharm是一款非常優(yōu)秀的PythonIDE,它帶有一整套可以幫助用戶在使用Python開發(fā)時提高效率的工具,如調試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制等。四、Python的開發(fā)工具任務一(3)Spyder是一個強大的交互式PythonIDE,它提供高級的代碼編輯、交互測試、調試等功能,支持Windows、Linux和MacOS等操作系統(tǒng)。其最大的優(yōu)點是模仿Matlab的“工作空間”功能,可以很方便地觀察和修改數組的值。
四、Python的開發(fā)工具任務一四、Python的開發(fā)工具
其中,PyCharm配置簡單、功能強大、使用方便,對初學者來說十分友好。因此,本書選擇PyCharm作為開發(fā)Python程序的工具。
集成開發(fā)環(huán)境是用于提供程序開發(fā)環(huán)境的應用程序,一般包括代碼編輯器、編譯器、調試器和圖形用戶界面等工具,集成了代碼編寫功能、分析功能、編譯功能、調試功能等。任務一任務實施一、安裝Python二、安裝PyCharm開發(fā)第一個Python程序任
務
二任務二任務描述學習Python須理解Python程序的開發(fā)流程和編碼規(guī)范。本任務將帶領大家使用PyCharm開發(fā)第一個Python程序。任務二知識鏈接一、Python程序的開發(fā)流程Python程序的開發(fā)從確定任務到得到結果一般要經歷以下幾個步驟,如圖(1)需求分析:對要解決的問題進行詳細的分析,弄清楚問題的要求,包括需要輸入什么數據,要得到什么結果,最后應輸出什么等。(2)算法設計:對要解決的問題設計出解決問題的方法和具體步驟。(3)編寫程序:按照Python語法規(guī)定,利用文本編輯器或集成開發(fā)環(huán)境編寫Python程序,生成Python源文件(*.py)。(4)運行程序:Python解釋器解釋并執(zhí)行源文件,得到運行結果。(5)編寫程序文檔:如同正式的產品都有產品說明書一樣,正式提供給用戶使用的程序,也必須向用戶提供程序說明書。任務二
運行程序后能得到運行結果并不能說明程序是正確的,還需要對運行結果進行分析,分析其是否合理。而且不能只看到某一次結果正確,就認為程序沒有問題,需要多設計幾組數據,檢查程序對不同數據的運行情況。任務二二、Python的編碼規(guī)范任何一種編程語言都有一些約定俗成的編碼規(guī)范,Python也不例外。下面介紹一些常見的Python編碼規(guī)范。1.注釋一個好的、有使用價值的源程序都應加上必要的注釋,以提高程序的可讀性。Python允許有多種注釋方式,常用的包括單行注釋和多行注釋兩種。(1)以“#”開始,以換行符結束的單行注釋。這種注釋可單獨占一行,也可出現在一行中其他內容的右側。例如:print('你真是太厲害了,一次就猜中了!') #輸出猜對了任務二"""猜數字游戲編寫者:凌藍編寫時間:20210805"""'''如果要修改此部分代碼,請?zhí)砑尤缦伦⑨屝薷恼撸盒薷臅r間:'''(2)以三重引號(單引號或雙引號)開始,同樣以三重引號結束的多行注釋。例如:任務二2.縮進Python最獨特的一點就是依靠代碼塊的縮進來體現代碼之間的邏輯關系。例如,對于選擇結構來說,行尾的冒號及下一行的縮進表示一個代碼塊的開始,而縮進結束則表示一個代碼塊的結束。在Python中最好使用4個空格進行懸掛式縮進,且同一級別的代碼塊的縮進量必須相同。例如:a=1 #a賦值為1b=2 #b賦值為2ifa>b: #如果a大于bprint(a) #輸出a的值else: #如果a小于等于bprint(b) #輸出b的值
在Python中使用縮進時不提倡使用“Tab”鍵,更不要“Tab”鍵和空格混用。任務二
PythoPython建議每行代碼的長度不要超過120個字符。對于過長的代碼,建議進行換行。換行有以下兩種方式。(1)可以在行尾使用續(xù)行符“\”來表示下面緊接的一行仍屬于當前語句。例如:n建有以3.語句換行message='你真是太厲害了,一次就猜中了!'\'再猜一次,我不相信你還能猜到我在想什么。'等價于message='你真是太厲害了,一次就猜中了!再猜一次,我不相信你還能猜到我在想什么。'任務二(2)根據Python會將圓括號中的行隱式連接起來這個特點,可以使用圓括號包含多行內容。例如,上述語句又可用以下形式表示。message=('你真是太厲害了,一次就猜中了!''再猜一次,我不相信你還能猜到我在想什么。')需要注意的是,在[]、{}或()中的語句,無須再使用圓括號進行換行。例如:
stu=['Mary','Jone','Jack','Tom','Lily','Sary']任務二4.空格與空行
使用必要的空格與空行可增強代碼的可讀性。一般來說,運算符兩側、函數參數之間、逗號后面建議使用空格進行分隔。而不同功能的代碼塊之間、不同的函數定義及不同的類定義之間則建議增加一個空行以提高程序的可讀性。開發(fā)第一個Python程序任務二任務實施步驟1步驟一
啟動PyCharm,在打開的“歡迎訪問PyCharm”對話框中選擇“新建項目”選項。步驟二
顯示“新建項目”界面,在“位置”編輯框中設置項目保存的路徑并將項目命名為“項目一”;
在“使用此工具新建環(huán)境”下拉列表中選擇默認的“Virtualenv”選項;在“基本解釋器”中選擇Python安裝目錄下的python.exe;取消勾選“創(chuàng)建main.py歡迎腳本”復選框,然后單擊“創(chuàng)建”按鈕,如圖1-16所示。步驟三
打開PyCharm工作窗口,在左側顯示創(chuàng)建的“項目一”項目,同時打開“每日小技巧”對話框,單擊“關閉”按鈕關閉該對話框。步驟四
右擊項目名“項目一”,在彈出的快捷菜單中選擇“新建”→“Python文件”選項,新建一個Python文件。任務二任務實施步驟1步驟五
打開“新建Python文件”對話框,將文件命名為“猜數字”,然后雙擊“Python文件”選項,如圖1-19所示。步驟六
進入“猜數字.py”代碼編輯界面,在代碼編輯區(qū)輸入代碼。步驟七
在菜單欄中選擇“運行”→“運行”選項,打開“運行”對話框,然后選擇“猜數字”選項,運行程序,在窗口下方即可顯示運行結果,Virtualenv是一個虛擬環(huán)境管理器,它可以創(chuàng)建多個虛擬環(huán)境,為不同項目提供獨立的Python運行環(huán)境,以解決不同項目間多版本的沖突問題。在不繼承全局安裝包的情況下,在Virtualenv環(huán)境中安裝所需包時,會自動安裝到該虛擬環(huán)境下,不會對其他項目環(huán)境有任何影響。步驟1本項目主要介紹了Python的產生與發(fā)展、特點、應用領域、開發(fā)工具、開發(fā)流程和編碼規(guī)范。通過本項目的學習,讀者應重點掌握以下內容。(1)Python具有簡單易學、免費開源、類庫豐富、可擴展、解釋性、可移植性和可嵌入性等特點。(2)Python程序的開發(fā)流程包括需求分析、算法設計、編寫程序、運行程序和編寫程序文檔。(3)使用PyCharm開發(fā)Python程序的一般過程為:新建項目→新建Python文件→編寫代碼→運行程序。(4)Python常用的注釋方式包括單行注釋和多行注釋兩種。單行注釋以“#”開始,以換行符結束,可以單獨占一行,也可以出現在一行中其他內容的右側;多行注釋以三重引號(單引號或雙引號)開始,同樣以三重引號結束。(5)Python依靠代碼塊的縮進來體現代碼之間的邏輯關系,最好使用4個空格進行懸掛式縮進,并且同一級別的代碼塊的縮進量必須相同。項目小結
項目一項目二Python編程基礎知識項目二
俗話說“千里之行,始于足下”,在進入Python編程世界之初,我們需要學習Python語言的基礎知識。只有熟練掌握了Python語言的基礎知識,才能在Python編程世界中走得更遠。項目導讀學習目標掌握Python變量的命名規(guī)則和賦值方法。掌握Python中常見的數據類型。熟悉Python中各種運算符的使用方法。掌握Python中輸入和輸出的方法。能通過鍵盤與計算機進行交互。思政目標增強遵守規(guī)則的意識,養(yǎng)成按規(guī)矩行事的習慣。
加強基礎知識的學習,從而實現從量變到質變的轉化,為個人的長遠發(fā)展打下堅實的基礎。了解中國古代人民的智慧,增強民族自豪感。項目二Content項目二輸出個人簡介實現數據加密和解密開發(fā)“你問我答”游戲輸出個人簡介任
務
一任務一
個人簡介一般包括姓名、性別、年齡、身高和愛好等信息,不同類型的信息須使用不同數據類型的變量來保存。本任務將帶領大家編寫Python程序,輸出個人簡介。輸出個人簡介任務描述知識鏈接一、變量
在編寫程序時,可以直接使用數據,也可以將數據保存到變量中,方便以后使用。所以說,變量可以看成是一個小箱子,專門用來“盛裝”程序中的數據。每個變量都擁有一個名字,通過變量名就可以找到變量中的數據。Python中變量的命名需要遵循一定的規(guī)則,即變量名只能包括字母、數字和下劃線,且第一個字符必須是字母或下劃線,不能是數字。例如,name、_name1、name_2都是合法的變量名,但1name、2_name、&123、%name、M.Jack、?name2都是不合法的變量名。在實際開發(fā)過程中,為提高代碼的可讀性,會經常使用以下3種命名方式。(1)小駝峰式命名。第一個單詞首字母小寫,之后的單詞首字母大寫,如myName、myFriendName等。(2)大駝峰式命名。每個單詞首字母都大寫,如MyName、MyFriendName等。(3)下劃線連接命名。用下劃線“_”連接每個單詞,如my_name、my_friend_name等。1.變量的命名規(guī)則(1)Python的變量名區(qū)分英文字母大小寫,如score和Score是兩個不同的變量。
(2)Python的關鍵字不能作為變量名使用。任務一
Python本身定義的一些具有特定功能的標識符稱為關鍵字??稍赑yCharm中編寫如下代碼查看關鍵字,執(zhí)行結果如圖所示。
importkeyword #導入keyword模塊
print(keyword.kwlist)
#查看所有關鍵字任務一
變量賦值時,Python會自動聲明變量的數據類型。賦值運算符“=”用于為變量賦值,其左側是變量名,而右側是變量指向的值。例如:a=1b=1.2c='小紅'
Python還允許同時為多個變量賦相同的值。例如:a=b=c=1作用是同時將1賦值給變量a、b和c,相當于:任務一2.變量的賦值a=1b=1c=1也可以同時為多個變量分別賦不同的值。例如:任務一a,b,c=1,2,'hello'作用是將1、2和“hello”分別賦值給變量a、b和c。相當于:a=1b=2c='hello'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)任務一【例】
輸出小藍在不同的年齡喜歡的動畫片?!緟⒖即a】任務一【運行結果】小藍3歲時喜歡的動畫片是小豬佩奇小藍5歲時喜歡的動畫片是機器貓小藍10歲時喜歡的動畫片是海賊王變量使用前必須先賦值,因為變量指向的內存對象只有在賦值后才會被創(chuàng)建。
變量的數據類型取決于它指向的數據的類型。Python的數據類型包括數字、布爾類型、字符串、列表、元組、字典和集合等。此處簡單介紹數字、布爾類型和字符串,其余類型將在項目四中介紹。任務一二、數據類型數據類型1.數字數字數據類型用于存儲數值。Python支持不同的數值類型,包括int、float和complex。(1)int(整型)數值通常稱為整數。Python可以處理任意大小的整數,當然包括負整數。整數在程序中的表示方法和數學上的寫法一致,如18、?175。
在Python中,整數也可以用八進制或十六進制表示。Python中八進制數以數字0開頭,只能用數字0~7組合表達。例如,0154對應的十進制數為1×82+5×81+4×80=108。十六進制數以0x開頭,只能用數字0~9及字母A~F(或a~f)組合表達。其中,A代表數值10,B代表數值11,依此類推,F代表數值15。例如,0x15F對應的十進制數為1×162+5×161+15×160=351。任務一(2)float(浮點型)數值也稱為浮點數,由整數和小數組成。Python中浮點數只能用十進制形式表示,但其表示方法有以下兩種。①小數表示法,由整數部分和小數部分組成,如0.0013、?1482.5。②科學表示法,通常用來表示一些比較大或比較小的數值,表示方法是在小數表示法后加“E”或“e”及指數部分,其中,“E”或“e”表示十次方,指數部分為整數,可正可負。但要注意,“E”或“e”前面必須有數字。例如,0.0013可表示為1.3e?3,?1482.5可表示為?1.4825e3。
(3)complex(復數型)數值由實數部分和虛數部分組成,一般形式為a+bj,其中,a是復數的實數部分,b是復數的虛數部分,這里的a和b是整數或浮點數,如2.14j、2+12.1j。任務一2.布爾類型
布爾(bool)類型是一種比較特殊的類型,它只有“True”(真)和“False”(假)兩種值。在Python中,可以直接用“True”和“False”表示布爾值(注意首字母大寫),也可以通過比較和判斷得到布爾值。例如:10<30 #判斷10是否小于30,結果為True10>20 #判斷10是否大于20,結果為False
字符串(str)是以單引號或雙引號括起來的任意文本,如'abc'、"xyz"等。如果單引號本身也是字符串中的一個字符,那就可以用雙引號括起來;反之,如果雙引號本身也是字符串中的一個字符,那就可以用單引號括起來。例如:任務一3.字符串"I'mOK!"'Itoldmyfriend,"Pythonismyfavoritelanguage!"'如果字符串內部既包含單引號又包含雙引號,則可以用轉義字符“\”來標識,例如:'I\'m\"OK\"!'表示的字符串內容是:I'm"OK"!轉義字符以“\”開頭,后跟一個字符,通常用來表示一些控制代碼和功能定義。Python中常用的轉義字符如表2-1所示。任務一轉義字符說明轉義字符說明\n回車換行\(zhòng)'單引號符(')\b退格\"雙引號符(")\r回車\a鳴鈴\t水平制表\f換頁符\v垂直制表\\反斜線符(\)Python還允許在引號前加r來表示引號內部的字符串默認不轉義。任務實施
完成本任務,須首先定義字符串類型變量name(姓名)、sex(性別)和hobby(愛好),整型變量age(年齡),浮點型變量height(身高),并分別賦初值;然后使用print()函數輸出個人簡介。實現數據加密和解密任
務
二
數據加密是通過加密算法和加密密鑰將明文轉變?yōu)槊芪?,而解密則是通過解密算法和解密密鑰將密文恢復為明文。本任務將帶領大家編寫Python程序,通過對數據進行運算實現簡單的加密和解密。任務二實現數據加密和解密任務描述知識鏈接數據的運算通過運算符來完成,運算符用于連接表達式中各種類型的數據、變量等操作數。Python支持多種類型的運算符,包括算術運算符、賦值運算符、關系運算符、邏輯運算符、成員運算符、身份運算符和位運算符等。任務二一、算術運算符Python提供了7個基本的算術運算符,其運算方式與數學中基本類似。具體符號如表2-2所示。表2-2算術運算符運算符名稱示例說明+加法運算a+b返回a和b的和?減法運算a?b返回a和b的差*乘法運算a*b返回a和b的積/除法運算a/b返回a和b的商%取模運算a%b返回a除以b的余數**冪(乘方運算)a**b返回a的b次冪//整除a//b返回a和b的商的整數部分(向下取整)。如果其中一個操作數為負數,則結果為負數。例如,3//4=0,4//3=1,?3//4=?1,4//?3=?2
賦值運算符用來給變量賦值,Python提供的賦值運算符可分為簡單賦值和復合賦值兩種。簡單賦值運算符“=”已經在任務一中介紹了,下面著重介紹復合賦值運算符。
在Python中,經常會有利用變量的原有值計算出新值并重新賦值給這個變量的情況。例如,下面表達式就是把變量a的值加上1后再賦值給a。a=a+1復合賦值運算符允許縮短這個表達式,使用“+=”運算符,可以將上面的表達式簡寫為:a+=1 #相當于a=a+1
其中,復合賦值運算符中較為常用的是復合算術賦值運算符,包括+=、?=、*=、/=、%=、**=和//=共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)
關系運算符又稱比較運算符,用于比較運算符兩側數據的值,比較的結果是一個布爾值,即True或False。Python提供的關系運算符如表2-3所示。任務二三、關系運算符表2-3關系運算符運算符名稱示例說明==等于a==b判斷a和b的值是否相等,如果是則結果為True,否則為False!=不等于a!=b判斷a和b的值是否不相等,如果不相等則結果為True,否則為False>大于a>b判斷a的值是否大于b的值,如果是則結果為True,否則為False<小于a<b判斷a的值是否小于b的值,如果是則結果為True,否則為False>=大于等于a>=b判斷a的值是否大于等于b的值,如果是則結果為True,否則為False<=小于等于a<=b判斷a的值是否小于等于b的值,如果是則結果為True,否則為False使用關系運算符時須注意以下幾點。(1)等于、不等于、大于等于、小于等于運算符(==、!=、>=、<=)的表示方法與數學中的表示方法不同(=、≠、≥、≤)。(2)關系運算符兩側的值可以是數值、字符串等數據類型,但應為同一類型。(3)字符串數據進行比較運算時,按照其內容的ASCII碼值進行比較。在比較兩個字符串時,先比較第一個字符,其中ASCII碼值較大的字符所在字符串較大,如果第一個字符相同,再比較第二個字符……。例如,'abce'>'abcdef'為True,是因為逐個比較前三個字符,其ASCII碼值相同,在比較第四個字符時,“e”的ASCII碼值大于“d”的ASCII碼值,因此,該表達式的值為True。(注意:不是比較字符串長短)任務二Python的邏輯運算符包括and(與)、or(或)、not(非)3種,如表2-4所示。與C/C++、Java等語言不同的是,Python中邏輯運算的返回值不一定是布爾值。任務二四、邏輯運算符表2-4邏輯運算符運算符名稱示例說明and與aandb如果a的值為False,無須計算b的值,返回a的值;否則返回b的值or或aorb如果a的值為True,無須計算b的值,返回a的值;否則返回b的值not非nota如果a的值為True,返回值為False;如果a的值為False,返回值為True邏輯、成員和身份運算符
【參考代碼】任務二【例2-2】
關系運算符和邏輯運算符示例。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)【程序說明】計算“a?5andb<3”表達式時,先計算“a?5”得到的值為0,即為False,因此無須計算“b<3”的值,表達式的值即為0。計算“a<6andb+3”表達式時,先計算“a<6”得到的值為True,因此,需計算表達式“b+3”的值,且整個表達式的值為“b+3”的值,即為9。任務二【運行結果】
程序運行結果如圖2-4所示。計算“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。任務二在Python中,當參與邏輯運算的數值為0時,則將它看作邏輯“假”,而將所有非0的數值都看作邏輯“真”。
成員運算符用于判斷一個元素是否在某個序列中,如字符串、列表、元組等。Python提供的成員運算符如表2-5所示。任務二五、成員運算符表2-5成員運算符運算符示例說明inainb如果a在b序列中,則返回True,否則返回Falsenotinanotinb如果a不在b序列中,則返回True,否則返回False【參考代碼】snack1='薯片' #定義零食變量snack1,賦值為“薯片”snack2='棒棒糖' #定義零食變量snack2,賦值為“棒棒糖”#定義購物清單列表snackListsnackList=['可樂','蘋果','薯片','奧利奧','雞腿']#判斷薯片是否在購物清單中print('薯片在購物清單中?',snack1insnackList)#判斷棒棒糖是否在購物清單中print('棒棒糖在購物清單中?',snack2insnackList)#判斷棒棒糖是否不在購物清單中print('棒棒糖不在購物清單中?',snack2notinsnackList)任務二【例2-3】
判斷指定零食是否在購物清單中。任務二【運行結果】
程序運行結果如圖2-5所示。
圖2-5例2-3程序運行結果
關系運算符中的“==”是比較兩個變量的值是否相等。身份運算符用來判斷兩個變量是否指向同一個內存對象。Python提供的身份運算符如表2-6所示。任務二六、身份運算符表2-6身份運算符運算符示例說明isaisb如果a和b引用的是同一個對象則返回True,否則返回Falseisnotaisnotb如果a和b引用的不是同一個對象則返回True,否則返回False任務二【例2-4】
判斷三個整型變量是否為同一個對象。【參考代碼】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))任務二【運行結果】
程序運行結果如圖2-6所示。
圖2-6例2-4程序運行結果【程序說明】
id()函數返回對象的唯一標識符,即對象的內存地址。任務二Python為了優(yōu)化速度,使用了小整數對象池,避免為整數頻繁申請和銷毀內存空間。Python中的小整數是指在[-5,256]區(qū)間的整數,這些整數對象是提前創(chuàng)建好的,不會被回收。在一個Python程序中,所有相同的小整數都是同一個對象。當數值不在小整數對象池內時,會自動創(chuàng)建新的對象。但是,此時會有一個大整數池,即處于同一個代碼塊(一個代碼塊就是一個.py文件)的相同的大整數是同一個對象。
同理,Python中相同的單個字符也是同一個對象,處于同一個代碼塊的相同的浮點數,以及具有相同元素的字符串和元組都是同一個對象。任務二
所謂位運算是指進行二進制位的運算。例如,將一個存儲單元中的各二進制位左移或右移一位。Python提供的位運算符包括按位與、按位或、按位異或、按位取反、左移和右移共6種,如表2-7所示。運算符名稱示例說明&按位與a&ba和b對應的兩個二進制位均為1時,結果才為1,否則為0|按位或a|ba和b對應的兩個二進制位有一個為1時,結果就為1,否則為0^按位異或a^ba和b對應的兩個二進制位不同時,結果為1,否則為0~按位取反~a先求a的補碼,然后將補碼的每個二進制位取反,最后再求補碼<<左移a<<ba的二進制位全部左移b位,移出位刪掉,移進的位補零>>右移a>>ba的二進制位全部右移b位,移出位刪掉,移進的位補零表2-7位運算符七、位運算符任務二
假設變量a=10,b=23,即二進制形式a=00001010,b=00010111。用變量a和b執(zhí)行表2-7中的位運算符,結果如圖2-7所示。(a)按位與a&b(b)按位或a|b(c)按位異或a^b
(d)按位取反~a(e)按位左移a<<2(f)按位右移a>>2圖2-7位運算符任務二Python中操作數按位取反的結果是?(a+1),其中a為操作數。例如,10按位取反為?11,?10按位取反為9。
在計算機系統(tǒng)中,為了便于對數值進行處理,數值一律是用補碼表示(存儲)的。其中,正數的補碼與原碼相同,符號位為0;負數的補碼的符號位為1,其余位為該數絕對值的原碼按位取反加1。例如,+10的補碼為00001010;對于?10來說,其符號位為1,由于+10的原碼為0001010(7位),則該數取反后為1110101,然后再加1,結果為1110110,即?10的補碼為11110110。任務二Python中運算符的優(yōu)先級如表2-8所示。優(yōu)先級順序運算符優(yōu)先級順序運算符1**8>、<、>=、<=2~、+(正號)、?(負號)9==、!=3*、/、%、//10=、+=、?=、*=、/=、%=、**=、//=4+(加法)、?(減法)11is、isnot八、運算符優(yōu)先級表2-8運算符優(yōu)先級5<<、>>12in、notin6&13and、or、not7^、|
任務實施
完成本任務,可先定義整型變量a和b,將a左移b位,然后加b,最后乘以b,完成數據的加密;再將加密后的a整除b,然后減b,最后右移b位,還原a的原始值,完成數據的解密。開發(fā)“你問我答”游戲任
務
三
“你問我答”游戲想要實現的功能是計算機輸出問題,用戶輸入答案,然后計算機判斷答案是否正確并輸出。此程序的關鍵是用戶與計算機的交互,即輸入與輸出。本任務將帶領大家編寫Python程序,開發(fā)“你問我答”游戲。任務三開發(fā)“你問我答”游戲任務描述知識鏈接一、輸入
Python提供了input()函數用于獲取用戶從鍵盤輸入的字符串,其基本格式如下。input([prompt])輸入和輸出
其中,prompt表示輸入提示,是一個字符串,[]表示可選。input()函數讓程序暫停運行,等待用戶輸入數據,當獲取用戶輸入后,返回一個字符串(不包含末尾的換行符)。例如:
name=input('請輸入名字:') #name為字符串
當將該返回值作為數值使用時,就會引發(fā)錯誤,此時可使用int()函數將字符串轉換為整型數據,也可使用float()函數將字符串轉換為浮點型數據。例如:
a=int(input('請輸入一個整數')) #a為整數
b=float(input('請輸入一個浮點數:')) #b為浮點數
這里需要注意的是,使用int()函數時,參數須是整型數值的字符串。任務三int()函數還可以將浮點型數據轉換為整型數據,例如:
a=int(1.35) #a的值為1(1)輸出字符串時須用單引號或雙引號括起來。(2)輸出變量時,可不加引號。(3)變量與字符串同時輸出或多個變量同時輸出時,須用“,”隔開?!纠?-5】輸出萬能生日祝福?!締栴}分析】使用input()函數輸入名字,使用print()函數輸出對應名字的生日祝福?!緟⒖即a】print('請輸入名字:') #輸出提示#根據輸入的名字輸出生日祝福print('親愛的',input(),':\n\t生日快樂!??\n\t希望你能開心快樂每一天!??????')在Python中使用print()函數進行輸出,應遵循以下原則。二、輸出任務三任務三。
圖2-9
例2-5程序運行結果【運行結果】
程序運行結果如圖2-9所示任務實施完成本任務,可首先使用print()函數輸出問題;然后使用input()函數輸入答案;最后使用“==”或“in”運算符判斷答案是否正確,并使用print()函數輸出判斷的結果,True表示正確,False表示錯誤。本項目主要介紹了Python的基礎知識。通過本項目的學習,讀者應重點掌握以下內容。(1)變量名只能包括字母、數字和下劃線,且第一個字符必須是字母或下劃線,不能是數字。(2)Python中的變量賦值不需要聲明類型,且變量使用前必須先賦值,因為變量指向的內存對象只有在賦值后才會被創(chuàng)建。(3)Python的數字類型包括int(整型)、float(浮點型)和complex(復數型)3種;布爾類型只有“True”和“False”兩種值;字符串是以單引號或雙引號括起來的任意文本。(4)Python常用的運算符包括算術運算符、賦值運算符、關系運算符、邏輯運算符、成員運算符、身份運算符和位運算符。(5)input()函數用于獲取用戶鍵盤輸入的字符,print()函數用于輸出數據。項目二結項目小結項目三流
程
控
制
語
句項目三
在解決實際問題時,經常會遇到需要根據不同條件選擇不同操作的情況,或者需要重復處理相同或相似操作的情況。此時,可以通過流程控制語句來解決這些問題。本項目將詳細介紹Python中的流程控制語句。流程控制語句項目導讀學習目標掌握程序流程圖的畫法。掌握if分支語句的使用方法。掌握while和for循環(huán)語句的使用方法。掌握break和continue跳轉語句的使用方法。能畫程序流程圖,并根據實際問題選擇合適的流程控制語句編寫程序。思政目標養(yǎng)成分析問題,事前規(guī)劃的良好習慣。
增強總結規(guī)律,將事物化繁為簡的能力。
強化環(huán)境保護意識,提倡節(jié)約能源、綠色健康出行。項目三流程控制語句Content項目三描述掃地機器人工作流程制作空氣質量評級系統(tǒng)開發(fā)“人機猜拳”游戲描述掃地機器人工作流程任
務
一任務一
在做一件事情前,如果沒有規(guī)劃,走一步看一步,很快就會陷入混亂之中,最后可能要花費更多的時間完成,甚至無法完成。因此,做事情前應充分分析問題,并做好規(guī)劃,做到磨刀不誤砍柴工。
編程同樣如此。在編寫程序前,應分析程序功能和流程;然后進行重要步驟規(guī)劃,即畫流程圖;最后根據流程圖逐步編程實現。本任務將帶領大家使用流程圖描述掃地機器人工作流程。描述掃地機器人工作流程任務描述任務一知識鏈接一、什么是流程圖
流程圖是對某一個問題的定義、分析或解法的圖形表示,圖中用各種符號來表示操作、數據、流向及裝置等。
程序流程圖則表示程序的運行順序,是一種常用的表示算法的圖形化工具。換言之,程序流程圖就是通過畫圖的方式表達程序運行的所有路徑,通過使用箭頭和框圖把程序運行的方向與步驟展示出來。任務一二、程序流程圖的基本符號
程序流程圖的基本符號如圖3-1所示。(1)端點符表示算法的起始或結束。(2)判斷符用于對給定的條件進行判斷,根據判斷的結果來選擇流程方向。它只有一個入口,可以有若干個出口,但有且僅有一個出口被激活。(3)處理符表示算法中的具體處理步驟。圖3-1
程序流程圖的基本符號任務一二、程序流程圖的基本符號圖3-1
程序流程圖的基本符號(4)流線符表示數據流,箭頭指示流向。(5)連接符用于連接因頁面寫不下而斷開的流程線,對應的連接符應有同一標記。(6)注解符用于標識注解內容,它不是程序流程圖的必要部分,不反應流程和操作,只是為了對流程圖中某些符號的操作進行必要的補充說明,以幫助讀者更好的理解。任務一二、程序流程圖的基本符號
(7)數據符表示未指定媒體的數據,可用于輸入和輸出,比較通用。程序流程圖還包括一些特殊的數據符,常用的有文件符、顯示符和人工輸入符。其中,文件符表示人可閱讀的數據,如打印輸出、表格輸入的數據等;顯示符表示任意媒體顯示的數據;人工輸入符表示任意媒體以人工輸入的數據,如鍵盤、開關裝置、按鈕、條形碼輸入器等輸入的數據。
在程序設計中,包含了3種基本結構,即順序結構、分支結構和循環(huán)結構,其流程圖如圖3-2所示。
圖3-3種基本結構的流程圖任務一二、程序流程圖的基本符號(1)順序結構就是按照程序代碼先后順序自上而下地執(zhí)行,直到程序結束。(2)分支結構是根據判斷條件是否滿足來決定是否執(zhí)行指定操作。(3)循環(huán)結構是重復執(zhí)行某些操作,直到不滿足循環(huán)條件才終止循環(huán)。任務實施
掃地機器人工作時傳感器會檢測前方、左邊和右邊是否有障礙物,并將檢測結果傳給掃地機器人進行判斷。掃地機器人根據判斷結果規(guī)劃路徑,具體如下。(1)判斷前方是否有障礙物,如果沒有,則機器人前行;如果有,則進行下一步判斷。(2)判斷左邊是否有障礙物,如果沒有,則機器人左轉;如果有,則進行下一步判斷。(3)判斷右邊是否有障礙物,如果沒有,則機器人右轉;如果有,則后退。(4)循環(huán)執(zhí)行(1)~(3),直到機器人停止工作。制作空氣質量評級系統(tǒng)任
務
二
空氣質量評級系統(tǒng)可根據空氣質量指數(AQI)評定空氣質量等級,以及對各類人群給出戶外活動建議。當遇到需要根據某個條件(AQI的值)是否滿足來決定是否執(zhí)行某些指定操作時,就可以利用分支語句來解決問題。本任務將帶領大家編寫Python程序,制作空氣質量評級系統(tǒng)。任務二制作空氣質量評級系統(tǒng)任務描述空氣質量指數(airqualityindex,AQI)用于對空氣質量進行定量描述,它描述了空氣污染的程度,以及對健康的影響。環(huán)境空氣質量標準規(guī)定了污染物基本項目為6項,分別為二氧化硫(SO2)、二氧化氮(NO2)、一氧化碳(CO)、臭氧(O3)、可吸入顆粒物(PM10)、細顆粒物(PM2.5),這6項污染物可用AQI統(tǒng)一評價??諝赓|量等級還可用顏色表示,顏色越深,代表污染越嚴重。其中,綠色代表空氣質量優(yōu),黃色代表良好,橙色代表輕度污染,紅色代表中度污染,紫色代表重度污染,褐紅色代表嚴重污染。任務二宇宙只有一個地球,人類共有一個家園。每年的6月5日是世界環(huán)境日,它反映了世界各國人民對環(huán)境問題的認識和態(tài)度,表達了人類對美好環(huán)境的向往和追求。2021年,世界環(huán)境日中國主題是“人與自然和諧共生”。中國主題旨在進一步喚醒全社會生物多樣性保護的意識,牢固樹立尊重自然、順應自然、保護自然的理念,建設人與自然和諧共生的美麗家園。習近平生態(tài)文明思想,為建設美麗中國提供了方向指引和根本遵循?!笆濉逼陂g,環(huán)境空氣達標城市數量、優(yōu)良天數比例提升,地表水水質優(yōu)良斷面比例持續(xù)提升,水質優(yōu)良海域面積比例持續(xù)提升……在中國,“綠水青山就是金山銀山”“良好生態(tài)環(huán)境是最普惠的民生福祉”“用最嚴格制度最嚴密法治保護生態(tài)環(huán)境”等理念深入人心。和諧共生任務二知識鏈接分支語句可分為簡單的if語句、if-else語句、if-elif-else語句和嵌套的if語句。一、簡單的if語句if語句允許程序通過判斷條件是否成立而選擇是否執(zhí)行指定的語句。if語句的基本語法格式如下。if判斷條件:語句塊上述語句中,判斷條件可為任意數據或表達式;語句塊必須縮進,可以是一條語句,也可以是多條語句。當有多條語句時,保持每條語句的縮進相同。if語句的執(zhí)行過程是:如果判斷條件為True,執(zhí)行語句塊,否則直接執(zhí)行if語句后的語句。例如:weather='晴' #創(chuàng)建變量weather代表天氣,賦值為“晴”ifweather=='晴': #如果天氣為晴print('去公園玩') #輸出“去公園玩”上述代碼中,weather的值為“晴”,滿足if判斷條件,執(zhí)行語句塊,得到輸出結果為“去公園玩”。任務二分支語句
任務二二、if-else語句if語句只允許在條件為True時執(zhí)行指定的語句,而if-else語句還可在條件為False時執(zhí)行指定的語句,其基本語法格式如下。if判斷條件:語句塊1
語句塊2上述語句的執(zhí)行過程是:當判斷條件為True時,執(zhí)行語句塊1,否則執(zhí)行語句塊2。【例3-1】根據輸入的天氣選擇是否出門游玩?!締栴}分析】本例題可使用if-else語句進行條件判斷,如果輸入天氣為“晴”或“多云”,輸出“去公園玩”,否則輸出“在家玩”。【參考代碼】weather=input('請輸入天氣情況:') #輸入變量weather的值ifweather=='晴'orweather=='多云': #如果天氣為晴或多云print('去公園玩') #輸出“去公園玩”else:
#如果不是print('在家玩') #輸出“在家玩”
【運行結果】程序運行結果如圖3-4所示。
任務二二、if-else語句圖3-4例3-1程序運行結果編程時常常需要判斷一系列的條件,一旦其中某一個條件為True就立刻停止。此時,可采用if-elif-else語句(elif是elseif的簡寫),其基本語法格式如下。if判斷條件:if判斷條件1:語句塊1elif判斷條件2:語句塊2……elif判斷條件n:語句塊nelse:語句塊n+1
任務二三、if-elif-else語句上述語句的執(zhí)行過程是:依次判斷條件,當滿足某個條件時,執(zhí)行其對應的語句塊,然后跳到整個if語句外繼續(xù)執(zhí)行程序。如果所有條件都不滿足,則執(zhí)行最后一個else對應的語句塊,然后繼續(xù)執(zhí)行后續(xù)程序。
任務二三、if-elif-else語句【例3-2】根據輸入的溫度temperature給出穿衣建議,溫度和穿衣建議對照關系如表3-1所示。溫度(℃)穿衣建議溫度(℃)穿衣建議temperature≥28.0輕棉織物制作的短衣、短裙、短褲等15.0≤temperature<18.0風衣、外套、毛衣等24.0≤temperature<28.0棉麻面料的襯衫、薄長裙、薄T恤等11.0≤temperature<15.0毛衣、風衣、大衣等21.0≤temperature<24.0單層棉麻面料的T恤衫、長褲、薄牛仔褲等6.0≤temperature<11.0棉衣、冬大衣、薄羽絨服等18.0≤temperature<21.0薄外套、風衣、薄毛衣等temperature<6.0羽絨服、厚棉衣、冬大衣等#輸入溫度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('穿衣建議:羽絨服、厚棉衣、冬大衣等')
#輸出穿衣建議【參考代碼】任務二任務二【運行結果】
程序運行結果如圖3-5所示。
【程序說明】
每個else本身都隱含了一個條件,如第1個elif實質上表示條件24.0≤temperature<28.0成立,此隱含條件與對應的if所給出的條件完全相反。在編程時要善于利用隱含條件,使程序代碼清晰簡潔。圖3-5例3-2程序運行結果if判斷條件1:if判斷條件2:
語句塊1else:
語句塊2else:在if語句中又包含一個或多個if語句時,稱為if語句的嵌套,其基本語法格式如下。任務二四、嵌套的if語句
if判斷條件3: 語句塊3 else: 語句塊4
內嵌if語句可以是簡單的if語句,也可以是if-else語句,還可以是if-elif-else語句。一定要注意if嵌套語句的逐層縮進,保持同級縮進相同。任務三。
【例
3-3】分配任務。在社會實踐活動中有三項任務,分別是:種樹、采茶、打掃街道。依據小組人數及男生、女生人數決定小組的任務,人數小于5的小組負責打掃街道,人數大于等于5且男生多于女生的小組負責種樹,人數大于等于5且男生不多于女生的小組負責采茶。輸入小組男生、女生人數,輸出小組接受的任務?!締栴}分析】本例題可使用嵌套的if語句實現,程序流程圖如圖3-6所示。圖3-6分配任務流程圖任務二【參考代碼】boy=int(input('請輸入男生人數:')) #輸入男生人數并轉換為整數girl=int(input('請輸入女生人數:')) #輸入女生人數并轉換為整數total=boy+girl #計算總人數iftotal<5: #如果總人數小于5print('打掃街道') #輸出“打掃街道”else: #如果總人數大于等于5ifboy>girl: #如果男生人數大于女生人數print('種樹') #輸出“種樹”else: #如果男生人數小于等于女生人數print('采茶') #輸出“采茶”【運行結果】
程序運行結果如圖3-7所示。圖3-7例3-3程序運行結果任務實施
完成本任務,須首先輸入AQI的值,然后根據AQI的值判斷空氣質量等級并輸出,同時輸出相應的戶外活動建議。本任務首先需要判斷AQI的值是否大于0,在確定數值有意義的情況下再判斷該值處于哪個范圍。因此,可以利用嵌套的if語句來完成本任務,并在內嵌if語句中利用if-elif-else語句實現多次判斷。開發(fā)“人機猜拳”游戲任
務
三
“人機猜拳”游戲模擬用戶和計算機連續(xù)猜拳,一方先贏3次則取得勝利。由于需要進行多次猜拳,須使用循環(huán)結構來實現,即利用循環(huán)語句讓程序執(zhí)行某些重復操作,然后利用跳轉語句結束循環(huán)。本任務將帶領大家編寫Python程序,開發(fā)“人機猜拳”游戲。任務三開發(fā)“人機猜拳”游戲任務描述知識鏈接循環(huán)語句可分為while語句、for語句和嵌套的循環(huán)語句。跳轉語句可分為break語句和continue語句。循環(huán)語句和跳轉語句while語句的基本語法格式如下。while判斷條件:語句塊 #循環(huán)體一、while語句任務三
上述語句的執(zhí)行過程是:當判斷條件為True時,執(zhí)行循環(huán)體;接著再次判斷條件,如果為True,繼續(xù)執(zhí)行循環(huán)體;如此反復,直到判斷條件為False時結束循環(huán),執(zhí)行while語句后的語句。while語句是“先判斷,后執(zhí)行”。如果剛進入循環(huán)時判斷條件就不滿足,則循環(huán)體一次也不執(zhí)行。還需要注意的是,循環(huán)體中一定要有語句修改判斷條件,使其有為False的時候,否則將出現“死循環(huán)”。任務三【例3-4】
輸入一個整數n,求S=1+2+3+…+n的值?!締栴}分析】本例題可使用循環(huán)結構來實現。重復執(zhí)行循環(huán)體n次,每次加一個數。繼續(xù)分
析發(fā)現,每次累加的數是有規(guī)律的,后一個數是前一個數加1。因此,只需在加完上一個數i后,使i加1就可得到下一個數?!緟⒖即a】n=int(input('請輸入一個整數:')) #輸入n的值,并轉換為整數i=1 #創(chuàng)建變量i,賦值為1S=0 #創(chuàng)建變量S,賦值為0whilei<=n: #循環(huán),當i>n時結束S+=i #求和,將結果賦給Si+=1 #變量i加1print('S=1+2+3+…+n=',S) #輸出S的值任務三【運行結果】
程序運行結果如圖3-9所示。在使用while語句時,需要注意以下兩點。(1)變量初始化描述要完整、準確。例如,在例3-4中,在while語句前要對變量i和S進行初始化。(2)在循環(huán)體中應有使循環(huán)趨于結束的語句。例如,在例3-4中循環(huán)結束的條件是“i>n”。因此,循環(huán)體中應有使i增大并最終大于n的語句,這里用“i+=1”語句來達到此目的,如果沒有這條語句,則i的值始終不變,就會形成死循環(huán)。
圖3-9例3-4程序運行結果
forxin'python':
print(x)1.基本語法格式二、for語句任務三for語句的基本語法格式如下。for變量in序列:語句塊 #循環(huán)體
上述語句的執(zhí)行過程是:如果序列中包含表達式,則先進行求值計算;然后,序列中的第一個元素賦給變量,執(zhí)行循環(huán)體;接著序列中的第二個元素賦給變量,執(zhí)行循環(huán)體;依此類推,直到序列中最后一個元素賦給變量,執(zhí)行循環(huán)體后for循環(huán)結束,執(zhí)行for語句后的語句。例如,使用for循環(huán)輸出字符串“python”中的每一個字符,可使用下面代碼實現。上述代碼運行結果如圖3-10所示。任務三圖3-10
for循環(huán)輸出字符串“python”中的每一個字符
Python中的for循環(huán)常用于遍歷列表、元組、字符串及字典等序列中的元素。具體使用方法將陸續(xù)在以后項目中介紹。任務三2.range()函數for語句經常與range()函數一起使用,range()函數是Python的內置函數,可創(chuàng)建一個整數列表。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)?!纠?-5】
雞兔同籠。大約在1500年前,《孫子算經》中記載:“今有雉兔同籠,上有三十五頭,下有九十四足,問雉兔各幾何?”編程計算雞和兔的數量并輸出。任務三【參考代碼】【問題分析】根據題意設雞和兔的數量分別為cock和rabbit,如果籠中全部是雞,雞的最大數量為35,所以cock在0~35取值,且rabbit=35?cock。確定了雞的范圍后進行窮舉并判斷,由于雞有兩只腳,兔有4只腳,所以判斷條件為雞和兔的腳的總數量為94。forcockinrange(0,35+1): #循環(huán)范圍為0~35,cock表示雞的數量rabbit=35-cock #計算兔的數量ifcock*2+rabbit*4==94:#如果雞和兔的腳的總數為94print('雞有',cock,'只') #輸出雞的數量print('兔有',rabbit,'只')#輸出兔的數量?!具\行結果】
程序運行結果如圖3-11所示三、嵌套的循環(huán)語句任務三一個循環(huán)語句的循環(huán)體內包含另一個完整的循環(huán)結構,稱為循環(huán)的嵌套。嵌套在循環(huán)體內的循環(huán)稱為內循環(huán),嵌套有內循環(huán)的循環(huán)稱為外循環(huán)。內循環(huán)中還可以嵌套循環(huán),這就是多重循環(huán)。while語句和for語句可以互相嵌套,自由組合。外層循環(huán)體中可以包含一個或多個內層循環(huán)結構,但要注意的是,各循環(huán)必須完整包含,相互之間不允許有交叉現
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2031年中國食品行業(yè)電商平臺行業(yè)發(fā)展全景監(jiān)測及投資方向研究報告
- 2025-2031年中國金融電子支付設備行業(yè)發(fā)展前景預測及投資方向研究報告
- 2025-2031年中國紅酸湯行業(yè)市場調查研究及發(fā)展趨勢預測報告
- 第5單元第2課時 三角形的面積(教案)|西師大版-五年級數學上冊
- 中班防拐課件圖片及教案
- 高血壓健康知識2
- 指導與培訓課件
- 2022年河北省邢臺市南和區(qū)高二下學期第三次月考英語試題
- 環(huán)保建材市場企業(yè)制定與實施新質生產力戰(zhàn)略研究報告
- 高壓水流按摩淋浴頭行業(yè)跨境出海戰(zhàn)略研究報告
- YC/T 478-2013煙草商業(yè)企業(yè)卷煙物流配送中心安全管理規(guī)范
- GB/T 24456-2009高密度聚乙烯硅芯管
- GB 6222-2005工業(yè)企業(yè)煤氣安全規(guī)程
- 幼兒園驚蟄來了課件
- 轉包違法分包等違法行為認定查處管理辦法講座課件
- PLM解決方案與NX培訓教材課件
- 部編版六年級下冊道德與法治全冊優(yōu)秀課件
- 【精選】方劑學解表劑練習題
- 法制宣傳教育小報
- 上海西郊國際農產品展示直銷中心貴州館入駐方案
- 等離子體水處理技術
評論
0/150
提交評論