《Python程序設(shè)計(jì)基礎(chǔ)教程(微課版)》全套教學(xué)課件_第1頁(yè)
《Python程序設(shè)計(jì)基礎(chǔ)教程(微課版)》全套教學(xué)課件_第2頁(yè)
《Python程序設(shè)計(jì)基礎(chǔ)教程(微課版)》全套教學(xué)課件_第3頁(yè)
《Python程序設(shè)計(jì)基礎(chǔ)教程(微課版)》全套教學(xué)課件_第4頁(yè)
《Python程序設(shè)計(jì)基礎(chǔ)教程(微課版)》全套教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩479頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Python程序設(shè)計(jì)第1章Python概述與環(huán)境配置全套可編輯PPT課件第1章-Python概述與環(huán)境配置第2章-Python語(yǔ)法基礎(chǔ)第3章-Python控制結(jié)構(gòu)第4章-序列、集合與字典第5章-Python自定義函數(shù)第6章-Python文件操作第7章-Python面向?qū)ο缶幊痰?章-PythonGUI編程第9章-Python數(shù)據(jù)庫(kù)編程學(xué)習(xí)目標(biāo)了解Python特點(diǎn)與應(yīng)用理解Python交互式編程和腳本編程知識(shí)目標(biāo)能夠安裝Python開(kāi)發(fā)環(huán)境能夠使用pip管理第三方庫(kù)能夠選擇合適的IDE進(jìn)行后續(xù)課程學(xué)習(xí)能力目標(biāo)認(rèn)真治學(xué)的態(tài)度當(dāng)代大學(xué)生的社會(huì)責(zé)任和擔(dān)當(dāng)精神程序員職業(yè)觀情感態(tài)度與價(jià)值觀Python概述01020403Python開(kāi)發(fā)環(huán)境Python編程方式PythonIDE目

錄Python概述01020403Python開(kāi)發(fā)環(huán)境Python編程方式PythonIDE目

錄Python歷史和現(xiàn)狀Python語(yǔ)言特點(diǎn)Python應(yīng)用領(lǐng)域Python起源作者:荷蘭程序員GuidovanRossum時(shí)間:1991年發(fā)展條件硬件技術(shù)的突破->關(guān)注語(yǔ)言易用性互聯(lián)網(wǎng)的普及->開(kāi)源軟件、Python社區(qū)形成版本Python2.x:歷史版本Python3.x:當(dāng)前主流版本,不兼容2.x1.1.1Python歷史和現(xiàn)狀2開(kāi)源、跨平臺(tái)、解釋型的高級(jí)編程語(yǔ)言簡(jiǎn)單易學(xué)面向?qū)ο罂梢浦残载S富的庫(kù)可擴(kuò)展性可嵌入性1.1.2Python特點(diǎn)3Web開(kāi)發(fā):Django、Flask、Tornado游戲開(kāi)發(fā):PySoy、pygame桌面應(yīng)用程序:tkinter、wxPython、PyQt網(wǎng)絡(luò)爬蟲(chóng):requests、scrapy、pyspider數(shù)據(jù)庫(kù):sqlite3、pyodbc云計(jì)算:OpenStack自動(dòng)化:Ansible、SaltStack、Selenium科學(xué)計(jì)算與數(shù)據(jù)分析:NumPy、Matplotlib機(jī)器學(xué)習(xí)與人工智能:TensorFlow、PyTorch1.1.3Python應(yīng)用領(lǐng)域4Python概述01020403Python開(kāi)發(fā)環(huán)境Python編程方式PythonIDE目

錄Python開(kāi)發(fā)環(huán)境020403Python編程方式PythonIDE目

錄Python概述01Python下載與安裝Python擴(kuò)展包管理Step1:進(jìn)入官網(wǎng)()對(duì)應(yīng)操作系統(tǒng)的下載頁(yè)面1.2.1下載Python安裝包5Step2:選擇合適的版本1.2.1下載Python安裝包5雙擊python-3.12.0-amd64.exe啟動(dòng)安裝1.2.2安裝Python5管理員權(quán)限加入Path環(huán)境變量默認(rèn)安裝自定義安裝選擇“InstallNow”開(kāi)始默認(rèn)安裝1.2.2安裝Python6選擇“CustomizeInstallation”進(jìn)入配置界面1.2.2安裝Python6離線開(kāi)發(fā)文檔包管理工具tck/tk:GUI庫(kù)IDLE:開(kāi)發(fā)工具測(cè)試套件Python啟動(dòng)器為所有用戶(hù)安裝點(diǎn)擊“Next”進(jìn)入高級(jí)配置1.2.2安裝Python6為所有用戶(hù)安裝關(guān)聯(lián)Python源文件,需要安裝Py啟動(dòng)器創(chuàng)建快捷方式第二次修改Path預(yù)編譯標(biāo)準(zhǔn)庫(kù)下載調(diào)試符號(hào)下載調(diào)試二進(jìn)制文件修改安裝路徑安裝成功1.2.2安裝Python6安裝后的目錄文件1.2.2安裝Python7Python解釋器pip工具:Python擴(kuò)展包管理工具從社區(qū)下載并安裝包至本地更新本地?cái)U(kuò)展包卸載本地?cái)U(kuò)展包1.3擴(kuò)展包管理7pip要在命令行窗口中運(yùn)行“Win+R”組合鍵調(diào)出“運(yùn)行”窗口,輸入“cmd”后回車(chē),打開(kāi)命令行窗口【開(kāi)始】菜單-【W(wǎng)indows系統(tǒng)】-【命令提示符】打開(kāi)命令行窗口1.3.1安裝擴(kuò)展包7pip安裝指令格式1.3.1安裝擴(kuò)展包7pipinstall包名指定鏡像網(wǎng)站下載1.3.1安裝擴(kuò)展包7pipinstall包名-i鏡像網(wǎng)站url--trusted-host域名pip

install

numpy

-i

/pypi/simple

--trusted-host

指定版本號(hào)下載1.3.1安裝擴(kuò)展包8pipinstall包名==版本號(hào)pip

install

numpy==1.13.0使用離線安裝包1.3.1安裝擴(kuò)展包8pipinstall已下載至本地的離線安裝文件pip

installnumpy-1.23.2-pp38-pypy38_pp73-win_amd64.whlpip卸載指令格式1.3.2卸載擴(kuò)展包8pipuninstall包名pipuninstallnumpypip更新指令格式1.3.3更新擴(kuò)展包8pipinstall--upgrade包名pip

install

--upgradenumpyPython概述01020403Python開(kāi)發(fā)環(huán)境Python編程方式PythonIDE目

錄Python編程方式0304PythonIDE目

錄Python概述0102Python開(kāi)發(fā)環(huán)境交互式編程腳本式編程Python是解釋型語(yǔ)言腳本式編程交互式編程1.4Python編程方式8Step1:在文本編輯軟件中編寫(xiě)代碼1.4.1腳本式編程8任何文本編輯軟件都可以完成這項(xiàng)工作,上圖為Windows系統(tǒng)自帶的記事本工具Step2:將代碼保存為“*.py”的腳本文件1.4.1腳本式編程9Step3:在命令行中,啟動(dòng)Python解釋器執(zhí)行腳本文件1.4.1腳本式編程9python腳本文件完整路徑文件路徑可用英文雙引號(hào)括起來(lái),避免因空格等符號(hào)導(dǎo)致的路徑解析錯(cuò)誤如何進(jìn)入交互式編程環(huán)境命令行窗口中輸入“python”然后回車(chē)1.4.2交互式編程9交互式環(huán)境下的命令提示符,等待輸入用戶(hù)在其后輸入Python語(yǔ)句,回車(chē)執(zhí)行交互式編程適合調(diào)試和測(cè)試1.4.2交互式編程10輸入的Python語(yǔ)句執(zhí)行后的結(jié)果Python概述01020403Python開(kāi)發(fā)環(huán)境Python編程方式PythonIDE目

錄PythonIDE04目

