




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Python程序設計第1章Python概述與環境配置全套可編輯PPT課件第1章-Python概述與環境配置第2章-Python語法基礎第3章-Python控制結構第4章-序列、集合與字典第5章-Python自定義函數第6章-Python文件操作第7章-Python面向對象編程第8章-PythonGUI編程第9章-Python數據庫編程學習目標了解Python特點與應用理解Python交互式編程和腳本編程知識目標能夠安裝Python開發環境能夠使用pip管理第三方庫能夠選擇合適的IDE進行后續課程學習能力目標認真治學的態度當代大學生的社會責任和擔當精神程序員職業觀情感態度與價值觀Python概述01020403Python開發環境Python編程方式PythonIDE目
錄Python概述01020403Python開發環境Python編程方式PythonIDE目
錄Python歷史和現狀Python語言特點Python應用領域Python起源作者:荷蘭程序員GuidovanRossum時間:1991年發展條件硬件技術的突破->關注語言易用性互聯網的普及->開源軟件、Python社區形成版本Python2.x:歷史版本Python3.x:當前主流版本,不兼容2.x1.1.1Python歷史和現狀2開源、跨平臺、解釋型的高級編程語言簡單易學面向對象可移植性豐富的庫可擴展性可嵌入性1.1.2Python特點3Web開發:Django、Flask、Tornado游戲開發:PySoy、pygame桌面應用程序:tkinter、wxPython、PyQt網絡爬蟲:requests、scrapy、pyspider數據庫:sqlite3、pyodbc云計算:OpenStack自動化:Ansible、SaltStack、Selenium科學計算與數據分析:NumPy、Matplotlib機器學習與人工智能:TensorFlow、PyTorch1.1.3Python應用領域4Python概述01020403Python開發環境Python編程方式PythonIDE目
錄Python開發環境020403Python編程方式PythonIDE目
錄Python概述01Python下載與安裝Python擴展包管理Step1:進入官網()對應操作系統的下載頁面1.2.1下載Python安裝包5Step2:選擇合適的版本1.2.1下載Python安裝包5雙擊python-3.12.0-amd64.exe啟動安裝1.2.2安裝Python5管理員權限加入Path環境變量默認安裝自定義安裝選擇“InstallNow”開始默認安裝1.2.2安裝Python6選擇“CustomizeInstallation”進入配置界面1.2.2安裝Python6離線開發文檔包管理工具tck/tk:GUI庫IDLE:開發工具測試套件Python啟動器為所有用戶安裝點擊“Next”進入高級配置1.2.2安裝Python6為所有用戶安裝關聯Python源文件,需要安裝Py啟動器創建快捷方式第二次修改Path預編譯標準庫下載調試符號下載調試二進制文件修改安裝路徑安裝成功1.2.2安裝Python6安裝后的目錄文件1.2.2安裝Python7Python解釋器pip工具:Python擴展包管理工具從社區下載并安裝包至本地更新本地擴展包卸載本地擴展包1.3擴展包管理7pip要在命令行窗口中運行“Win+R”組合鍵調出“運行”窗口,輸入“cmd”后回車,打開命令行窗口【開始】菜單-【Windows系統】-【命令提示符】打開命令行窗口1.3.1安裝擴展包7pip安裝指令格式1.3.1安裝擴展包7pipinstall包名指定鏡像網站下載1.3.1安裝擴展包7pipinstall包名-i鏡像網站url--trusted-host域名pip
install
numpy
-i
/pypi/simple
--trusted-host
指定版本號下載1.3.1安裝擴展包8pipinstall包名==版本號pip
install
numpy==1.13.0使用離線安裝包1.3.1安裝擴展包8pipinstall已下載至本地的離線安裝文件pip
installnumpy-1.23.2-pp38-pypy38_pp73-win_amd64.whlpip卸載指令格式1.3.2卸載擴展包8pipuninstall包名pipuninstallnumpypip更新指令格式1.3.3更新擴展包8pipinstall--upgrade包名pip
install
--upgradenumpyPython概述01020403Python開發環境Python編程方式PythonIDE目
錄Python編程方式0304PythonIDE目
錄Python概述0102Python開發環境交互式編程腳本式編程Python是解釋型語言腳本式編程交互式編程1.4Python編程方式8Step1:在文本編輯軟件中編寫代碼1.4.1腳本式編程8任何文本編輯軟件都可以完成這項工作,上圖為Windows系統自帶的記事本工具Step2:將代碼保存為“*.py”的腳本文件1.4.1腳本式編程9Step3:在命令行中,啟動Python解釋器執行腳本文件1.4.1腳本式編程9python腳本文件完整路徑文件路徑可用英文雙引號括起來,避免因空格等符號導致的路徑解析錯誤如何進入交互式編程環境命令行窗口中輸入“python”然后回車1.4.2交互式編程9交互式環境下的命令提示符,等待輸入用戶在其后輸入Python語句,回車執行交互式編程適合調試和測試1.4.2交互式編程10輸入的Python語句執行后的結果Python概述01020403Python開發環境Python編程方式PythonIDE目
錄PythonIDE04目
錄Python概述0102Python開發環境03Python編程方式IDLE基本使用PyCharm基本使用集成開發環境(IDE,IntegratedDevelopmentEnvironment)代碼編輯器編譯器調試器……PythonIDEIDLE:Python開發環境自帶的IDEPyCharm:廣泛用于Python項目開發的IDE1.5Python集成開發環境10IDLE:Python自帶的IDE簡潔易用支持交互式編程和腳本式編程基本功能:代碼編輯、語法高亮、調試等1.5.1IDLE10IDLE默認進入交互編程模式1.5.1IDLE10IDLE的腳本編輯窗口【File】-【NewFile】打開“untitled”窗口開始編輯保存為“*.py”文件后,從【Run】-【RunModule】或按F5執行1.5.1IDLE11IDLE腳本執行結果顯示在主窗口中1.5.1IDLE11腳本執行結果PyCharm:JetBrains公司開發的專業IDE,提供社區版和專業版1.5.2PyCharm11安裝PyCharm:雙擊安裝程序進入向導窗口1.5.2PyCharm12安裝PyCharm:配置安裝路徑1.5.2PyCharm12安裝PyCharm:設置安裝選項1.5.2PyCharm13創建桌面圖標添加右鍵菜單添加文件關聯將bin/目錄添加到Path環境變量安裝PyCharm:設置開始菜單1.5.2PyCharm13安裝PyCharm:安裝結束,重啟完成1.5.2PyCharm13啟動PyCharm1.5.2PyCharm13項目入口基礎樣式設置插件管理學習資料修改基礎樣式1.5.2PyCharm14窗口主題窗口字體大小創建項目項目=文件夾,項目的腳本文件和子目錄都放在文件夾中每個項目都要指定一個Python解釋器,在PyCharm中運行項目時,自動調用該解釋器執行腳本1.5.2PyCharm14創建項目PyCharm啟動界面【Project】-【NewProject】,進入創建項目的向導窗口1.5.2PyCharm14項目存放位置使用已有的解釋器第一次使用需要配置1.5.2PyCharm15配置解釋器【AddInterpreter】-【AddLocalInterpreter】-【SystemInterpreter】如果沒有自動發現,點擊右側的“...”按鈕手動添加1.5.2PyCharm16配置好項目后,點擊“Create”創建新項目1.5.2PyCharm16新項目中添加子文件夾1231.5.2PyCharm17新項目中添加腳本文件1231.5.2PyCharm17雙擊腳本文件,在右側的代碼編輯區編寫程序代碼編輯區行號文件名1.5.2PyCharm18執行腳本執行腳本調試腳本1.5.2PyCharm19查看執行結果1.5.2PyCharm19PyCharm支持交互式編程本章結束Python程序設計第2章Python語法基礎學習目標識記Python語言格式框架識記基本要素語法規則理解動態類型與模塊知識目標能夠編寫符合Python風格的簡單程序能夠使用變量、表達式、基本輸入輸出進行簡單交互能力目標編程規范意識團隊協作的重要性日積月累的重要性情感態度與價值觀Python語言格式框架01020403運算符與表達式基本輸入輸出模塊的使用目
錄Python語言格式框架01020403運算符與表達式基本輸入輸出模塊的使用目
錄注釋、代碼塊與縮進保留關鍵字變量和常量數據類型解釋源代碼變量、函數等的作用復雜的算法邏輯提高可讀性、可維護性兩種注釋單行注釋多行注釋2.1.1注釋23獨占一行,或代碼之后1.單行注釋23#單行注釋文本#以下為矩形的參數rect_width=10#矩形的寬rect_height=15#矩形的高示例2-12.多行注釋24三個單引號對以上三種情況之外、解釋代碼用三個雙號對文檔字符串放在函數、類內部,或文件開頭解釋函數、類、文件的用法或作用"""
注釋文本
注釋文本"""'''
注釋文本
注釋文本'''2.多行注釋24"""第二章的源代碼示例包括:注釋常量與變量運算符與表達式數據類型"""defsay_hello(name):"""作用:和傳入的對象說Hello參數:name-打招呼的對象的名字"""print('Hello,',name)示例2-22.多行注釋24'''以下是可執行語句,首先定義了一個變量n,存放了一個名字“張三”,然后調用了函數say_hello(),并將n作為打招呼的對象傳給了參數name'''n='張三'say_hello(n)示例2-2代碼塊:也稱“復合語句”作為單元執行的代碼段,由一條或多條語句組成冒號+縮進:表示代碼塊的所屬關系2.1.2代碼塊與縮進24score=92ifscore>=90:print('優秀')print('再接再厲,勇攀高峰!')print('程序結束')示例2-3冒號:屬于某結構的代碼塊從下一行開始相同縮進量的語句組成代碼塊縮進量變化的語句脫離if代碼塊常用于選擇結構、循環結構函數體、類體空行不會影響代碼塊的所屬關系縮進可使用4個空格(推薦),或tab鍵(不推薦)2.1.2代碼塊與縮進24縮進可以嵌套2.1.2代碼塊與縮進25weather='sunny'temperature=25
ifweather=='sunny':iftemperature>30:
print('今天很熱,記得帶傘和防曬霜。')else:
print('今天很適合外出,享受陽光吧!')
示例2-42.1.3保留關鍵字25Python保留關鍵字andasassertbreakclasscontinuedefdelelifelseexceptFalsefinallyforfromglobalifimportinislambdaNonenonlocalnotorpassraisereturnTruetrywhilewithyieldasyncawait程序的本質:加工數據(算法+數據)Python對象:數據的載體類型值100:整數類型的一個對象'Hello':字符串類型的一個對象3.14:浮點數類型的一個對象2.1.4變量26Python變量:對象的引用(對象的“別名”)Python變量先定義、再使用某個變量名第一次出現時即為定義個新變量定義時要賦予初始值2.1.4變量26變量名=初始值name='張三'age=18apple_price=8.50示例2-5已定義的變量通過“=”可引用其他對象同一個變量可以引用不同類型的對象2.1.4變量26apple_price=8.50#高速優惠,運輸成本降低,蘋果降價了apple_price=7.99示例2-6已定義的變量=新對象標識符:用來命名變量、函數、類、模塊和其他程序元素的名稱必須以字母(a-z,A-Z)或下劃線(_)開頭,后面可跟任意個數字、字母或下劃線大小寫敏感Python的保留關鍵字不能用作標識符避免與內置或已導入的模塊名、函數名、對象名、類型名等重名變量命名遵循標識符命名規則2.1.4變量26Q:請判斷下列標識符的命名是否符合Python語法要求測一測var_Rabbit_car_no4logwhile推薦的命名方式以下劃線開頭的標識符在Python中有特殊含義不推薦使用漢字命名變量推薦使用有意義的單詞給標識符命名,多個單詞之間用下劃線連接is_enough、bottle_nums2.1.4變量26Python是強類型語言類型確定后,只能進行符合該類型約束的行為Python是動態類型語言無需顯式指定類型解釋器根據值自行判斷數據類型2.1.5數據類型27張三25歲2.5元/瓶4+2j2.1.5數據類型27數值類型int:表示整數數值,-100,0,2,99float:表示帶有小數部分的數值,-0.3,10.2complex:表示復數(實部和虛部),1+4jage=18temperature=36.4x=1+4j2.1.5數據類型27布爾類型(bool)表示邏輯值,有兩個取值:True:陳述成立,結果為真False:陳述不成立,結果為假用于選擇結構、循環結構a=int(input('請輸入一個整數:')result=(a%2==0)result=(a>100)2.1.5數據類型27數據容器包含一個或多個元素,每個元素都是獨立的數據提供對元素的各種操作,如增加元素、刪除元素、查找指定元素、排序等a='hello!'#a是一個字符串b=(1,-5,7)#b是一個元組c=[1,2,6]#c是一個列表d={'a','b','c'}#d是一個集合e={'right':4,'wrong':1}#e是一個字典、
2.1.5數據類型27空類型(NoneType)只有一個取值:None變量不指向任何值函數沒有明確的返回值#定義變量時但沒給它賦值,Python不會設置其值為Nonevarvar=None#錯誤!定義變量時必須給初始值!#但可以明確給變量賦值為None2.1.5數據類型27type():返回變量的實際類型type(變量)x=10print(type(x))#打印結果:<class'int'>示例2-72.1.5數據類型27Python中,通過內置函數將一種類型的數據,轉換成另一種類型的數據int():轉換為整數float():轉換為浮點數str():轉換為字符串bool():轉換為布爾值變量=轉換函數(變量)轉換數據類型2.1.5數據類型28#默認轉換為十進制,如需轉換為其他進制,可使用第2個參數指定#如int('F10',16)將字符串'F10'轉換為十六進制整數x=int('10')x=x+2s=str(x)
示例2-82.1.5數據類型28isinstance():測試對象是否為指定類型的實例,是返回True,不是則返回Falseisinstance(變量,類型名)x=10ifisinstance(x,str):print('是字符串')else:print('不是字符串')#打印結果:不是字符串示例2-92.1.6對象共享28變量B=變量A為變量A引用的對象創建了一個新的別名BA和B引用的是同一個對象a='Hello'b=ax=[1,2,3]y=xx[0]=0print(y)#打印結果:[0,2,3]示例2-10可變數據類型:通過一個變量所作的修改會反映在所有引用該對象的變量上2.1.6對象共享28id():返回一個對象的唯一標識符,是一個整數,通常代表著該對象的地址id(變量或字面量)x=10y=10print('10的地址:',id(10))print('x的地址:',id(x))print('y的地址:',id(y))示例2-112.1.6對象共享29不可變對象:int、float、str、tuple等,存儲會進行優化,兩個變量被賦予相同的值時,可能會讓它們引用同一個對象t1=(2,4,6)t2=(2,4,6)print('t1的地址:',id(t1))print('t2的地址:',id(t2))示例2-112.1.6對象共享(補充)Python提供小數據池對一些數據進行緩存,當程序引用這些數據時,不會創建新對象,而是引用小數據池里的對象,例如整數將緩存[-5,256]的整數避免頻繁創建和銷毀對象,提升效率2.1.6對象共享29可變對象:list、set、dict等,每個對象在內存中都有獨立的存儲空間l1=[1,3,5]l2=[1,3,5]print('l1的地址:',id(l1))print('l2的地址:',id(l2))示例2-11下列代碼片段中,x和y地址一樣的是?測一測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語言格式框架01020403運算符與表達式基本輸入輸出模塊的使用目
錄運算符與表達式020403基本輸入輸出模塊的使用目
錄Python語言格式框架01運算符表達式2.2.1運算符292.2.1運算符29%:求余數10%4:10除以4的余數,結果為2**:冪運算10**4:10的4次方,結果為10000/和///:真實除,返回實際的結果,為浮點數//:整除,將商向下取整后返回,如果兩個操作數都是整數則返回整數部分,否則返回實數301.算術運算符/和///:真實除,返回實際的結果,為浮點數//:整除,將商向下取整后返回,如果兩個操作數都是整數則返回整數部分,否則返回實數301.算術運算符10.5/2.110/210/2.010.0/25.05.05.05.010.4/210.4//211/211//25.255.55.0Q:整型變量x中存放了一個兩位數,如果要將其個位數與十位數互換,如“13”變成“31”,下列語句正確的是?測一測A:(x%10)//10+x//10
B:(x%10)*10+x//10
C:(x/10)%10+x//10
D:(x%10)*10+x%10
測一測A:c*d/(2*a*b)
B:c/2*d/a/bC:c*d/2*a*bD:c*d/2/a/b2.2.1運算符302.2.1運算符30對常量、變量或表達式的值進行比較比較成立返回True比較不成立返回False常用于選擇結構、循環結構的控制條件302.比較運算符a=int(input('請輸入第一個整數:')b=int(input('請輸入第二個整數:')print(a!=b)#由a和b的值,“a不等于b”成立嗎?302.比較運算符2.2.1運算符302.2.1運算符邏輯運算符對布爾值進行運算303.邏輯運算符運算符操作數取值not邏輯非1個notTrue:FalsenotFalse:Trueand邏輯與2個TrueandTrue:True其他:Falseor邏輯或2個FalseorFalse:False其他:True優先級:not>and>or操作數通常是一個bool表達式或bool變量常用于將多個條件組合在一起以形成更復雜的條件303.邏輯運算符a=int(input('請輸入第一個整數:')b=int(input('請輸入第二個整數:')ifb!=0anda>b:print(a/b)Q:右方代碼的執行結果是?x=Truey=Falsez=Falseprint(xoryandz)測一測A:true
B:TrueC:falseD:False2.2.1運算符302.2.1運算符30賦值運算符=:將右操作數的值賦予左操作數4.賦值運算符變量=字面量/變量/表達式/函數返回值a=100b=int(input('請輸入第二個整數:')c=a+bd=c復合賦值運算第一步:先計算“變量
其他運算符
右操作數”的值第二步:將第一步的結果賦值給變量314.賦值運算符變量
其他運算符=右操作數a=100a+=100a=a+100復合賦值運算的左操作數必須先定義Python不允許在if、while語句中賦值Python不提供++、--運算符,用+=、-=替代完成x+=1x-=14.賦值運算符31序列賦值:=右邊的值依次賦值給左邊的變量4.賦值運算符31變量1,
變量2,
...,
變量N=初值1,
初值2,
...,
初值Na,b=10,5#定義變量a、b并賦值:a=10,b=5print(a,b)#打印結果:105a,b=b,a#序列賦值完成值交換:a=b,b=aprint(a,b)#打印結果:510示例2-122.2.1運算符312.2.1運算符31in:檢查一個數據是否存在于某個數據容器中存在:結果為True不存在:結果為False5.成員運算符in31fruits=['apple','banana','cherry']#列表print('apple'infruits)
#Trueprint('mange'infruits)
#False示例2-13notin:檢查一個數據是否不存在于某個數據容器中不存在:結果為True存在:結果為False5.成員運算符in31fruits=['apple','banana','cherry']#列表print('apple'notinfruits)
#Falseprint('mange'notinfruits)
#True示例2-132.2.1運算符312.2.1運算符31is:比較兩個操作數是否為同一個對象is比較的是對象的內存地址==比較兩個對象的值是否相等326.身份運算符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)
不可變類型若進行了優化,相同值的變量引用的是同一個對象可變類型空間獨立——a、b不同對象a和b的值確實是一樣的a賦值給b,相當于a引用對象取新別名——a和b引用同一個對象2.2.1運算符322.2.1運算符32a=10327.位運算符運算符示例結果按位與&a&22按位或|a|210按位異或^a^28按位取反~a~2-11左移<<a<<240右移>>a>>22表達式:使用運算符將操作數組合在一起以形成值的計算過程算術表達式邏輯表達式比較表達式……用于實現各種計算和邏輯,包括但不限于數學計算、字符串處理、選擇結構、循環結構等2.2.2表達式332.2.2表達式33x=10#這是一個條件表達式,如果x大于5,則執行if塊內的代碼ifx>5:print('x大于5')示例2-17Q:數學關系式2<x≤10,Python表達式寫作?測一測A:2<x&&x<=10B:2<xandx<=10C:2<x<=10D:x>2orx<=10Python支持鏈式比較,隱式地按照邏輯與(and)評估該條件每天進步5‰一年后能達到什么狀態?每天退步5‰一年后還剩下多少?33不積跬步,無以至千里;不積小流,無以成江海。——《荀子·勸學》實戰2-1:跬步千里變量的使用:變量代替字面量數據使用更加靈活33實戰2-1:跬步千里#初始化變量power=1growth_rate=0.005#每天進步千分之五decline_rate=0.01#每天退步百分之一days=365#變化的天數參考代碼
33實戰2-1:跬步千里#計算進步情況final_growth=power*(1+growth_rate)**days#計算退步情況final_decline=power*(1-decline_rate)**days參考代碼輸出信息:print()33實戰2-1:跬步千里#輸出結果print('每天進步5‰一年后:',final_growth)print('每天退步1%一年后:',
final_decline)參考代碼Python語言格式框架01020403運算符與表達式基本輸入輸出模塊的使用目
錄基本輸入輸出0304模塊的使用目
錄Python語言格式框架0102運算符與表達式input()print()input():接收用戶輸入的數據程序暫停在input()這一行,等待用戶輸入用戶輸入數據、按下回車后,程序繼續執行input()將輸入數據作為“字符串”返回,通過“=”存在變量中后續可通過該變量使用輸入數據“提示字符串”可選,用于提示需要輸入什么數據342.3.1input()變量=input([提示字符串])342.3.1input()s=input('請輸入一個整數:')#假設輸入數據:12
num=int(s)ifnum%2==0:print('偶數')else:print('奇數')示例2-17print():將數據打印在終端顯示打印字符串打印多個數據格式化輸出352.3.2print()打印字符串352.3.2print()print('Hello,Python!')#打印結果:Hello,Python!a='Good'b='day!'int(a+b)#打印結果:Goodday!示例2-18打印多個數據352.3.2print()name='張三'age=18print('我的名字是',name,age,'歲')示例2-19格式化輸出:處理待輸出字符串中不確定的數據時使用格式化字符串:顯示在終端的字符串,包含占位符占位符:特殊的格式化代碼,指定如何顯示數據%d:用于格式化整數類型的數據%f:用于格式化浮點數類型的數據%s:用于格式化字符串類型的數據352.3.2print()print(格式化字符串%格式化變量)格式化輸出352.3.2print()price=float(input('請輸入蛋糕單價:'))num=int(input('請輸入蛋糕個數:'))payable=price*num#單價*個數:計算應付金額print('蛋糕%.2f/個,共%d個'%(price,num))print('應支付:%.2f元'%payable)示例2-20設置特殊參數,改變print()默認行為end:改變末尾自動輸出的結束符362.3.2print()print('Hello')print('World')print('Hello',end='')print('World')示例2-21設置特殊參數,改變print()默認行為sep:改變打印多個數據時,默認添加的分隔符362.3.2print()name='張三'print('我的名字是',name)print('我的名字是',name,sep=':')示例2-22input()和print()的使用if語句的簡單應用36實戰2-2:文字西游歡迎界面input()和print()的使用37實戰2-2:文字西游歡迎界面#輸出歡迎信息和游戲介紹print("歡迎來到文字西游!")print("版本:1.0")print("這是一個用文字描述的西游冒險游戲,你將扮演一位英雄踏上西行之旅。")#提供開始游戲選項choice=input("請輸入'start'開始游戲,或輸入其他內容退出:")參考代碼if語句的簡單應用37實戰2-2:文字西游歡迎界面#判斷玩家輸入ifchoice=='start':#獲取角色名字role_name=input('請輸入你的角色名字:')print('歡迎%s加入西游冒險!'%role_name)print('游戲正式開始!')else:print("感謝你的關注,期待下次與你相遇!")參考代碼Python語言格式框架01020403運算符與表達式基本輸入輸出模塊的使用目
錄模塊的使用04目
錄Python語言格式框架0102運算符與表達式03基本輸入輸出import關鍵字turtle庫模塊:一個包含Python代碼的文件包內有多個代碼文件提供了定義好的變量、函數或類實現了一些特定的功能作用組織和管理代碼可重用易維護2.4模塊38內置模塊time、math、os、sqlite3、……第三方模塊numpy、matplotlib、scrapy、……模塊“導入”才能使用關鍵字:import2.4模塊38導入模塊中所有的內容通過“模塊名.”前綴使用其中的對象2.4模塊38import模塊名[as模塊別名]importmathr=2.0print(r**2*math.pi)示例2-23別名的作用簡化代碼避免模塊命名沖突提高代碼可維護性和可移植性2.4模塊38importmatplotlibaspltplt.title('SamplePlot')示例2-24導入模塊中指定的對象導入的對象可直接使用,不需要模塊名前綴2.4模塊38from模塊名import對象名[as對象別名]frommathimportradians#將30°轉換為弧度值result=radians(30)示例2-252.4模塊38import模塊名from模塊名import對象名引入名字空間是,更安全否引入全部內容是否,按需引入需要模塊名前綴是否,更簡潔繪制一個花瓣長200像素、紅邊黃底的太陽花turtle庫的使用38實戰2-3:繪制太陽花turtle:Python內置模塊之一,用于繪制基本的圖形畫筆(小海龜)移動畫筆的方法設置顏色的方法實戰2-3:繪制太陽花38實戰2-3:繪制太陽花39importturtle#導入turtle庫#設置繪制窗口的寬度和高度turtle.setup(width=600,height=600)
turtle.penup()
#抬起畫筆#移動畫筆到坐標(-150,50)作為起始點turtle.goto(-150,50)
turtle.pendown()
#落下畫筆示例2-26實戰2-3:繪制太陽花39#畫筆藍色,填充黃色turtle.color('blue','yellow')turtle.begin_fill()
#開始填充foriinrange(5):turtle.fd(300)
#沿當前方向前進300像素turtle.right(144)
#向右旋轉144度turtle.end_fill()
#結束填充turtle.done()
#保持繪制窗口一直打開示例2-27實踐要點模塊導入和使用:正確導入turle庫并使用其中的對象循環結構:通過for循環重復繪制太陽花的花瓣編碼與調試查閱文檔40實戰2-3:繪制太陽花實戰2-3:繪制太陽花importturtleturtle.color('red','yellow')turtle.hideturtle()turtle.begin_fill()foriinrange(36):turtle.fd(400)turtle.right(170)turtle.end_fill()turtle.done()參考代碼本章結束Python程序設計第3章Python控制結構學習目標理解Python選擇結構、循環結構、異常處理的使用場景掌握選擇結構、循環結構、異常處理的語法知識目標能夠正確分析控制結構的執行結果能夠選擇合適的控制結構處理實際問題能力目標計劃與執行力的重要性良好的防御性編碼習慣情感態度與價值觀選擇結構:if語句01020403循環結構:while/for循環結構:進階使用異常與異常處理目
錄選擇結構:if語句01020403循環結構:while/for循環結構:進階使用異常與異常處理目
錄單分支結構雙分支結構多分支結構結構化程序設計三大控制結構45順序結構選擇結構條件成立YesNo循環結構條件成立NoYes自上而下不可兼得重復執行根據特定條件,有選擇的執行某些代碼關鍵字ifelifelse3.1選擇結構45當某項條件滿足時就必須執行某項操作,不需要考慮條件成立之外的情況由一個if語句構成3.1.1單分支結構45if條件表達式:代碼塊判斷用戶輸入的數字是否為偶數,如果是,則打印“偶數”,然后程序結束不需要處理非偶數的情況-->單分支結構3.1.1單分支結構46a=int(input('請輸入一個整數:'))ifa%2==0:print('偶數')示例3-1易錯1:遺漏冒號易錯2:縮進錯誤同時考慮條件成立、不成立時各需要執行哪些操作3.1.2雙分支結構46if條件表達式:代碼塊1else:代碼塊2判斷用戶輸入數字奇偶性為偶數,則打印“偶數”,為奇數,則打印“奇數”3.1.2雙分支結構47a=int(input('請輸入一個整數:'))ifa%2==0:print('偶數')eles:print('奇數')示例3-2雙分支條件表達式3.1.2雙分支結構47a=int(input('請輸入一個整數:'))result='偶數'ifa%2==0else'奇數'print(result)示例3-3表達式1if條件表達式else表達式2條件成立返回表達式1的值條件不成立返回表達式2的值兩個以上互斥條件時使用-->“多選一”3.1.3多分支結構47if條件表達式1:代碼塊1elif條件表達式2:代碼塊2[else:代碼塊3]溫度值-->狀態3.1.3多分支結構48temperature=25
iftemperature>=30:status='熱'eliftemperature<10:status='冷'else:status='適中'
print('溫度%d對應的狀態是%s'%(temperature,status))示例3-4可以有多個elif分支3.1.3多分支結構48ifscore>=90:grade='優'elifscore>=80:grade='良'elifscore>=70:grade='中等'elifscore>=60:grade='合格'else:grade='不合格'示例3-5條件互斥能走到“score>=80”說明“score>=90”一定滿足多分支結構嵌套分支結構實戰3-1:折扣計算49高級會員≥10其他
8折9折普通會員≥10其他85折95折≥5件85折input():增加程序靈活性49實戰3-1:折扣計算#初始化變量original_price=float(input('請輸入商品原價:'))quantity=float(input("請輸入購買數量:"))membership_level=input("請輸入會員等級(高級會員/普通會員/非會員):")discount=1#折扣默認值為1,表示不打折參考代碼選擇結構的運用50實戰3-1:折扣計算ifmembership_level=='高級會員':ifquantity>=10:discount=0.8#高級會員購買10件以上8折elifquantity>=5:discount=0.85#高級會員購買5-9件8.5折else:discount=0.9#高級會員購買1-4件9折elifmembership_level=='普通會員':ifquantity>=10:discount=0.85#普通會員購買10件以上8.5折else:discount=0.95#普通會員購買1-9件9.5折參考代碼計算應付金額50實戰3-1:折扣計算final_price=original_price*discount*quantityprint('應付金額為:%.2f元'%final_price)參考代碼選擇結構:if語句01020403循環結構:while/for循環結構:進階使用異常與異常處理目
錄循環結構:while/for020403循環結構:進階使用異常與異常處理目
錄選擇結構:if語句01while循環break與continuefor...in循環特定條件下重復執行一段代碼避免代碼冗余關鍵字whilefor...in3.2循環結構50循環結構條件成立NoYes條件表達式為真時重復執行一段代碼塊條件表達式后面的冒號重復執行的代碼塊(即循環體)要相對于所屬的while縮進3.2.1while循環50while條件表達式:代碼塊重要:循環變量的使用書寫條件表達式循環體中如何改變為偶數,則打印“偶數”,為奇數,則打印“奇數”3.2.1while循環51i=2#既是循環變量,又是求和的參數result=1#記錄和值whilei<=100:result+=ii+=1
print(result)示例3-6使用不當死循環模擬存錢罐當“罐內硬幣數量與新存入硬幣數量之和小于或等于存錢罐容量上限”時允許存入3.2.1while循環51limit=500save=0balance=int(input('請輸入新存入硬幣數量:'))whilesave+balance<=limit:save+=balanceprint('現有硬幣:%d,上限:%d,剩余:%d'%(save,balance,limit-save))balance=int(input('存入硬幣數量:'))示例3-7作用:提前結束循環行為break:退出當前循環,繼續執行后面的語句continue:跳至while/for判斷要不要進入下一次循環3.2.2break和continue52i=1whilei<=5:ifi==3:continueprint(i)i+=1示例3-9i=1whilei<=5:ifi==3:breakprint(i)i+=1示例3-8應用1:遍歷并處理可迭代對象的元素3.2.3for循環52按照某種順序逐個訪問對象中每一項內容的過程iterable,Python中支持元素遍歷的對象,包括序列、集合、字典、生成器等for循環變量in可迭代對象:代碼塊應用1:遍歷并處理可迭代對象的元素3.2.3for循環53for循環變量in可迭代對象:代碼塊列表元素求和3.2.3for循環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應用2:實現明確次數的循環range()3.2.3for循環54用法說明示例range(n)生成[0,n]范圍內的n個整數range(5)-->序列:0,1,2,3,4range(m,n)生成[m,n-1]范圍內的n-m個整數range(1,5)-->序列:1,2,3,4range(m,n,step)以step為步長,生成[m,n-1]范圍內的整數序列range(1,10,3)-->序列:1,4,7[1,100]整數求和3.2.3for循環54result=0foriinrange(1,101):result+=i示例3-1214天短期投資回報計算3.2.3for循環54result=100000.00#收益,初始值為本金10萬rate=0.0385/365#日利率foriinrange(14):result=result+result*rate示例3-13不一定要在循環體中使用循環變量應用3:同時遍歷多個可迭代對象3.2.3for循環54list1=[1,2,3]list2=['a','b','c']fornum,charinzip(list1,list2):print(num,char)示例3-14應用3:同時遍歷多個可迭代對象3.2.3for循環55list1=['a','b','c']forindex,valueinenumerate(list1):print(index,value)示例3-15選擇結構:if語句01020403循環結構:while/for循環結構:進階使用異常與異常處理目
錄循環結構:進階使用0304異常與異常處理目
錄選擇結構:if語句0102循環結構:while/forelse子句嵌套循環while/for可以帶一個else子句,循環正常結束時進入while循環:當循環條件不滿足而退出循環后會進入for循環:當可迭代對象的所有元素遍歷完而退出循環后進入因break退出循環不會進入else分支主要用途:收尾工作,如打印信息、記錄日志等3.2.4else子句55else子句使用3.2.4else子句55list1=[1,2,3,-1,-2,4]
fornuminlist1:ifnum<=0:print('列表中含有非正數元素')breakelse:print('列表中所有元素均為正數')print('測試結束')示例3-16嵌套循環:在一個循環內部放置另一個循環九九乘法表3.2.5
嵌套循環56foriinrange(1,10):forjinrange(1,i+1):
print('%d*%d=%d'%(i,j,i*j),end='\t')print()#換到新的一行示例3-17選擇結構:if語句01020403循環結構:while/for循環結構:進階使用異常與異常處理目
錄異常與異常處理04目
錄選擇結構:if語句0102循環結構:while/for03循環結構:進階使用異常的概念和類型異常的捕獲異常的處理異常:Python程序執行期間發生的一個特殊錯誤,它會中斷正常的程序流程,讓程序停止運行異常處理:確保程序在出現異常時能夠得到處理,而不是直接終止運行3.3.1
異常的概念與類型62異常測試:除數為0的異常3.3.1
異常的概念與類型63total_cost=float(input('請輸入總價格:'))total_weight=float(input('請輸入總重量:'))print('單價:%.2f'%(total_cost/total_weight))print('計算完成')示例3-20異常類:Python將導致程序終止執行的異常情況封裝為不同的類,通過命名表明其錯誤原因3.3.1
異常的概念與類型64異常類說明異常類說明BaseException所有異常類的基類SyntaxError語法錯誤除法AttributeError訪問對象沒有的屬性觸發TypeError不適當的操作對象觸發IndexError訪問序列不存在的索引觸發ValueError函數參數無效觸發KeyError訪問字典不存在的鍵觸發IOError輸入輸出錯誤IndentationError縮進錯誤NameError訪問沒有定義的變量觸發try結構:先捕獲要處理的異常對象,再進行處理3.3.2
異常的捕獲與處理64try:#嘗試執行的代碼塊except[異常類型as對象別名]:#處理異常的語句塊eles:#try塊順利完成后需要執行的語句塊finally:#不論是否發生異常最終都要執行的語句塊try...except:Python捕獲處理異常的基本結構3.3.2
異常的捕獲與處理64try:#嘗試執行的語句except:#異常處理語句將嘗試執行的語句放在try塊中try中沒有發生異常,不執行任何異常處理程序一旦發生異常,程序將創建相應異常類型的對象拋出except分支捕獲其后指定類型的異常對象,如果沒有指定則捕捉所有類型進入except分支處理try塊中發生異常之后的語句不會再執行try...except捕獲處理所有異常3.3.2
異常的捕獲與處理65try:total_cost=float(input('請輸入總價格:'))total_weight=float(input('請輸入總重量:'))print('單價:%.2f'%(total_cost/total_weight))except:
print('發生異常!')print('計算完成')示例3-21try...多個except處理不同異常3.3.2
異常的捕獲與處理65try:total_cost=float(input('請輸入總價格:'))total_weight=float(input('請輸入總重量:'))print('單價:%.2f'%(total_cost/total_weight))exceptZeroDivisionErrorase:print('總重量不能為0:%s'%e.args[0])exceptValueErrorase:print('輸入的數據無法轉換為數字:%s'%e.args[0])exceptBaseExceptionase:print('其他異常:%s'%e.args[0])print('計算完成')示例3-22finally塊:用于無論是否引發異常都要執行的操作else塊:處理程序正常執行的情況下,完成一些額外的操作3.3.2
異常的捕獲與處理66try塊except塊else塊finally塊發生異常無異常無異常無elseelse和finally的使用3.3.2
異常的捕獲與處理66try:total_cost=float(input('請輸入總價格:'))total_weight=float(input('請輸入總重量:'))price=total_cost/total_weightexceptZeroDivisionErrorase:print('總重量不能為0:%s'%e.args[0])exceptBaseExceptionase:print('其他異常:%s'%e.args[0])else:print('單價:%.2f'%price)finally:print('本次任務結束')示例3-23本章結束Python程序設計第4章
序列、集合與字典學習目標理解數據容器應用場景掌握常用容器對象的創建和操作知識目標能夠使用常用容器存儲和操作數據能夠正確選擇容器解決實際問題能力目標追求創新,避免重復造車輪個人職責的重要性團隊協作與組織的重要性情感態度與價值觀什么是數據容器01020403序列集合字典目
錄什么是數據容器01020403序列集合字典目
錄數據容器的概念數據容器:可以存儲多個數據項的復合數據類型序列:字符串、列表、元組集合字典每種容器都有其特定的方法,應根據具體的應用場景和需求,選擇合適的容器什么是數據容器71什么是數據容器01020403序列集合字典目
錄序列020403集合字典目
錄什么是數據容器01字符串列表元組切片序列:存儲有序的元素集合字符串列表元組4.1序列71元素按插入的順序排列位置關系固定通過索引訪問任意元素正數索引:左->右負數索引:右->左字符串:零個或多個字符組成的有序字符序列多行注釋:三引號對''''''""""""字符串字面量:單引號/雙引號對'good'"100"注意:Python中單個字符也是字符串4.1.1字符串71字符串變量的定義4.1.1字符串72language='Python'author='GuidovanRossum'示例4-1變量=字符串字面量字符串變量的訪問4.1.1字符串72info='hello'print(info)
#打印整個字符串print(info[1]) #打印info第二個字符(從左往右計數)print(info[-2]) #打印info第二個字符(從右往左計數)info[0]='H'
#錯誤:不可以修改已經創建的字符串中的字符info='Hello' #正確示例4-2字符串格式化%f-string字符串方法format()4.1.1字符串72常用占位符%d%f%s占位符:{}字符串格式化:f-string在字符串前加上字母“f”或“F”,可以將花括號“{}”內的表達式作為字符串的格式化參數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}元/斤')#冒號后面是指定的格式示例4-3字符串格式化:format()4.1.1字符串73#按實際參數出現的順序逐個填入占位符name='張三'age=18print('{}今年{}歲'.format(name,age))示例4-4<模板字符串>.format(<逗號分隔的實際參數>)字符串格式化:format()4.1.1字符串73#按實際參數的位置索引填入相應的占位符var='{0}9元一斤,{1}10元四斤,{0}和{1}各買一斤多少錢?'print(var.format('蘋果','桃子'))
#按關鍵參數填入相應的值var='小明今年{age}歲,正在讀{school}。'print(var.format(age=17,school='高中'))示例4-4<模板字符串>.format(<逗號分隔的實際參數>)字符串運算+:連接左右兩個字符串*:將字符串重復N次,字符串為左操作數,N為右操作數4.1.1字符串73str1='Hello,'str2='World!'result=str1+str2#打印結果:Hello,World!str1='abc'result=str1*3#打印結果:abcabcabc示例4-5、4-6Python提供一些內置函數處理字符串len():獲取字符串長度4.1.1字符串73str1='abc'print(len(str1))#打印結果:3示例4-7函數名(待處理對象)len()也可用于其他數據容器,獲取容器內元素個數chr():獲取ASCII碼對應的單個字符ord():獲取單字符的ASCII碼4.1.1字符串74x=123print(chr(x))#打印結果:{x='1'print(ord(x))#打印結果:49示例4-8、4-9字符串方法split()strip()join()find()……4.1.1字符串74字符串對象.方法名(參數)split():根據指定的分隔符,將字符串拆分成多個子字符串,并返回一個包含這些子字符串的列表sep:可選,指定分隔符字符串,如果不提供或為空字符串,默認使用空白符,包括空格、制表符、回車符等maxsplit:可選,指定最大拆分次數4.1.1字符串74字符串對象.split([sep,maxsplit])split()使用4.1.1字符串74#使用默認分隔符(空白符)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#指定最大切分次數為2str1='apple,banana,orange,grape'result=str1.split(',',2)print(result)#輸出:['apple','banana','orange,grape']示例4-10strip():刪除字符串開頭和結尾的指定字符chars:可選,指定要刪除的字符,如果不提供或為空字符串,默認刪除空白符4.1.1字符串75字符串對象.strip([chars])strip()使用4.1.1字符串75#刪除頭尾空白符str1='Hello,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國數字平面儀行業運行態勢及未來發展趨勢預測報告
- 酸梅果醬項目投資可行性研究分析報告(2024-2030版)
- 2025至2030年中國尾氣除霧器行業投資前景及策略咨詢報告
- 2025至2030年中國尼龍畚斗帶行業投資前景及策略咨詢報告
- 中國房產交易管理產業園區行業市場深度研究及投資戰略規劃報告
- 中國電站鍋爐專用設備行業市場發展前景及發展趨勢與投資戰略研究報告(2024-2030)
- 2025至2030年中國少氣墊式汽車安全座椅行業投資前景及策略咨詢研究報告
- 中國包裝產業園區行業投資分析及發展戰略咨詢報告
- 2025年中國銻錠行業市場深度分析及投資戰略規劃建議報告
- 2025年高標準基本農田建設項目可行性研究報告
- 室外停車場施工設計方案
- 幼兒園安全教育:異物入體
- 認識紫菜苔課件圖片
- 勞動教育與工匠精神(修訂版)
- 《冠心病病人的護理》課件
- 完整版2024年注安法規真題及答案(85題)
- 紅樓夢閱讀單選題100道及答案解析
- 2024-2030年中國轉子發動機行業市場深度調研及發展趨勢與投資前景研究報告
- 醫學教材單克隆抗體藥物在腎臟疾病中的應用
- 腎病綜合征的實驗室檢查
- 2024至2030年中國生物柴油行業市場調查及投資咨詢報告
評論
0/150
提交評論