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