錄Python概述0102Python開(kāi)發(fā)環(huán)境03Python編程方式IDLE基本使用PyCharm基本使用集成開(kāi)發(fā)環(huán)境(IDE,IntegratedDevelopmentEnvironment)代碼編輯器編譯器調(diào)試器……PythonIDEIDLE:Python開(kāi)發(fā)環(huán)境自帶的IDEPyCharm:廣泛用于Python項(xiàng)目開(kāi)發(fā)的IDE1.5Python集成開(kāi)發(fā)環(huán)境10IDLE:Python自帶的IDE簡(jiǎn)潔易用支持交互式編程和腳本式編程基本功能:代碼編輯、語(yǔ)法高亮、調(diào)試等1.5.1IDLE10IDLE默認(rèn)進(jìn)入交互編程模式1.5.1IDLE10IDLE的腳本編輯窗口【File】-【NewFile】打開(kāi)“untitled”窗口開(kāi)始編輯保存為“*.py”文件后,從【Run】-【RunModule】或按F5執(zhí)行1.5.1IDLE11IDLE腳本執(zhí)行結(jié)果顯示在主窗口中1.5.1IDLE11腳本執(zhí)行結(jié)果PyCharm:JetBrains公司開(kāi)發(fā)的專(zhuān)業(yè)IDE,提供社區(qū)版和專(zhuān)業(yè)版1.5.2PyCharm11安裝PyCharm:雙擊安裝程序進(jìn)入向?qū)Т翱?.5.2PyCharm12安裝PyCharm:配置安裝路徑1.5.2PyCharm12安裝PyCharm:設(shè)置安裝選項(xiàng)1.5.2PyCharm13創(chuàng)建桌面圖標(biāo)添加右鍵菜單添加文件關(guān)聯(lián)將bin/目錄添加到Path環(huán)境變量安裝PyCharm:設(shè)置開(kāi)始菜單1.5.2PyCharm13安裝PyCharm:安裝結(jié)束,重啟完成1.5.2PyCharm13啟動(dòng)PyCharm1.5.2PyCharm13項(xiàng)目入口基礎(chǔ)樣式設(shè)置插件管理學(xué)習(xí)資料修改基礎(chǔ)樣式1.5.2PyCharm14窗口主題窗口字體大小創(chuàng)建項(xiàng)目項(xiàng)目=文件夾,項(xiàng)目的腳本文件和子目錄都放在文件夾中每個(gè)項(xiàng)目都要指定一個(gè)Python解釋器,在PyCharm中運(yùn)行項(xiàng)目時(shí),自動(dòng)調(diào)用該解釋器執(zhí)行腳本1.5.2PyCharm14創(chuàng)建項(xiàng)目PyCharm啟動(dòng)界面【Project】-【NewProject】,進(jìn)入創(chuàng)建項(xiàng)目的向?qū)Т翱?.5.2PyCharm14項(xiàng)目存放位置使用已有的解釋器第一次使用需要配置1.5.2PyCharm15配置解釋器【AddInterpreter】-【AddLocalInterpreter】-【SystemInterpreter】如果沒(méi)有自動(dòng)發(fā)現(xiàn),點(diǎn)擊右側(cè)的“...”按鈕手動(dòng)添加1.5.2PyCharm16配置好項(xiàng)目后,點(diǎn)擊“Create”創(chuàng)建新項(xiàng)目1.5.2PyCharm16新項(xiàng)目中添加子文件夾1231.5.2PyCharm17新項(xiàng)目中添加腳本文件1231.5.2PyCharm17雙擊腳本文件,在右側(cè)的代碼編輯區(qū)編寫(xiě)程序代碼編輯區(qū)行號(hào)文件名1.5.2PyCharm18執(zhí)行腳本執(zhí)行腳本調(diào)試腳本1.5.2PyCharm19查看執(zhí)行結(jié)果1.5.2PyCharm19PyCharm支持交互式編程本章結(jié)束Python程序設(shè)計(jì)第2章Python語(yǔ)法基礎(chǔ)學(xué)習(xí)目標(biāo)識(shí)記Python語(yǔ)言格式框架識(shí)記基本要素語(yǔ)法規(guī)則理解動(dòng)態(tài)類(lèi)型與模塊知識(shí)目標(biāo)能夠編寫(xiě)符合Python風(fēng)格的簡(jiǎn)單程序能夠使用變量、表達(dá)式、基本輸入輸出進(jìn)行簡(jiǎn)單交互能力目標(biāo)編程規(guī)范意識(shí)團(tuán)隊(duì)協(xié)作的重要性日積月累的重要性情感態(tài)度與價(jià)值觀Python語(yǔ)言格式框架01020403運(yùn)算符與表達(dá)式基本輸入輸出模塊的使用目

錄Python語(yǔ)言格式框架01020403運(yùn)算符與表達(dá)式基本輸入輸出模塊的使用目

錄注釋、代碼塊與縮進(jìn)保留關(guān)鍵字變量和常量數(shù)據(jù)類(lèi)型解釋源代碼變量、函數(shù)等的作用復(fù)雜的算法邏輯提高可讀性、可維護(hù)性?xún)煞N注釋單行注釋多行注釋2.1.1注釋23獨(dú)占一行,或代碼之后1.單行注釋23#單行注釋文本#以下為矩形的參數(shù)rect_width=10#矩形的寬rect_height=15#矩形的高示例2-12.多行注釋24三個(gè)單引號(hào)對(duì)以上三種情況之外、解釋代碼用三個(gè)雙號(hào)對(duì)文檔字符串放在函數(shù)、類(lèi)內(nèi)部,或文件開(kāi)頭解釋函數(shù)、類(lèi)、文件的用法或作用"""

注釋文本

注釋文本"""'''

注釋文本

注釋文本'''2.多行注釋24"""第二章的源代碼示例包括:注釋常量與變量運(yùn)算符與表達(dá)式數(shù)據(jù)類(lèi)型"""defsay_hello(name):"""作用:和傳入的對(duì)象說(shuō)Hello參數(shù):name-打招呼的對(duì)象的名字"""print('Hello,',name)示例2-22.多行注釋24'''以下是可執(zhí)行語(yǔ)句,首先定義了一個(gè)變量n,存放了一個(gè)名字“張三”,然后調(diào)用了函數(shù)say_hello(),并將n作為打招呼的對(duì)象傳給了參數(shù)name'''n='張三'say_hello(n)示例2-2代碼塊:也稱(chēng)“復(fù)合語(yǔ)句”作為單元執(zhí)行的代碼段,由一條或多條語(yǔ)句組成冒號(hào)+縮進(jìn):表示代碼塊的所屬關(guān)系2.1.2代碼塊與縮進(jìn)24score=92ifscore>=90:print('優(yōu)秀')print('再接再厲,勇攀高峰!')print('程序結(jié)束')示例2-3冒號(hào):屬于某結(jié)構(gòu)的代碼塊從下一行開(kāi)始相同縮進(jìn)量的語(yǔ)句組成代碼塊縮進(jìn)量變化的語(yǔ)句脫離if代碼塊常用于選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)函數(shù)體、類(lèi)體空行不會(huì)影響代碼塊的所屬關(guān)系縮進(jìn)可使用4個(gè)空格(推薦),或tab鍵(不推薦)2.1.2代碼塊與縮進(jìn)24縮進(jìn)可以嵌套2.1.2代碼塊與縮進(jìn)25weather='sunny'temperature=25

ifweather=='sunny':iftemperature>30:

print('今天很熱,記得帶傘和防曬霜。')else:

print('今天很適合外出,享受陽(yáng)光吧!')

示例2-42.1.3保留關(guān)鍵字25Python保留關(guān)鍵字andasassertbreakclasscontinuedefdelelifelseexceptFalsefinallyforfromglobalifimportinislambdaNonenonlocalnotorpassraisereturnTruetrywhilewithyieldasyncawait程序的本質(zhì):加工數(shù)據(jù)(算法+數(shù)據(jù))Python對(duì)象:數(shù)據(jù)的載體類(lèi)型值100:整數(shù)類(lèi)型的一個(gè)對(duì)象'Hello':字符串類(lèi)型的一個(gè)對(duì)象3.14:浮點(diǎn)數(shù)類(lèi)型的一個(gè)對(duì)象2.1.4變量26Python變量:對(duì)象的引用(對(duì)象的“別名”)Python變量先定義、再使用某個(gè)變量名第一次出現(xiàn)時(shí)即為定義個(gè)新變量定義時(shí)要賦予初始值2.1.4變量26變量名=初始值name='張三'age=18apple_price=8.50示例2-5已定義的變量通過(guò)“=”可引用其他對(duì)象同一個(gè)變量可以引用不同類(lèi)型的對(duì)象2.1.4變量26apple_price=8.50#高速優(yōu)惠,運(yùn)輸成本降低,蘋(píng)果降價(jià)了apple_price=7.99示例2-6已定義的變量=新對(duì)象標(biāo)識(shí)符:用來(lái)命名變量、函數(shù)、類(lèi)、模塊和其他程序元素的名稱(chēng)必須以字母(a-z,A-Z)或下劃線(_)開(kāi)頭,后面可跟任意個(gè)數(shù)字、字母或下劃線大小寫(xiě)敏感Python的保留關(guān)鍵字不能用作標(biāo)識(shí)符避免與內(nèi)置或已導(dǎo)入的模塊名、函數(shù)名、對(duì)象名、類(lèi)型名等重名變量命名遵循標(biāo)識(shí)符命名規(guī)則2.1.4變量26Q:請(qǐng)判斷下列標(biāo)識(shí)符的命名是否符合Python語(yǔ)法要求測(cè)一測(cè)var_Rabbit_car_no4logwhile推薦的命名方式以下劃線開(kāi)頭的標(biāo)識(shí)符在Python中有特殊含義不推薦使用漢字命名變量推薦使用有意義的單詞給標(biāo)識(shí)符命名,多個(gè)單詞之間用下劃線連接is_enough、bottle_nums2.1.4變量26Python是強(qiáng)類(lèi)型語(yǔ)言類(lèi)型確定后,只能進(jìn)行符合該類(lèi)型約束的行為Python是動(dòng)態(tài)類(lèi)型語(yǔ)言無(wú)需顯式指定類(lèi)型解釋器根據(jù)值自行判斷數(shù)據(jù)類(lèi)型2.1.5數(shù)據(jù)類(lèi)型27張三25歲2.5元/瓶4+2j2.1.5數(shù)據(jù)類(lèi)型27數(shù)值類(lèi)型int:表示整數(shù)數(shù)值,-100,0,2,99float:表示帶有小數(shù)部分的數(shù)值,-0.3,10.2complex:表示復(fù)數(shù)(實(shí)部和虛部),1+4jage=18temperature=36.4x=1+4j2.1.5數(shù)據(jù)類(lèi)型27布爾類(lèi)型(bool)表示邏輯值,有兩個(gè)取值:True:陳述成立,結(jié)果為真False:陳述不成立,結(jié)果為假用于選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)a=int(input('請(qǐng)輸入一個(gè)整數(shù):')result=(a%2==0)result=(a>100)2.1.5數(shù)據(jù)類(lèi)型27數(shù)據(jù)容器包含一個(gè)或多個(gè)元素,每個(gè)元素都是獨(dú)立的數(shù)據(jù)提供對(duì)元素的各種操作,如增加元素、刪除元素、查找指定元素、排序等a='hello!'#a是一個(gè)字符串b=(1,-5,7)#b是一個(gè)元組c=[1,2,6]#c是一個(gè)列表d={'a','b','c'}#d是一個(gè)集合e={'right':4,'wrong':1}#e是一個(gè)字典、

2.1.5數(shù)據(jù)類(lèi)型27空類(lèi)型(NoneType)只有一個(gè)取值:None變量不指向任何值函數(shù)沒(méi)有明確的返回值#定義變量時(shí)但沒(méi)給它賦值,Python不會(huì)設(shè)置其值為Nonevarvar=None#錯(cuò)誤!定義變量時(shí)必須給初始值!#但可以明確給變量賦值為None2.1.5數(shù)據(jù)類(lèi)型27type():返回變量的實(shí)際類(lèi)型type(變量)x=10print(type(x))#打印結(jié)果:<class'int'>示例2-72.1.5數(shù)據(jù)類(lèi)型27Python中,通過(guò)內(nèi)置函數(shù)將一種類(lèi)型的數(shù)據(jù),轉(zhuǎn)換成另一種類(lèi)型的數(shù)據(jù)int():轉(zhuǎn)換為整數(shù)float():轉(zhuǎn)換為浮點(diǎn)數(shù)str():轉(zhuǎn)換為字符串bool():轉(zhuǎn)換為布爾值變量=轉(zhuǎn)換函數(shù)(變量)轉(zhuǎn)換數(shù)據(jù)類(lèi)型2.1.5數(shù)據(jù)類(lèi)型28#默認(rèn)轉(zhuǎn)換為十進(jìn)制,如需轉(zhuǎn)換為其他進(jìn)制,可使用第2個(gè)參數(shù)指定#如int('F10',16)將字符串'F10'轉(zhuǎn)換為十六進(jìn)制整數(shù)x=int('10')x=x+2s=str(x)

示例2-82.1.5數(shù)據(jù)類(lèi)型28isinstance():測(cè)試對(duì)象是否為指定類(lèi)型的實(shí)例,是返回True,不是則返回Falseisinstance(變量,類(lèi)型名)x=10ifisinstance(x,str):print('是字符串')else:print('不是字符串')#打印結(jié)果:不是字符串示例2-92.1.6對(duì)象共享28變量B=變量A為變量A引用的對(duì)象創(chuàng)建了一個(gè)新的別名BA和B引用的是同一個(gè)對(duì)象a='Hello'b=ax=[1,2,3]y=xx[0]=0print(y)#打印結(jié)果:[0,2,3]示例2-10可變數(shù)據(jù)類(lèi)型:通過(guò)一個(gè)變量所作的修改會(huì)反映在所有引用該對(duì)象的變量上2.1.6對(duì)象共享28id():返回一個(gè)對(duì)象的唯一標(biāo)識(shí)符,是一個(gè)整數(shù),通常代表著該對(duì)象的地址id(變量或字面量)x=10y=10print('10的地址:',id(10))print('x的地址:',id(x))print('y的地址:',id(y))示例2-112.1.6對(duì)象共享29不可變對(duì)象:int、float、str、tuple等,存儲(chǔ)會(huì)進(jìn)行優(yōu)化,兩個(gè)變量被賦予相同的值時(shí),可能會(huì)讓它們引用同一個(gè)對(duì)象t1=(2,4,6)t2=(2,4,6)print('t1的地址:',id(t1))print('t2的地址:',id(t2))示例2-112.1.6對(duì)象共享(補(bǔ)充)Python提供小數(shù)據(jù)池對(duì)一些數(shù)據(jù)進(jìn)行緩存,當(dāng)程序引用這些數(shù)據(jù)時(shí),不會(huì)創(chuàng)建新對(duì)象,而是引用小數(shù)據(jù)池里的對(duì)象,例如整數(shù)將緩存[-5,256]的整數(shù)避免頻繁創(chuàng)建和銷(xiāo)毀對(duì)象,提升效率2.1.6對(duì)象共享29可變對(duì)象:list、set、dict等,每個(gè)對(duì)象在內(nèi)存中都有獨(dú)立的存儲(chǔ)空間l1=[1,3,5]l2=[1,3,5]print('l1的地址:',id(l1))print('l2的地址:',id(l2))示例2-11下列代碼片段中,x和y地址一樣的是?測(cè)一測(cè)x=145y=145

x=145y=120.0

x={1,2,3}y={1,2,3}

x=y={1,2,3}

A.B.C.D.Python語(yǔ)言格式框架01020403運(yùn)算符與表達(dá)式基本輸入輸出模塊的使用目

錄運(yùn)算符與表達(dá)式020403基本輸入輸出模塊的使用目

錄Python語(yǔ)言格式框架01運(yùn)算符表達(dá)式2.2.1運(yùn)算符292.2.1運(yùn)算符29%:求余數(shù)10%4:10除以4的余數(shù),結(jié)果為2**:冪運(yùn)算10**4:10的4次方,結(jié)果為10000/和///:真實(shí)除,返回實(shí)際的結(jié)果,為浮點(diǎn)數(shù)//:整除,將商向下取整后返回,如果兩個(gè)操作數(shù)都是整數(shù)則返回整數(shù)部分,否則返回實(shí)數(shù)301.算術(shù)運(yùn)算符/和///:真實(shí)除,返回實(shí)際的結(jié)果,為浮點(diǎn)數(shù)//:整除,將商向下取整后返回,如果兩個(gè)操作數(shù)都是整數(shù)則返回整數(shù)部分,否則返回實(shí)數(shù)301.算術(shù)運(yùn)算符10.5/2.110/210/2.010.0/25.05.05.05.010.4/210.4//211/211//25.255.55.0Q:整型變量x中存放了一個(gè)兩位數(shù),如果要將其個(gè)位數(shù)與十位數(shù)互換,如“13”變成“31”,下列語(yǔ)句正確的是?測(cè)一測(cè)A:(x%10)//10+x//10

B:(x%10)*10+x//10

C:(x/10)%10+x//10

D:(x%10)*10+x%10

測(cè)一測(cè)A:c*d/(2*a*b)

B:c/2*d/a/bC:c*d/2*a*bD:c*d/2/a/b2.2.1運(yùn)算符302.2.1運(yùn)算符30對(duì)常量、變量或表達(dá)式的值進(jìn)行比較比較成立返回True比較不成立返回False常用于選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)的控制條件302.比較運(yùn)算符a=int(input('請(qǐng)輸入第一個(gè)整數(shù):')b=int(input('請(qǐng)輸入第二個(gè)整數(shù):')print(a!=b)#由a和b的值,“a不等于b”成立嗎?302.比較運(yùn)算符2.2.1運(yùn)算符302.2.1運(yùn)算符邏輯運(yùn)算符對(duì)布爾值進(jìn)行運(yùn)算303.邏輯運(yùn)算符運(yùn)算符操作數(shù)取值not邏輯非1個(gè)notTrue:FalsenotFalse:Trueand邏輯與2個(gè)TrueandTrue:True其他:Falseor邏輯或2個(gè)FalseorFalse:False其他:True優(yōu)先級(jí):not>and>or操作數(shù)通常是一個(gè)bool表達(dá)式或bool變量常用于將多個(gè)條件組合在一起以形成更復(fù)雜的條件303.邏輯運(yùn)算符a=int(input('請(qǐng)輸入第一個(gè)整數(shù):')b=int(input('請(qǐng)輸入第二個(gè)整數(shù):')ifb!=0anda>b:print(a/b)Q:右方代碼的執(zhí)行結(jié)果是?x=Truey=Falsez=Falseprint(xoryandz)測(cè)一測(cè)A:true

B:TrueC:falseD:False2.2.1運(yùn)算符302.2.1運(yùn)算符30賦值運(yùn)算符=:將右操作數(shù)的值賦予左操作數(shù)4.賦值運(yùn)算符變量=字面量/變量/表達(dá)式/函數(shù)返回值a=100b=int(input('請(qǐng)輸入第二個(gè)整數(shù):')c=a+bd=c復(fù)合賦值運(yùn)算第一步:先計(jì)算“變量

其他運(yùn)算符

右操作數(shù)”的值第二步:將第一步的結(jié)果賦值給變量314.賦值運(yùn)算符變量

其他運(yùn)算符=右操作數(shù)a=100a+=100a=a+100復(fù)合賦值運(yùn)算的左操作數(shù)必須先定義Python不允許在if、while語(yǔ)句中賦值Python不提供++、--運(yùn)算符,用+=、-=替代完成x+=1x-=14.賦值運(yùn)算符31序列賦值:=右邊的值依次賦值給左邊的變量4.賦值運(yùn)算符31變量1,

變量2,

...,

變量N=初值1,

初值2,

...,

初值Na,b=10,5#定義變量a、b并賦值:a=10,b=5print(a,b)#打印結(jié)果:105a,b=b,a#序列賦值完成值交換:a=b,b=aprint(a,b)#打印結(jié)果:510示例2-122.2.1運(yùn)算符312.2.1運(yùn)算符31in:檢查一個(gè)數(shù)據(jù)是否存在于某個(gè)數(shù)據(jù)容器中存在:結(jié)果為T(mén)rue不存在:結(jié)果為False5.成員運(yùn)算符in31fruits=['apple','banana','cherry']#列表print('apple'infruits)

#Trueprint('mange'infruits)

#False示例2-13notin:檢查一個(gè)數(shù)據(jù)是否不存在于某個(gè)數(shù)據(jù)容器中不存在:結(jié)果為T(mén)rue存在:結(jié)果為False5.成員運(yùn)算符in31fruits=['apple','banana','cherry']#列表print('apple'notinfruits)

#Falseprint('mange'notinfruits)

#True示例2-132.2.1運(yùn)算符312.2.1運(yùn)算符31is:比較兩個(gè)操作數(shù)是否為同一個(gè)對(duì)象is比較的是對(duì)象的內(nèi)存地址==比較兩個(gè)對(duì)象的值是否相等326.身份運(yùn)算符isa=1000b=ac=1000print(aisb)print(aisc)

a=[1,3,5]b=aprint(aisb)

a=[1,3,5]b=[1,3,5]print(aisb)print(a==b)

不可變類(lèi)型若進(jìn)行了優(yōu)化,相同值的變量引用的是同一個(gè)對(duì)象可變類(lèi)型空間獨(dú)立——a、b不同對(duì)象a和b的值確實(shí)是一樣的a賦值給b,相當(dāng)于a引用對(duì)象取新別名——a和b引用同一個(gè)對(duì)象2.2.1運(yùn)算符322.2.1運(yùn)算符32a=10327.位運(yùn)算符運(yùn)算符示例結(jié)果按位與&a&22按位或|a|210按位異或^a^28按位取反~a~2-11左移<<a<<240右移>>a>>22表達(dá)式:使用運(yùn)算符將操作數(shù)組合在一起以形成值的計(jì)算過(guò)程算術(shù)表達(dá)式邏輯表達(dá)式比較表達(dá)式……用于實(shí)現(xiàn)各種計(jì)算和邏輯,包括但不限于數(shù)學(xué)計(jì)算、字符串處理、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)等2.2.2表達(dá)式332.2.2表達(dá)式33x=10#這是一個(gè)條件表達(dá)式,如果x大于5,則執(zhí)行if塊內(nèi)的代碼ifx>5:print('x大于5')示例2-17Q:數(shù)學(xué)關(guān)系式2<x≤10,Python表達(dá)式寫(xiě)作?測(cè)一測(cè)A:2<x&&x<=10B:2<xandx<=10C:2<x<=10D:x>2orx<=10Python支持鏈?zhǔn)奖容^,隱式地按照邏輯與(and)評(píng)估該條件每天進(jìn)步5‰一年后能達(dá)到什么狀態(tài)?每天退步5‰一年后還剩下多少?33不積跬步,無(wú)以至千里;不積小流,無(wú)以成江海?!盾髯印駥W(xué)》實(shí)戰(zhàn)2-1:跬步千里變量的使用:變量代替字面量數(shù)據(jù)使用更加靈活33實(shí)戰(zhàn)2-1:跬步千里#初始化變量power=1growth_rate=0.005#每天進(jìn)步千分之五decline_rate=0.01#每天退步百分之一days=365#變化的天數(shù)參考代碼

33實(shí)戰(zhàn)2-1:跬步千里#計(jì)算進(jìn)步情況final_growth=power*(1+growth_rate)**days#計(jì)算退步情況final_decline=power*(1-decline_rate)**days參考代碼輸出信息:print()33實(shí)戰(zhàn)2-1:跬步千里#輸出結(jié)果print('每天進(jìn)步5‰一年后:',final_growth)print('每天退步1%一年后:',

final_decline)參考代碼Python語(yǔ)言格式框架01020403運(yùn)算符與表達(dá)式基本輸入輸出模塊的使用目

錄基本輸入輸出0304模塊的使用目

錄Python語(yǔ)言格式框架0102運(yùn)算符與表達(dá)式input()print()input():接收用戶(hù)輸入的數(shù)據(jù)程序暫停在input()這一行,等待用戶(hù)輸入用戶(hù)輸入數(shù)據(jù)、按下回車(chē)后,程序繼續(xù)執(zhí)行input()將輸入數(shù)據(jù)作為“字符串”返回,通過(guò)“=”存在變量中后續(xù)可通過(guò)該變量使用輸入數(shù)據(jù)“提示字符串”可選,用于提示需要輸入什么數(shù)據(jù)342.3.1input()變量=input([提示字符串])342.3.1input()s=input('請(qǐng)輸入一個(gè)整數(shù):')#假設(shè)輸入數(shù)據(jù):12

num=int(s)ifnum%2==0:print('偶數(shù)')else:print('奇數(shù)')示例2-17print():將數(shù)據(jù)打印在終端顯示打印字符串打印多個(gè)數(shù)據(jù)格式化輸出352.3.2print()打印字符串352.3.2print()print('Hello,Python!')#打印結(jié)果:Hello,Python!a='Good'b='day!'int(a+b)#打印結(jié)果:Goodday!示例2-18打印多個(gè)數(shù)據(jù)352.3.2print()name='張三'age=18print('我的名字是',name,age,'歲')示例2-19格式化輸出:處理待輸出字符串中不確定的數(shù)據(jù)時(shí)使用格式化字符串:顯示在終端的字符串,包含占位符占位符:特殊的格式化代碼,指定如何顯示數(shù)據(jù)%d:用于格式化整數(shù)類(lèi)型的數(shù)據(jù)%f:用于格式化浮點(diǎn)數(shù)類(lèi)型的數(shù)據(jù)%s:用于格式化字符串類(lèi)型的數(shù)據(jù)352.3.2print()print(格式化字符串%格式化變量)格式化輸出352.3.2print()price=float(input('請(qǐng)輸入蛋糕單價(jià):'))num=int(input('請(qǐng)輸入蛋糕個(gè)數(shù):'))payable=price*num#單價(jià)*個(gè)數(shù):計(jì)算應(yīng)付金額print('蛋糕%.2f/個(gè),共%d個(gè)'%(price,num))print('應(yīng)支付:%.2f元'%payable)示例2-20設(shè)置特殊參數(shù),改變print()默認(rèn)行為end:改變末尾自動(dòng)輸出的結(jié)束符362.3.2print()print('Hello')print('World')print('Hello',end='')print('World')示例2-21設(shè)置特殊參數(shù),改變print()默認(rèn)行為sep:改變打印多個(gè)數(shù)據(jù)時(shí),默認(rèn)添加的分隔符362.3.2print()name='張三'print('我的名字是',name)print('我的名字是',name,sep=':')示例2-22input()和print()的使用if語(yǔ)句的簡(jiǎn)單應(yīng)用36實(shí)戰(zhàn)2-2:文字西游歡迎界面input()和print()的使用37實(shí)戰(zhàn)2-2:文字西游歡迎界面#輸出歡迎信息和游戲介紹print("歡迎來(lái)到文字西游!")print("版本:1.0")print("這是一個(gè)用文字描述的西游冒險(xiǎn)游戲,你將扮演一位英雄踏上西行之旅。")#提供開(kāi)始游戲選項(xiàng)choice=input("請(qǐng)輸入'start'開(kāi)始游戲,或輸入其他內(nèi)容退出:")參考代碼if語(yǔ)句的簡(jiǎn)單應(yīng)用37實(shí)戰(zhàn)2-2:文字西游歡迎界面#判斷玩家輸入ifchoice=='start':#獲取角色名字role_name=input('請(qǐng)輸入你的角色名字:')print('歡迎%s加入西游冒險(xiǎn)!'%role_name)print('游戲正式開(kāi)始!')else:print("感謝你的關(guān)注,期待下次與你相遇!")參考代碼Python語(yǔ)言格式框架01020403運(yùn)算符與表達(dá)式基本輸入輸出模塊的使用目

錄模塊的使用04目

錄Python語(yǔ)言格式框架0102運(yùn)算符與表達(dá)式03基本輸入輸出import關(guān)鍵字turtle庫(kù)模塊:一個(gè)包含Python代碼的文件包內(nèi)有多個(gè)代碼文件提供了定義好的變量、函數(shù)或類(lèi)實(shí)現(xiàn)了一些特定的功能作用組織和管理代碼可重用易維護(hù)2.4模塊38內(nèi)置模塊time、math、os、sqlite3、……第三方模塊numpy、matplotlib、scrapy、……模塊“導(dǎo)入”才能使用關(guān)鍵字:import2.4模塊38導(dǎo)入模塊中所有的內(nèi)容通過(guò)“模塊名.”前綴使用其中的對(duì)象2.4模塊38import模塊名[as模塊別名]importmathr=2.0print(r**2*math.pi)示例2-23別名的作用簡(jiǎn)化代碼避免模塊命名沖突提高代碼可維護(hù)性和可移植性2.4模塊38importmatplotlibaspltplt.title('SamplePlot')示例2-24導(dǎo)入模塊中指定的對(duì)象導(dǎo)入的對(duì)象可直接使用,不需要模塊名前綴2.4模塊38from模塊名import對(duì)象名[as對(duì)象別名]frommathimportradians#將30°轉(zhuǎn)換為弧度值result=radians(30)示例2-252.4模塊38import模塊名from模塊名import對(duì)象名引入名字空間是,更安全否引入全部?jī)?nèi)容是否,按需引入需要模塊名前綴是否,更簡(jiǎn)潔繪制一個(gè)花瓣長(zhǎng)200像素、紅邊黃底的太陽(yáng)花turtle庫(kù)的使用38實(shí)戰(zhàn)2-3:繪制太陽(yáng)花turtle:Python內(nèi)置模塊之一,用于繪制基本的圖形畫(huà)筆(小海龜)移動(dòng)畫(huà)筆的方法設(shè)置顏色的方法實(shí)戰(zhàn)2-3:繪制太陽(yáng)花38實(shí)戰(zhàn)2-3:繪制太陽(yáng)花39importturtle#導(dǎo)入turtle庫(kù)#設(shè)置繪制窗口的寬度和高度turtle.setup(width=600,height=600)

turtle.penup()

#抬起畫(huà)筆#移動(dòng)畫(huà)筆到坐標(biāo)(-150,50)作為起始點(diǎn)turtle.goto(-150,50)

turtle.pendown()

#落下畫(huà)筆示例2-26實(shí)戰(zhàn)2-3:繪制太陽(yáng)花39#畫(huà)筆藍(lán)色,填充黃色turtle.color('blue','yellow')turtle.begin_fill()

#開(kāi)始填充foriinrange(5):turtle.fd(300)

#沿當(dāng)前方向前進(jìn)300像素turtle.right(144)

#向右旋轉(zhuǎn)144度turtle.end_fill()

#結(jié)束填充turtle.done()

#保持繪制窗口一直打開(kāi)示例2-27實(shí)踐要點(diǎn)模塊導(dǎo)入和使用:正確導(dǎo)入turle庫(kù)并使用其中的對(duì)象循環(huán)結(jié)構(gòu):通過(guò)for循環(huán)重復(fù)繪制太陽(yáng)花的花瓣編碼與調(diào)試查閱文檔40實(shí)戰(zhàn)2-3:繪制太陽(yáng)花實(shí)戰(zhàn)2-3:繪制太陽(yáng)花importturtleturtle.color('red','yellow')turtle.hideturtle()turtle.begin_fill()foriinrange(36):turtle.fd(400)turtle.right(170)turtle.end_fill()turtle.done()參考代碼本章結(jié)束Python程序設(shè)計(jì)第3章Python控制結(jié)構(gòu)學(xué)習(xí)目標(biāo)理解Python選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、異常處理的使用場(chǎng)景掌握選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、異常處理的語(yǔ)法知識(shí)目標(biāo)能夠正確分析控制結(jié)構(gòu)的執(zhí)行結(jié)果能夠選擇合適的控制結(jié)構(gòu)處理實(shí)際問(wèn)題能力目標(biāo)計(jì)劃與執(zhí)行力的重要性良好的防御性編碼習(xí)慣情感態(tài)度與價(jià)值觀選擇結(jié)構(gòu):if語(yǔ)句01020403循環(huán)結(jié)構(gòu):while/for循環(huán)結(jié)構(gòu):進(jìn)階使用異常與異常處理目

錄選擇結(jié)構(gòu):if語(yǔ)句01020403循環(huán)結(jié)構(gòu):while/for循環(huán)結(jié)構(gòu):進(jìn)階使用異常與異常處理目

錄單分支結(jié)構(gòu)雙分支結(jié)構(gòu)多分支結(jié)構(gòu)結(jié)構(gòu)化程序設(shè)計(jì)三大控制結(jié)構(gòu)45順序結(jié)構(gòu)選擇結(jié)構(gòu)條件成立YesNo循環(huán)結(jié)構(gòu)條件成立NoYes自上而下不可兼得重復(fù)執(zhí)行根據(jù)特定條件,有選擇的執(zhí)行某些代碼關(guān)鍵字ifelifelse3.1選擇結(jié)構(gòu)45當(dāng)某項(xiàng)條件滿足時(shí)就必須執(zhí)行某項(xiàng)操作,不需要考慮條件成立之外的情況由一個(gè)if語(yǔ)句構(gòu)成3.1.1單分支結(jié)構(gòu)45if條件表達(dá)式:代碼塊判斷用戶(hù)輸入的數(shù)字是否為偶數(shù),如果是,則打印“偶數(shù)”,然后程序結(jié)束不需要處理非偶數(shù)的情況-->單分支結(jié)構(gòu)3.1.1單分支結(jié)構(gòu)46a=int(input('請(qǐng)輸入一個(gè)整數(shù):'))ifa%2==0:print('偶數(shù)')示例3-1易錯(cuò)1:遺漏冒號(hào)易錯(cuò)2:縮進(jìn)錯(cuò)誤同時(shí)考慮條件成立、不成立時(shí)各需要執(zhí)行哪些操作3.1.2雙分支結(jié)構(gòu)46if條件表達(dá)式:代碼塊1else:代碼塊2判斷用戶(hù)輸入數(shù)字奇偶性為偶數(shù),則打印“偶數(shù)”,為奇數(shù),則打印“奇數(shù)”3.1.2雙分支結(jié)構(gòu)47a=int(input('請(qǐng)輸入一個(gè)整數(shù):'))ifa%2==0:print('偶數(shù)')eles:print('奇數(shù)')示例3-2雙分支條件表達(dá)式3.1.2雙分支結(jié)構(gòu)47a=int(input('請(qǐng)輸入一個(gè)整數(shù):'))result='偶數(shù)'ifa%2==0else'奇數(shù)'print(result)示例3-3表達(dá)式1if條件表達(dá)式else表達(dá)式2條件成立返回表達(dá)式1的值條件不成立返回表達(dá)式2的值兩個(gè)以上互斥條件時(shí)使用-->“多選一”3.1.3多分支結(jié)構(gòu)47if條件表達(dá)式1:代碼塊1elif條件表達(dá)式2:代碼塊2[else:代碼塊3]溫度值-->狀態(tài)3.1.3多分支結(jié)構(gòu)48temperature=25

iftemperature>=30:status='熱'eliftemperature<10:status='冷'else:status='適中'

print('溫度%d對(duì)應(yīng)的狀態(tài)是%s'%(temperature,status))示例3-4可以有多個(gè)elif分支3.1.3多分支結(jié)構(gòu)48ifscore>=90:grade='優(yōu)'elifscore>=80:grade='良'elifscore>=70:grade='中等'elifscore>=60:grade='合格'else:grade='不合格'示例3-5條件互斥能走到“score>=80”說(shuō)明“score>=90”一定滿足多分支結(jié)構(gòu)嵌套分支結(jié)構(gòu)實(shí)戰(zhàn)3-1:折扣計(jì)算49高級(jí)會(huì)員≥10其他

8折9折普通會(huì)員≥10其他85折95折≥5件85折input():增加程序靈活性49實(shí)戰(zhàn)3-1:折扣計(jì)算#初始化變量original_price=float(input('請(qǐng)輸入商品原價(jià):'))quantity=float(input("請(qǐng)輸入購(gòu)買(mǎi)數(shù)量:"))membership_level=input("請(qǐng)輸入會(huì)員等級(jí)(高級(jí)會(huì)員/普通會(huì)員/非會(huì)員):")discount=1#折扣默認(rèn)值為1,表示不打折參考代碼選擇結(jié)構(gòu)的運(yùn)用50實(shí)戰(zhàn)3-1:折扣計(jì)算ifmembership_level=='高級(jí)會(huì)員':ifquantity>=10:discount=0.8#高級(jí)會(huì)員購(gòu)買(mǎi)10件以上8折elifquantity>=5:discount=0.85#高級(jí)會(huì)員購(gòu)買(mǎi)5-9件8.5折else:discount=0.9#高級(jí)會(huì)員購(gòu)買(mǎi)1-4件9折elifmembership_level=='普通會(huì)員':ifquantity>=10:discount=0.85#普通會(huì)員購(gòu)買(mǎi)10件以上8.5折else:discount=0.95#普通會(huì)員購(gòu)買(mǎi)1-9件9.5折參考代碼計(jì)算應(yīng)付金額50實(shí)戰(zhàn)3-1:折扣計(jì)算final_price=original_price*discount*quantityprint('應(yīng)付金額為:%.2f元'%final_price)參考代碼選擇結(jié)構(gòu):if語(yǔ)句01020403循環(huán)結(jié)構(gòu):while/for循環(huán)結(jié)構(gòu):進(jìn)階使用異常與異常處理目

錄循環(huán)結(jié)構(gòu):while/for020403循環(huán)結(jié)構(gòu):進(jìn)階使用異常與異常處理目

錄選擇結(jié)構(gòu):if語(yǔ)句01while循環(huán)break與continuefor...in循環(huán)特定條件下重復(fù)執(zhí)行一段代碼避免代碼冗余關(guān)鍵字whilefor...in3.2循環(huán)結(jié)構(gòu)50循環(huán)結(jié)構(gòu)條件成立NoYes條件表達(dá)式為真時(shí)重復(fù)執(zhí)行一段代碼塊條件表達(dá)式后面的冒號(hào)重復(fù)執(zhí)行的代碼塊(即循環(huán)體)要相對(duì)于所屬的while縮進(jìn)3.2.1while循環(huán)50while條件表達(dá)式:代碼塊重要:循環(huán)變量的使用書(shū)寫(xiě)條件表達(dá)式循環(huán)體中如何改變?yōu)榕紨?shù),則打印“偶數(shù)”,為奇數(shù),則打印“奇數(shù)”3.2.1while循環(huán)51i=2#既是循環(huán)變量,又是求和的參數(shù)result=1#記錄和值whilei<=100:result+=ii+=1

print(result)示例3-6使用不當(dāng)死循環(huán)模擬存錢(qián)罐當(dāng)“罐內(nèi)硬幣數(shù)量與新存入硬幣數(shù)量之和小于或等于存錢(qián)罐容量上限”時(shí)允許存入3.2.1while循環(huán)51limit=500save=0balance=int(input('請(qǐng)輸入新存入硬幣數(shù)量:'))whilesave+balance<=limit:save+=balanceprint('現(xiàn)有硬幣:%d,上限:%d,剩余:%d'%(save,balance,limit-save))balance=int(input('存入硬幣數(shù)量:'))示例3-7作用:提前結(jié)束循環(huán)行為break:退出當(dāng)前循環(huán),繼續(xù)執(zhí)行后面的語(yǔ)句continue:跳至while/for判斷要不要進(jìn)入下一次循環(huán)3.2.2break和continue52i=1whilei<=5:ifi==3:continueprint(i)i+=1示例3-9i=1whilei<=5:ifi==3:breakprint(i)i+=1示例3-8應(yīng)用1:遍歷并處理可迭代對(duì)象的元素3.2.3for循環(huán)52按照某種順序逐個(gè)訪問(wèn)對(duì)象中每一項(xiàng)內(nèi)容的過(guò)程iterable,Python中支持元素遍歷的對(duì)象,包括序列、集合、字典、生成器等f(wàn)or循環(huán)變量in可迭代對(duì)象:代碼塊應(yīng)用1:遍歷并處理可迭代對(duì)象的元素3.2.3for循環(huán)53for循環(huán)變量in可迭代對(duì)象:代碼塊列表元素求和3.2.3for循環(huán)53list1=[3,4,0,-1,7]result=0foreinlist1:result+=eprint(result)示例3-10list1=[3,4,0,-1,7]i,result=0whilei<len(list1):result+=list1[i]i+=1應(yīng)用2:實(shí)現(xiàn)明確次數(shù)的循環(huán)range()3.2.3for循環(huán)54用法說(shuō)明示例range(n)生成[0,n]范圍內(nèi)的n個(gè)整數(shù)range(5)-->序列:0,1,2,3,4range(m,n)生成[m,n-1]范圍內(nèi)的n-m個(gè)整數(shù)range(1,5)-->序列:1,2,3,4range(m,n,step)以step為步長(zhǎng),生成[m,n-1]范圍內(nèi)的整數(shù)序列range(1,10,3)-->序列:1,4,7[1,100]整數(shù)求和3.2.3for循環(huán)54result=0foriinrange(1,101):result+=i示例3-1214天短期投資回報(bào)計(jì)算3.2.3for循環(huán)54result=100000.00#收益,初始值為本金10萬(wàn)rate=0.0385/365#日利率foriinrange(14):result=result+result*rate示例3-13不一定要在循環(huán)體中使用循環(huán)變量應(yīng)用3:同時(shí)遍歷多個(gè)可迭代對(duì)象3.2.3for循環(huán)54list1=[1,2,3]list2=['a','b','c']fornum,charinzip(list1,list2):print(num,char)示例3-14應(yīng)用3:同時(shí)遍歷多個(gè)可迭代對(duì)象3.2.3for循環(huán)55list1=['a','b','c']forindex,valueinenumerate(list1):print(index,value)示例3-15選擇結(jié)構(gòu):if語(yǔ)句01020403循環(huán)結(jié)構(gòu):while/for循環(huán)結(jié)構(gòu):進(jìn)階使用異常與異常處理目

錄循環(huán)結(jié)構(gòu):進(jìn)階使用0304異常與異常處理目

錄選擇結(jié)構(gòu):if語(yǔ)句0102循環(huán)結(jié)構(gòu):while/forelse子句嵌套循環(huán)while/for可以帶一個(gè)else子句,循環(huán)正常結(jié)束時(shí)進(jìn)入while循環(huán):當(dāng)循環(huán)條件不滿足而退出循環(huán)后會(huì)進(jìn)入for循環(huán):當(dāng)可迭代對(duì)象的所有元素遍歷完而退出循環(huán)后進(jìn)入因break退出循環(huán)不會(huì)進(jìn)入else分支主要用途:收尾工作,如打印信息、記錄日志等3.2.4else子句55else子句使用3.2.4else子句55list1=[1,2,3,-1,-2,4]

fornuminlist1:ifnum<=0:print('列表中含有非正數(shù)元素')breakelse:print('列表中所有元素均為正數(shù)')print('測(cè)試結(jié)束')示例3-16嵌套循環(huán):在一個(gè)循環(huán)內(nèi)部放置另一個(gè)循環(huán)九九乘法表3.2.5

嵌套循環(huán)56foriinrange(1,10):forjinrange(1,i+1):

print('%d*%d=%d'%(i,j,i*j),end='\t')print()#換到新的一行示例3-17選擇結(jié)構(gòu):if語(yǔ)句01020403循環(huán)結(jié)構(gòu):while/for循環(huán)結(jié)構(gòu):進(jìn)階使用異常與異常處理目

錄異常與異常處理04目

錄選擇結(jié)構(gòu):if語(yǔ)句0102循環(huán)結(jié)構(gòu):while/for03循環(huán)結(jié)構(gòu):進(jìn)階使用異常的概念和類(lèi)型異常的捕獲異常的處理異常:Python程序執(zhí)行期間發(fā)生的一個(gè)特殊錯(cuò)誤,它會(huì)中斷正常的程序流程,讓程序停止運(yùn)行異常處理:確保程序在出現(xiàn)異常時(shí)能夠得到處理,而不是直接終止運(yùn)行3.3.1

異常的概念與類(lèi)型62異常測(cè)試:除數(shù)為0的異常3.3.1

異常的概念與類(lèi)型63total_cost=float(input('請(qǐng)輸入總價(jià)格:'))total_weight=float(input('請(qǐng)輸入總重量:'))print('單價(jià):%.2f'%(total_cost/total_weight))print('計(jì)算完成')示例3-20異常類(lèi):Python將導(dǎo)致程序終止執(zhí)行的異常情況封裝為不同的類(lèi),通過(guò)命名表明其錯(cuò)誤原因3.3.1

異常的概念與類(lèi)型64異常類(lèi)說(shuō)明異常類(lèi)說(shuō)明BaseException所有異常類(lèi)的基類(lèi)SyntaxError語(yǔ)法錯(cuò)誤除法AttributeError訪問(wèn)對(duì)象沒(méi)有的屬性觸發(fā)TypeError不適當(dāng)?shù)牟僮鲗?duì)象觸發(fā)IndexError訪問(wèn)序列不存在的索引觸發(fā)ValueError函數(shù)參數(shù)無(wú)效觸發(fā)KeyError訪問(wèn)字典不存在的鍵觸發(fā)IOError輸入輸出錯(cuò)誤IndentationError縮進(jìn)錯(cuò)誤NameError訪問(wèn)沒(méi)有定義的變量觸發(fā)try結(jié)構(gòu):先捕獲要處理的異常對(duì)象,再進(jìn)行處理3.3.2

異常的捕獲與處理64try:#嘗試執(zhí)行的代碼塊except[異常類(lèi)型as對(duì)象別名]:#處理異常的語(yǔ)句塊eles:#try塊順利完成后需要執(zhí)行的語(yǔ)句塊finally:#不論是否發(fā)生異常最終都要執(zhí)行的語(yǔ)句塊try...except:Python捕獲處理異常的基本結(jié)構(gòu)3.3.2

異常的捕獲與處理64try:#嘗試執(zhí)行的語(yǔ)句except:#異常處理語(yǔ)句將嘗試執(zhí)行的語(yǔ)句放在try塊中try中沒(méi)有發(fā)生異常,不執(zhí)行任何異常處理程序一旦發(fā)生異常,程序?qū)?chuàng)建相應(yīng)異常類(lèi)型的對(duì)象拋出except分支捕獲其后指定類(lèi)型的異常對(duì)象,如果沒(méi)有指定則捕捉所有類(lèi)型進(jìn)入except分支處理try塊中發(fā)生異常之后的語(yǔ)句不會(huì)再執(zhí)行try...except捕獲處理所有異常3.3.2

異常的捕獲與處理65try:total_cost=float(input('請(qǐng)輸入總價(jià)格:'))total_weight=float(input('請(qǐng)輸入總重量:'))print('單價(jià):%.2f'%(total_cost/total_weight))except:

print('發(fā)生異常!')print('計(jì)算完成')示例3-21try...多個(gè)except處理不同異常3.3.2

異常的捕獲與處理65try:total_cost=float(input('請(qǐng)輸入總價(jià)格:'))total_weight=float(input('請(qǐng)輸入總重量:'))print('單價(jià):%.2f'%(total_cost/total_weight))exceptZeroDivisionErrorase:print('總重量不能為0:%s'%e.args[0])exceptValueErrorase:print('輸入的數(shù)據(jù)無(wú)法轉(zhuǎn)換為數(shù)字:%s'%e.args[0])exceptBaseExceptionase:print('其他異常:%s'%e.args[0])print('計(jì)算完成')示例3-22finally塊:用于無(wú)論是否引發(fā)異常都要執(zhí)行的操作else塊:處理程序正常執(zhí)行的情況下,完成一些額外的操作3.3.2

異常的捕獲與處理66try塊except塊else塊finally塊發(fā)生異常無(wú)異常無(wú)異常無(wú)elseelse和finally的使用3.3.2

異常的捕獲與處理66try:total_cost=float(input('請(qǐng)輸入總價(jià)格:'))total_weight=float(input('請(qǐng)輸入總重量:'))price=total_cost/total_weightexceptZeroDivisionErrorase:print('總重量不能為0:%s'%e.args[0])exceptBaseExceptionase:print('其他異常:%s'%e.args[0])else:print('單價(jià):%.2f'%price)finally:print('本次任務(wù)結(jié)束')示例3-23本章結(jié)束Python程序設(shè)計(jì)第4章

序列、集合與字典學(xué)習(xí)目標(biāo)理解數(shù)據(jù)容器應(yīng)用場(chǎng)景掌握常用容器對(duì)象的創(chuàng)建和操作知識(shí)目標(biāo)能夠使用常用容器存儲(chǔ)和操作數(shù)據(jù)能夠正確選擇容器解決實(shí)際問(wèn)題能力目標(biāo)追求創(chuàng)新,避免重復(fù)造車(chē)輪個(gè)人職責(zé)的重要性團(tuán)隊(duì)協(xié)作與組織的重要性情感態(tài)度與價(jià)值觀什么是數(shù)據(jù)容器01020403序列集合字典目

錄什么是數(shù)據(jù)容器01020403序列集合字典目

錄數(shù)據(jù)容器的概念數(shù)據(jù)容器:可以存儲(chǔ)多個(gè)數(shù)據(jù)項(xiàng)的復(fù)合數(shù)據(jù)類(lèi)型序列:字符串、列表、元組集合字典每種容器都有其特定的方法,應(yīng)根據(jù)具體的應(yīng)用場(chǎng)景和需求,選擇合適的容器什么是數(shù)據(jù)容器71什么是數(shù)據(jù)容器01020403序列集合字典目

錄序列020403集合字典目

錄什么是數(shù)據(jù)容器01字符串列表元組切片序列:存儲(chǔ)有序的元素集合字符串列表元組4.1序列71元素按插入的順序排列位置關(guān)系固定通過(guò)索引訪問(wèn)任意元素正數(shù)索引:左->右負(fù)數(shù)索引:右->左字符串:零個(gè)或多個(gè)字符組成的有序字符序列多行注釋?zhuān)喝?hào)對(duì)''''''""""""字符串字面量:?jiǎn)我?hào)/雙引號(hào)對(duì)'good'"100"注意:Python中單個(gè)字符也是字符串4.1.1字符串71字符串變量的定義4.1.1字符串72language='Python'author='GuidovanRossum'示例4-1變量=字符串字面量字符串變量的訪問(wèn)4.1.1字符串72info='hello'print(info)

#打印整個(gè)字符串print(info[1]) #打印info第二個(gè)字符(從左往右計(jì)數(shù))print(info[-2]) #打印info第二個(gè)字符(從右往左計(jì)數(shù))info[0]='H'

#錯(cuò)誤:不可以修改已經(jīng)創(chuàng)建的字符串中的字符info='Hello' #正確示例4-2字符串格式化%f-string字符串方法format()4.1.1字符串72常用占位符%d%f%s占位符:{}字符串格式化:f-string在字符串前加上字母“f”或“F”,可以將花括號(hào)“{}”內(nèi)的表達(dá)式作為字符串的格式化參數(shù)4.1.1字符串72name='張三'age=18print(f'{name}今年{age}歲')#直接使用變量的值替換{}

a=5b=10print(f'a+b={a+b}')#用a+b的值替換{}

m=2.99print(f'梨子{m:.2f}元/斤')#冒號(hào)后面是指定的格式示例4-3字符串格式化:format()4.1.1字符串73#按實(shí)際參數(shù)出現(xiàn)的順序逐個(gè)填入占位符name='張三'age=18print('{}今年{}歲'.format(name,age))示例4-4<模板字符串>.format(<逗號(hào)分隔的實(shí)際參數(shù)>)字符串格式化:format()4.1.1字符串73#按實(shí)際參數(shù)的位置索引填入相應(yīng)的占位符var='{0}9元一斤,{1}10元四斤,{0}和{1}各買(mǎi)一斤多少錢(qián)?'print(var.format('蘋(píng)果','桃子'))

#按關(guān)鍵參數(shù)填入相應(yīng)的值var='小明今年{age}歲,正在讀{school}。'print(var.format(age=17,school='高中'))示例4-4<模板字符串>.format(<逗號(hào)分隔的實(shí)際參數(shù)>)字符串運(yùn)算+:連接左右兩個(gè)字符串*:將字符串重復(fù)N次,字符串為左操作數(shù),N為右操作數(shù)4.1.1字符串73str1='Hello,'str2='World!'result=str1+str2#打印結(jié)果:Hello,World!str1='abc'result=str1*3#打印結(jié)果:abcabcabc示例4-5、4-6Python提供一些內(nèi)置函數(shù)處理字符串len():獲取字符串長(zhǎng)度4.1.1字符串73str1='abc'print(len(str1))#打印結(jié)果:3示例4-7函數(shù)名(待處理對(duì)象)len()也可用于其他數(shù)據(jù)容器,獲取容器內(nèi)元素個(gè)數(shù)chr():獲取ASCII碼對(duì)應(yīng)的單個(gè)字符ord():獲取單字符的ASCII碼4.1.1字符串74x=123print(chr(x))#打印結(jié)果:{x='1'print(ord(x))#打印結(jié)果:49示例4-8、4-9字符串方法split()strip()join()find()……4.1.1字符串74字符串對(duì)象.方法名(參數(shù))split():根據(jù)指定的分隔符,將字符串拆分成多個(gè)子字符串,并返回一個(gè)包含這些子字符串的列表sep:可選,指定分隔符字符串,如果不提供或?yàn)榭兆址?,默認(rèn)使用空白符,包括空格、制表符、回車(chē)符等maxsplit:可選,指定最大拆分次數(shù)4.1.1字符串74字符串對(duì)象.split([sep,maxsplit])split()使用4.1.1字符串74#使用默認(rèn)分隔符(空白符)str1='HelloWorldfromPython'result=str1.split()print(result)#輸出:['Hello','World','from','Python']#指定分隔符(,)str1='apple,banana,orange'result=str1.split(',')print(result)#輸出:['apple','banana','orange']示例4-10split()使用4.1.1字符串74#指定最大切分次數(shù)為2str1='apple,banana,orange,grape'result=str1.split(',',2)print(result)#輸出:['apple','banana','orange,grape']示例4-10strip():刪除字符串開(kāi)頭和結(jié)尾的指定字符chars:可選,指定要?jiǎng)h除的字符,如果不提供或?yàn)榭兆址?,默認(rèn)刪除空白符4.1.1字符串75字符串對(duì)象.strip([chars])strip()使用4.1.1字符串75#刪除頭尾空白符str1='Hello,

溫馨提示

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

評(píng)論

0/150

提交評(píng)論