版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Python語言程序設(shè)計
課程簡介
全套可編輯PPT課件Python語言Python語言是一種跨平臺、面向?qū)ο蟮母呒壋绦蛟O(shè)計語言,具有簡潔性、易讀性以及可擴展性,廣泛應用于Web和Internet開發(fā)、科學計算和統(tǒng)計、人工智能、數(shù)據(jù)處理、圖形界面開發(fā)、軟件開發(fā)、后端開發(fā)、網(wǎng)絡爬蟲等眾多領(lǐng)域,在產(chǎn)業(yè)界應用廣泛。課程簡介《Python語言程序設(shè)計》是理工類、經(jīng)管類專業(yè)必修的學科基礎(chǔ)、專業(yè)通識課程,通過理論學習和上機編程訓練,重點培養(yǎng)學生分析問題、算法設(shè)計、程序編寫和調(diào)試能力的能力,突出函數(shù)的模塊化程序設(shè)計思想。通過編程實踐培養(yǎng)學生的創(chuàng)新能力和計算思維能力。課程思政目標激發(fā)學生的擔當意識和愛國情懷,引領(lǐng)學生樹立正確的人生觀和價值觀,具備良好的職業(yè)道德。使得學生具備正確的工程實驗和研究方法,發(fā)現(xiàn)問題、解決問題的創(chuàng)新意識和能力,勤于思考、開拓思想、敢于創(chuàng)新、嚴謹?shù)墓ぷ鲬B(tài)度和意識。具有自主學習和終身學習的意識,有不斷學習和適應發(fā)展的能力。知識能力目標要求掌握程序設(shè)計的基本要素,掌握程序設(shè)計的三種基本結(jié)構(gòu),能夠分析問題、設(shè)計算法、繪制NS流程圖,能夠正確地編寫程序,掌握程序調(diào)試的方法和技巧、具備較強的程序調(diào)試能力。知識能力目標具備良好的計算思維能力,具備分析問題、解決問題的意識和能力,能使用Python語言解決較為復雜的數(shù)學問題,具備使用計算機技術(shù)解決實際問題和本專業(yè)領(lǐng)域問題的意識和能力。學時安排共48學時講課26學時上機22學時8《開心學Python》視頻通過眾多微視頻,講解程序設(shè)計基礎(chǔ)算法設(shè)計程序設(shè)計程序調(diào)試使得讀者能夠通過視頻,輕松愉快地學習程序設(shè)計。學習建議注意過程性考核完成度堅持上課,盡量不缺勤,反復觀看視頻重視分析問題、算法設(shè)計、NS圖繪制堅持上機編寫程序、正確的程序調(diào)試方法及時完成提交作業(yè)、實驗堅持參加階段測驗第1章程序設(shè)計概述
11主要內(nèi)容1.程序設(shè)計語言2.程序設(shè)計的本質(zhì)3.算法4.算法的表示5.結(jié)構(gòu)化的程序設(shè)計121.程序設(shè)計語言程序是用來完成特定功能的一系列指令。通過向計算機發(fā)布指令,程序設(shè)計人員可以控制其執(zhí)行某個操作或進行某種運算。一組指令構(gòu)成一個程序,可以用來解決一個具體問題。13語言的分類1.機器語言2.匯編語言3.高級語言
4.面向?qū)ο蟮某绦蛟O(shè)計語言:VB/VC/JAVA/C#/Python語言的分類使用二進制編碼的指令編寫程序的語言被稱為機器語言。機器語言程序,執(zhí)行效率高。語言的分類匯編語言使用助記符來代替機器語言的指令碼,使機器語言符號化,從而提高編程效率。如:ADDA,9使用匯編語言的助記符編寫的程序稱為匯編語言源程序。語言的分類高級語言是類似于自然語言、以語句和函數(shù)為單位書寫程序的編程語言。高級語言編寫的程序稱為高級語言源程序編譯器先使用其編譯程序?qū)⒏呒壵Z言源程序轉(zhuǎn)換為匯編語言源程序,再由匯編程序?qū)R編語言源程序轉(zhuǎn)換為機器可執(zhí)行的二進制語言程序。17語言的分類4.面向?qū)ο蟮某绦蛟O(shè)計語言:VB/VC/JAVA/C#/Python(構(gòu)件化的語言)
編程語言的分層結(jié)構(gòu)編程語言的分層結(jié)構(gòu)思維,以下層語言為基礎(chǔ),再定義一套能力更強的新語言和編譯器。人們使用新語言高效率地編寫程序,使用編譯器將其編譯成下層語言能識別的源程序。19語言的執(zhí)行方式編譯執(zhí)行:將源程序翻譯生成一個可執(zhí)行的目標程序,該目標程序可以脫離編譯環(huán)境和源程序獨立存和執(zhí)行如C、C++解釋執(zhí)行:將源程序逐句解釋成二進制指令,解釋一句執(zhí)行一句,不生成可執(zhí)行文件,它的執(zhí)行速度比編譯方式慢。如Basic、Java、Python等語言的版權(quán)問題與國產(chǎn)編程語言為什么沒有國產(chǎn)的主流編程語言C語言沒有版權(quán)問題Java在Oracle的手上x86、ARM指令集也受專利保護編程語言也面臨著斷供的風險!語言的版權(quán)問題與國產(chǎn)編程語言華為除了推出鴻蒙操作系統(tǒng)外,即將發(fā)布國產(chǎn)“倉頡”編程語言,補齊軟件核心短板。頡,原姓侯岡,名頡,俗稱倉頡先師,又史皇氏,又曰蒼王、倉圣。《說文解字》、《世本》、《淮南子》皆記載倉頡是黃帝時期造字的左史官,見鳥獸的足跡受啟發(fā),分類別異,加以搜集、整理和使用,在漢字創(chuàng)造的過程中起了重要作用,被尊為“造字圣人”。22Python起源1989年圣誕節(jié),荷蘭人吉多·范羅蘇姆(GuidovanRossum),Python誕生Python名字,電視劇MontyPython'sFlyingCircus。Python語言是從ABC語言發(fā)展起來1991年,第一個Python解釋器誕生Python發(fā)展最初的Python完全由Guido本人開發(fā)。Guido和一些同事構(gòu)成了Python的核心團隊,他們將自己大部分的業(yè)余時間用于hackPython。Python將許多機器層面上的細節(jié)隱藏,交給編譯器處理,并凸顯出邏輯層面的編程思考。Python發(fā)展Python語言無處不在PYPLPopularitYofProgrammingLanguagePython發(fā)展2011年1月,Python被TIOBE編程語言排行榜評為“2010年度編程語言”的稱號。2019年1月,Python再次被TIOBE編程語言排行榜評為“2018年度編程語言”的稱號。Python是當今高校中最常被教授的首選語言,它在統(tǒng)計領(lǐng)域排名第一、在AI編程中排名第一、在編寫腳本時排名第一、在編寫系統(tǒng)測試時排名第一。除此之外,Python還在Web編程和科學計算領(lǐng)域處于領(lǐng)先地位??傊琍ython無處不在。Python特點優(yōu)點:簡單易學免費開源高級語言可移植性解釋性面向?qū)ο罂蓴U展性豐富的庫缺點:運行速度慢代碼無法加密獨特的語法格式Python應用領(lǐng)域Web應用開發(fā)網(wǎng)絡爬蟲計算與數(shù)據(jù)分析人工智能自動化運維云計算網(wǎng)絡編程游戲開發(fā)2.程序設(shè)計的本質(zhì)【例1.1】簡單的Python程序,輸出一行行語句。print("尚德尚學尚行,愛國愛校愛人!")print("人生苦短,我用Python!")print("我愛編程!")說明:print()語句輸出數(shù)據(jù)29馮.諾依曼體系結(jié)構(gòu)(1)計算機由控制器、運算器、存儲器、輸入設(shè)備和輸出設(shè)備5個部分構(gòu)成。(2)計算機采用二進制,指令和數(shù)據(jù)均以二進制數(shù)形式表示和存放。(3)計算機按照程序規(guī)定的順序?qū)⒅噶顝拇鎯ζ髦腥〕?,并逐條執(zhí)行。30程序設(shè)計的本質(zhì)程序設(shè)計的本質(zhì)是設(shè)計能夠利用計算機的五個部件完成特定任務的指令序列。【例1.2】輸入櫻桃單價和斤數(shù),計算并輸出總金額。price=float(input("請輸入單價"))number=float(input("請輸入櫻桃斤數(shù)"))total=price*numberprint("總金額為",total)說明:分析五部件在程序中的作用過程。input()語句輸入數(shù)據(jù)。313.程序設(shè)計的過程
分析和定義實際問題建立處理模型:設(shè)計算法設(shè)計流程圖編寫程序調(diào)試程序和運行程序程序設(shè)計的過程分析和定義實際問題深入分析實際問題,準確提煉、描述要解決的問題。程序設(shè)計的過程建立處理模型用特定方法描述問題的規(guī)律和數(shù)值關(guān)系,為確定計算機的實現(xiàn)算法而做的理論準備。如數(shù)學、物理、化學等模型程序設(shè)計的過程設(shè)計算法將要處理的問題分解成計算機能夠執(zhí)行的若干特定操作,也就是確定解決問題的算法。如積分公式轉(zhuǎn)換為算法。程序設(shè)計的過程繪制流程圖在編程前給出處理步驟的流程圖,只管反映所處理問題中復雜的關(guān)系,以便編程時思路清晰、避免出錯。流程圖是程序設(shè)計的良好工具,方便程序員交流程序設(shè)計的過程編寫程序:用某種語言按照流程圖描述的步驟寫出程序。用某種語言編寫的程序叫做源程序。程序設(shè)計的過程調(diào)試和運行程序?qū)懞玫某绦蛏蠙C檢查、編譯、調(diào)試和運行,發(fā)現(xiàn)并糾正錯誤。38算法的概念和特性算法:解決一個問題所采取的一系列步驟。NikiklausWirth提出一個公式:程序=數(shù)據(jù)結(jié)構(gòu)+算法數(shù)據(jù)結(jié)構(gòu)是指在程序中數(shù)據(jù)的類型和組織形式。Python語言中有列表、元組、序列、字典、集合等。算法給出了解決問題的方法和步驟,是程序的靈魂它能決定如何操作數(shù)據(jù),如何解決問題。同一個問題可以有多種不同算法。39算法舉例算法,必須是計算機能夠運行的方法?!纠?.3】求1+2+3+4+…+100。第一種算法:書寫“1+2+3+4+5+6+…+100”的表達式,很難完成且容易出錯。第二種算法:
顯然,第二種算法要簡單得多40算法舉例【例1.4】求100!=1*2*3*4*5*.......*99*100step1:p=1step2:i=2step3:p=p*istep4:i=i+1step5:如果i<=100,那么轉(zhuǎn)入step3執(zhí)行step6:輸出p,算法結(jié)束跟蹤上述算法的執(zhí)行過程,理解變量的作用,程序設(shè)計時可用的部件和功能。41算法舉例【例1.5】求1*3*5*…*101。step1:p=1step2:i=1step3:p=p*istep4:i=i+2step5:如果i<=101,那么轉(zhuǎn)入step3執(zhí)行step6:輸出p,算法結(jié)束只需要將i的初值改為1、每次循環(huán)增加2即可42算法的特性(1)有窮性(2)確定性(3)輸入:算法可以有輸入,也可以沒有輸入,即有0個或多個輸入。(4)輸出(5)可行性434.算法的表示自然語言:例:如果A大于B,那么最大值為A,否則最大值為B。
偽代碼偽代碼用介于自然語言和計算機語言之間的文字及符號來描述算法。例:ifA大于B,then最大值為A,else最大值為B傳統(tǒng)流程圖用傳統(tǒng)流程圖表示算法比較直觀,它使用一些圖框來表示各種操作,用箭頭表示語句的執(zhí)行順序。46N-S流程圖N-S流程圖又稱盒圖,其特點是所有的程序結(jié)構(gòu)均用方框表示。475.結(jié)構(gòu)化的程序設(shè)計方法1966年,Bohra和Jacopini提出了順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)三種基本結(jié)構(gòu),結(jié)構(gòu)化程序設(shè)計方法使用三種基本結(jié)構(gòu)組成算法已經(jīng)證明,用3種基本結(jié)構(gòu)可以組成解決所有編程問題的算法。48順序結(jié)構(gòu)順序結(jié)構(gòu)是指按照語句在程序中出現(xiàn)的先后次序執(zhí)行49選擇結(jié)構(gòu)選擇結(jié)構(gòu)根據(jù)條件選擇程序的執(zhí)行順序選擇結(jié)構(gòu)一50選擇結(jié)構(gòu)選擇結(jié)構(gòu)二51循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)通過設(shè)定循環(huán)條件,在滿足該條件時反復執(zhí)行程序中的某部分語句,即反復執(zhí)行循環(huán)體。循環(huán)結(jié)構(gòu)1當型循環(huán)結(jié)構(gòu)53循環(huán)結(jié)構(gòu)2直到型循環(huán)結(jié)構(gòu)54結(jié)構(gòu)化程序設(shè)計方法(1)程序組織結(jié)構(gòu)化(2)程序設(shè)計采用自頂向下、逐步細化、功能模塊化的方法55習題與作業(yè)要求一、選擇題二、算法設(shè)計三、程序設(shè)計和操作第2章Python編程與調(diào)試
57主要內(nèi)容1.Python編程工具2.PythonIdle編寫和調(diào)試程序3.AnacondaSpyder編程與調(diào)試1.PythonIDE集成開發(fā)環(huán)境(IntegratedDevelopmentEnvironment,IDE)是一種輔助程序開發(fā)人員進行開發(fā)工作的應用軟件,往往集成了代碼編寫功能、語法檢測功能、編譯和調(diào)試功能。IDE可以幫助開發(fā)人員加快開發(fā)速度,提高開發(fā)效率。交互式解釋器:交互就是一問一答解釋器的功能將高級語言解釋給機器聽,也就是將代碼轉(zhuǎn)換成計算機能懂的機器碼Python編程工具常用的Python編程工具PythonIdleAnacondaSpyderPycharmEclipsewithPyDev各種在線編輯器PythonIdle下載與安裝IDLE是Python標準發(fā)行版的一個簡單小巧的集成開發(fā)環(huán)境,包括交互命令行、編輯器、調(diào)試器等基本組件,足以應付多數(shù)應用。地址/downloads/windows/PythonIdle幫助help()函數(shù)查看模塊和函數(shù)的信息。help(對象)help①查看內(nèi)置函數(shù)和類型信息。help(max)help(list)help(set)help②查看模塊信息。importsyshelp(sys)help②查看模塊內(nèi)部函數(shù)信息。importsyshelp(sys.exit)2.PythonIdle編寫和調(diào)試程序啟動PythonIdle,可以在Shell中運行Python命令PythonIdle編寫和調(diào)試程序調(diào)整Idle中文本的字體、大小options->ConfigureIdlePythonIdleShell當命令有錯時,報錯誤信息Idle編輯器編寫和運行程序Shell中File->NewFile保存:File->Save運行程序:Run->RunModule或F5鍵特點:(1)語法高亮顯示(2)自動縮進(4個空格)(3)單詞自動完成功能(Edit->ExpandWord或者Alt+/)程序錯誤程序出錯是難以避免的語法錯誤:代碼違反Python語言語法規(guī)則,在運行時,Python解釋器會給出提示運行時錯誤:邏輯錯誤:語法錯誤第1行,雙引號不能是中文第2行,少一個右括號第3行,變量名2a錯,缺少*第5行,逗號、右括號不能為中文第1行第2,3行第5行第5行【例2.1】語法錯誤。a=float(input("請輸入a:“))#1b=float(input("請輸入b:")#2c=2a*b
#3d=a/b
#4print("c=",c)
#5print("d=",d)
#6語法錯誤修改后的程序,運行結(jié)果。運行時錯誤輸入文本“tianjin”不能轉(zhuǎn)換為數(shù)字浮點數(shù)不能被0除運行時錯誤:程序在執(zhí)行時被檢測出的錯誤邏輯錯誤邏輯錯誤:程序沒有語法錯誤,運行時也沒問題,但是結(jié)果出錯。邏輯錯誤往往就是算法本人有問題或者編程時誤操作引起。用調(diào)試器的單步調(diào)試的方法,發(fā)現(xiàn)邏輯錯誤。Debug調(diào)試器Debug調(diào)試器暫停程序執(zhí)行、單步執(zhí)行程序,檢查變量值,幫助分析和查找邏輯錯誤。Shell:Debug->DebuggerDebug調(diào)試器go:正常執(zhí)行程序到結(jié)束,或到達一個斷點Step:執(zhí)行當前行代碼后暫停,變量取值會更新;當前行代碼如果是函數(shù),則進入函數(shù)內(nèi)部,執(zhí)行函數(shù)內(nèi)第一行代碼Over:執(zhí)行當前行代碼,不進入函數(shù)內(nèi)部Out:全速執(zhí)行代碼,直到從當前函數(shù)返回。Quit:停止調(diào)試。Debug調(diào)試程序(1)Shell執(zhí)行”Debug->Debugger“命令,打開Debug窗口顯示[DEBUGON]Debug調(diào)試程序(2)文件窗口執(zhí)行“Run->RunModule”命令Debug調(diào)試程序①單擊“Over”命令,執(zhí)行當前行代碼②在Shell中輸入數(shù)據(jù)③注意觀察變量的變化,查找程序邏輯錯誤。返回①繼續(xù)。Debug調(diào)試程序程序調(diào)試完畢,再次執(zhí)行Shell“Debug->Debugger”命令,顯示[DEBUGOFF]斷點當程序代碼行很多,希望直接到達某一行,開始單步調(diào)試時,可以將該行設(shè)定為斷點。(1)鼠標右鍵單擊斷點行,執(zhí)行“SetBreakpoint”命令,該行變?yōu)辄S色。斷點(2)啟動Debugger,執(zhí)行Debug->Debugger“命令(3)執(zhí)行”Run->RunModule”命令(4)go,程序直接停止在斷點行(5)Over,調(diào)試程序Anaconda下載與安裝Anaconda(官方網(wǎng)站)就是可以便捷獲取包且對包能夠進行管理,同時對環(huán)境可以統(tǒng)一管理的發(fā)行版本。Anaconda包含了conda、Python在內(nèi)的超過180個科學包及其依賴項。下載/products/individual3.AnacondaSpyder編程(1)打開spyder,F(xiàn)ile->Newfile,編程(2)語法錯誤語句左側(cè)出現(xiàn),光標在上邊會顯示錯誤提示。(3)運行時提示語法錯誤AnacondaSpyder編程(3)程序在運行時,會提示語法錯誤Spyder編程程序修改好后,單擊或執(zhí)行Run->Run或F5鍵運行程序。Spyder編程單擊Varible標簽,觀看內(nèi)存中變量取值情況可以進行變量操作,如removeallVariblesSpyder調(diào)試程序運行選中的或當前行開始調(diào)試程序運行當前行,不進入函數(shù)運行當前行或進入函數(shù)退出函數(shù)運行到斷點或結(jié)束結(jié)束調(diào)試Spyder調(diào)試程序Debug菜單Spyder調(diào)試程序DebugFile或Ctrl+F5,開始調(diào)試Spyder調(diào)試程序①運行當前行(RunCurrentLine或Ctrl+F10)②輸入數(shù)據(jù)③觀察變量取值,發(fā)現(xiàn)問題返回①運行到結(jié)束結(jié)束調(diào)試Spyder調(diào)試程序-斷點設(shè)定或取消斷點:光標落入當前行,執(zhí)行“Debug->set/clearBreakpoint”命令,或者單擊行左側(cè)。Spyder調(diào)試程序-斷點DebugFile或Ctrl+F5,開始調(diào)試continue,運行到斷點繼續(xù)單步調(diào)試在線編輯調(diào)試網(wǎng)絡中有很多在線編輯工具,包括手機版turtle繪圖turtle庫是Python的繪圖的庫,也稱海龜作圖。想象成一個小海龜,以畫布中心為坐標原點、橫軸x和縱軸為y的坐標系中,根據(jù)指令移動,改變海龜?shù)奈恢谩⒎较蚝蜖顟B(tài),從而繪制圖形。turtle庫導入與使用在使用turtle庫繪圖之前,需要先引入turtle庫?!纠?.2】導入庫importturtle#導入turtle庫turtle.circle(100)#繪圖窗體與畫布turtle設(shè)置繪圖主窗體的高、寬、位置。width,height:寬和高,像素數(shù);為小數(shù)時為屏幕比例。startx,starty:舉例屏幕左上角定點坐標,為空時默認為屏幕中心。setup(width,height,startx,starty)設(shè)置窗體【例2.2】設(shè)置窗體importturtle#導入turtle庫turtle.setup(0.1,0.1,10,10)turtle.circle(20)#繪圖importturtle#導入turtle庫turtle.setup(100,100)turtle.circle(20)#繪圖畫布畫布是tutle展開的用于繪圖的區(qū)域。screensize(width,height,bg)width:寬height:高bg:背景色畫布【例2.3】設(shè)置畫布importturtle#導入turtle庫turtle.setup(500,500)#窗體turtle.screensize(200,200,"yellow")#畫布turtle.circle(100)#繪圖繪圖函數(shù)turtle內(nèi)置的函數(shù)包括畫筆狀態(tài)、顏色控制、填充、移動與繪畫、turtle狀態(tài)等。畫筆狀態(tài)函數(shù)在繪圖過程中,需要控制畫筆的狀態(tài)。命令格式功能pendown()放下筆移動,移動時繪制圖形,默認時為繪制penup()提起筆移動,移動時不繪制圖形pensize()繪制圖形時畫筆的寬度,默認為1Pen()獲取畫筆isdown()返回畫筆是否放下的狀態(tài)hideturtle()隱藏畫筆形狀Showturtle()顯示畫筆形狀顏色設(shè)置畫筆的顏色命令格式功能pencolor(colorstring)設(shè)置畫筆顏色color(color1,color2)設(shè)置color1畫筆顏色,color2填充色畫筆狀態(tài)顏色【例2.4】設(shè)置畫筆狀態(tài)顏色importturtle#導入turtle庫turtle.setup(500,500)#窗體turtle.screensize(200,200,"yellow")turtle.pensize(10)#畫筆寬度turtle.pencolor("red")#畫筆顏色turtle.circle(100)#繪圖顏色填充將一個封閉的區(qū)域用指定顏色填充,先用fillcolor()指定填充色,用begin_fill()和end_fill()將繪制封閉區(qū)域語句包括其間命令格式功能fillcolor(colorstring)設(shè)置繪圖的填充色begin_fill()開始填充圖形end_fill()填充完成filling()返回當前是否在填充狀態(tài)顏色填充【例2.5】設(shè)置畫筆狀態(tài)顏色importturtle#導入turtle庫turtle.setup(500,500)#窗體turtle.screensize(200,200,"yellow")turtle.pensize(10)turtle.pencolor("red")turtle.fillcolor("blue")turtle.begin_fill()turtle.circle(100)#繪圖turtle.end_fill()輔助繪圖控制輔助繪圖控制函數(shù),清空窗口、重置turtle狀態(tài)等。命令格式功能Clear()清空turtle窗口reset()重置turtle狀態(tài)done()啟動事件循環(huán),必須是繪圖的最后一條語句write(s,[,font=("font-name",font-size,"font_type")])寫文本,s為文本內(nèi)容寫文本【例2.6】設(shè)置畫筆狀態(tài)顏色importturtle#導入turtle庫turtle.setup(500,500)#窗體turtle.screensize(200,200,"yellow")turtle.pencolor("red")turtle.write("python",font=("TimesNewRoman",60))移動與繪畫函數(shù)控制畫筆的前進、后退、轉(zhuǎn)向、直接移動到某個位置、畫圓、正多邊形等。命令格式功能forward(x)向前移動x像素backward(x)向后移動x像素right(x)向右轉(zhuǎn)x度left(x)向左轉(zhuǎn)x度goto(x,y)將畫筆移動到坐標為x、y的位置circle(x,extent=y,steps=z)x:以x為半徑畫圓,當x為負數(shù)時反向繪制Extent:y角度數(shù)值,畫圓的一段弧Steps:整數(shù)z,繪制z條邊的正多邊形home()設(shè)置畫筆當前位置為原點,坐標(0,0),朝向東speed(x)畫筆繪制的速度,x的范圍為[0,10]繪圖【例2.7】畫一個正方形importturtle#導入turtle模塊turtle.setup(500,500)#窗體t=turtle.Pen()#創(chuàng)建畫筆對象t.forward(100)#從中心位置向前移動100個像素t.left(90)#向左轉(zhuǎn)90°t.forward(100)t.left(90)t.forward(100)t.left(90)t.forward(100)t.left(90)繪圖【例2.8】畫一個五角星importturtleturtle.setup(500,500)#窗體t=turtle.Pen()t.color("red")t.pensize(5)turtle.goto(0,0)turtle.speed(10)turtle.forward(100);turtle.right(144)turtle.forward(100);turtle.right(144)turtle.forward(100);turtle.right(144)turtle.forward(100);turtle.right(144)turtle.forward(100);turtle.right(144)繪圖【例2.8】設(shè)置畫筆狀態(tài)顏色importturtle#導入turtle庫turtle.setup(500,500)#窗體turtle.screensize(200,200,"yellow")turtle.pencolor("red")turtle.pensize(5)turtle.circle(50)#畫圓turtle.penup()turtle.goto(100,100)turtle.pendown()turtle.circle(50,steps=3)#三角形turtle.penup()turtle.goto(-100,100)turtle.pendown()turtle.circle(50,steps=4)#四邊形turtle.penup()turtle.goto(-100,-100)turtle.pendown()turtle.circle(50,steps=6)#六邊形turtle.penup()turtle.goto(100,-100)turtle.pendown()turtle.circle(50,steps=8)#八邊形繪圖113習題與作業(yè)要求一、選擇題二、程序設(shè)計和操作第3章順序結(jié)構(gòu)程序設(shè)計
115主要內(nèi)容1.順序結(jié)構(gòu)算法設(shè)計2.Python語言編程基礎(chǔ)(CH03B)3.順序結(jié)構(gòu)程序設(shè)計順序結(jié)構(gòu)的算法設(shè)計順序結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計中最簡單的控制結(jié)構(gòu),它一般包括輸入數(shù)據(jù)、處理和輸出數(shù)據(jù)3個步驟順序結(jié)構(gòu)的算法設(shè)計程序設(shè)計的過程一般包括以下步驟。①分析問題:分析問題的原理,找出其中的規(guī)律。②設(shè)計算法:根據(jù)分析設(shè)計解決問題的算法。③編寫程序:編寫程序,調(diào)試、運行程序。順序結(jié)構(gòu)的算法設(shè)計【例3.1】編寫程序,輸入三角形的3條邊長a、b和c,求三角形的面積。(1)分析問題順序結(jié)構(gòu)的算法設(shè)計(2)設(shè)計算法學習提示:算法要求輸入的3條邊長能夠構(gòu)成一個三角形,如果運行時輸入的3條邊長不能構(gòu)成三角形,則此程序會出錯。順序結(jié)構(gòu)的算法設(shè)計(3)思考順序結(jié)構(gòu)的程序設(shè)計請參考Python語言-CH03B-Python語法基礎(chǔ)順序結(jié)構(gòu)的程序設(shè)計【例3.51】三角形面積a=float(input("請輸入a:"))b=float(input("請輸入b:"))c=float(input("請輸入c:"))s=(a+b+c)/2area=(s*(s-a)*(s-b)*(s-c))**0.5print("三角形面積為",area)調(diào)試要求:在PythonIdle中,執(zhí)行“Debug→Debugger”菜單命令,打開Debugger調(diào)試器,運行該程序,在調(diào)試器中按下“Over”按鈕逐行運行程序,觀察變量的變化過程。。順序結(jié)構(gòu)的程序設(shè)計【例3.38】求解雞兔同籠問題。已知籠子中雞和兔的頭數(shù)總共為h,腳數(shù)總共為f,問雞和兔各有多少只?(1)分析。設(shè)雞和兔分別有x和y只順序結(jié)構(gòu)的程序設(shè)計【例3.38】求解雞兔同籠問題。已知籠子中雞和兔的頭數(shù)總共為h,腳數(shù)總共為f,問雞和兔各有多少只?(1)分析。設(shè)雞和兔分別有x和y只順序結(jié)構(gòu)的程序設(shè)計(2)分析。設(shè)雞和兔分別有x和y只順序結(jié)構(gòu)的程序設(shè)計順序結(jié)構(gòu)的程序設(shè)計h=int(input("請輸入頭數(shù)h:"))f=int(input("請輸入腳數(shù)f:"))x=(4*h-f)/2y=h-xprint("雞有",x,"只,兔有",y,"只")順序結(jié)構(gòu)的程序設(shè)計【例3.39】編寫程序,輸入一個三位整數(shù),將其個位、十位和百位數(shù)反序后,得到一個新的整數(shù)并輸出。例如,輸入整數(shù)234,輸出整數(shù)432。(1)分析。首先必須求得其個位、十位和百位數(shù)234%104234//10%103234//100%102順序結(jié)構(gòu)的程序設(shè)計【例3.39】編寫程序,輸入一個三位整數(shù),將其個位、十位和百位數(shù)反序后,得到一個新的整數(shù)并輸出。例如,輸入整數(shù)234,輸出整數(shù)432。再計算得到反序后的數(shù)。輸入三位整數(shù)ma=m%10b=m//10%10c=m//100%10n=a*100+b*10+c輸出n順序結(jié)構(gòu)的程序設(shè)計m=int(input("請輸入整數(shù)m:"))a=m%10b=m//10%10c=m//100%10n=a*100+b*10+cprint("反序后的數(shù)為",n)注意:掌握求得一個整數(shù)m,各個數(shù)位上的數(shù)的方法。輸入三位整數(shù)ma=m%10b=m//10%10c=m//100%10n=a*100+b*10+c輸出n131習題與作業(yè)要求一、選擇題二、算法設(shè)計三、程序設(shè)計和操作第3章Python語言編程基礎(chǔ)
133說明1.順序結(jié)構(gòu)算法設(shè)計2.Python語言編程基礎(chǔ)(CH03B)3.順序結(jié)構(gòu)程序設(shè)計Python語法基礎(chǔ)為了將算法編寫為程序,必須先掌握在Python語言中如何表示和保存數(shù)據(jù)、如何進行計算、如何輸入數(shù)據(jù)和輸出結(jié)果等。如何使用Python語言編程實現(xiàn)算法,是學習程序設(shè)計的基礎(chǔ)主要內(nèi)容語句和注釋數(shù)據(jù)類型:數(shù)字和字符串變量和常量標準的輸入和輸出、格式化輸出算術(shù)運算賦值關(guān)系運算、邏輯運算位運算語句語句用于向計算機軟硬件系統(tǒng)發(fā)出操作指令以完成一定任務。語句是賦值、計算、輸入和輸出等。a=int(input("a:"))b=2*aprint(a,b)語句①語句的換行,一行語句太長,不方便或不美觀??梢杂梅葱备埽╘)換行【例3.2】語句換行。a="富強、民主、文明、和諧是國家層面的價值目標,\自由、平等、公正、法治是社會層面的價值取向,\愛國、敬業(yè)、誠信、友善是公民個人層面的價值準則,\這24個字是社會主義核心價值觀的基本內(nèi)容。"print(a)行末的(\)后不能添加注釋語句②同一行,寫多個語句,語句間用(;)隔開a=10;b=20;c=30;print(a,b,c)Python語法python有自己的語法特點縮進分層:同一代碼塊中的語句必須保證相同的縮進空格數(shù)?!纠?.3】語句縮進。pwd=input("密碼:")#1ifpwd=="123":
#2print("密碼正確。")#3print("請進入。")
#4else:
#5print("密碼錯誤。")#6print("請離開。")
#7分層縮進如果同一個代碼塊中各語句的縮進空格數(shù)不同,將會報錯。pwd=input("密碼:")#1ifpwd=="123":#2print("密碼正確。")#3print("請進入。")#4else:#5print("密碼錯誤。")#6print("請離開。")#7注釋程序的注釋可用來說明程序的編寫者、版本號、版本形成日期、程序的功能等信息,還可用來說明程序某部分或某條語句的功能,從而使得程序更易于理解1.單行注釋(#)代碼和#之間至少有一個空格area=PI*r*r#計算圓的面積
#以上語句是為了計算面積注釋2.多行注釋3個單引號(''')或3個雙引號(""")開始和結(jié)束,可以包括多行注釋語句r=5PI=3.14area=PI*r*r;'''計算圓的面積,r為半徑'''"""計算圓的面積,r為半徑"""print(area)Python簡單數(shù)據(jù)類型數(shù)據(jù),在計算機中也要按照一定的方式進行組織存放,以便于分配存儲空間和進行運算。將數(shù)據(jù)分為多種類型,不同數(shù)據(jù)類型的存儲長度、取值范圍和允許的操作都不相同。Python的兩類簡單數(shù)據(jù)類型數(shù)字類型:123、-123、1.234字符串類型:"我愛用Python"數(shù)字數(shù)據(jù)類型4種數(shù)字數(shù)據(jù)類型包括:int(整型):123、-123float(浮點型):1.2345bool(布爾類型):True、Falsecomplex(復數(shù)類型):1.23+4.5jint(整型)整型,表示整數(shù),不帶小數(shù)點。如:123、-234、0表示方法:十進制,如123,-123二進制加前綴0b或0B,如0b1111011八進制加前綴0o或0O,如0o173十六進制加前綴0x或0X,如0x7bint(整型)【例3.4】整型數(shù)字類型print(123,-123)print(0b1111011,0o173,0x7b)整型進制轉(zhuǎn)換調(diào)用函數(shù)將十進制數(shù)轉(zhuǎn)換成二進制數(shù),八進制數(shù),十六進制數(shù)的字符串。bin(20)oct(20)hex(20)int(x,n):int("0101",2),int("173",8),int("7B",16)整型進制轉(zhuǎn)換【例3.5】整數(shù)的進制轉(zhuǎn)換。a=bin(123)#轉(zhuǎn)換二進制b=oct(123)#轉(zhuǎn)換八進制c=hex(123)#轉(zhuǎn)換十六進制print(a,b,c)print(type(a),type(b),type(c))d=int("0101",2)#二進制字符串轉(zhuǎn)換十進制整數(shù)e=int("173",8)#八進制字符串轉(zhuǎn)換十進制整數(shù)f=int("7B",16)#十六進制進制字符串轉(zhuǎn)換十進制整數(shù)print(d,e,f)float(浮點型)浮點數(shù)的表示法,包括小數(shù)點格式,指數(shù)格式。①小數(shù)點格式:
3.14123..123②指數(shù)格式:1.2345E3,表示1.2345
×
103,即123.451.2345E-3,表示1.2345
×
10-3,即0.0012345float()函數(shù)可以把整數(shù)轉(zhuǎn)換成浮點數(shù)float(123)->150.0
float(浮點型)【例3.6】浮點型print(3.14,123.,1.2345E3,1.2345E-3)a=123b=float(123)#整數(shù)轉(zhuǎn)換為浮點數(shù)c=float("123")#字符串轉(zhuǎn)換為浮點數(shù)print(a,b,c)print(type(a),type(b),type(c))bool(布爾型)Python語言中bool型的值有:True,表示真,對應整數(shù)1False,表示假,對應整數(shù)0
內(nèi)置函數(shù)bool(x),能將x轉(zhuǎn)換成bool型,非0則為True,0為False。int(True)#值為1int(False)#值為0Bool(1)#值為TrueBool(4)#值為TrueBool(0)#值為Falsebool(布爾型)【例3.7】布爾型print(int(True),int(False))print(bool(1),bool(4),bool(0))print(3>2,2>3)complex(復數(shù)類型)復數(shù)類型用于表示數(shù)學中的復數(shù),由實數(shù)(real)部分和虛數(shù)(imag)部分構(gòu)成表示形式為real+imagj
或real+imagJreal和imag都是浮點數(shù)1.23+0.9j3J3+1.23E3J1.23E-5J
complex(復數(shù)類型)使用real與imag屬性,可以分別取出實部和虛部。如:(1.23+0.9j).real(1.23+0.9j).imag可以使用complex(real,imag)函數(shù)將兩個數(shù)轉(zhuǎn)換為復數(shù)complex(2.4,1.3)
complex(復數(shù)類型)【例3.8】復數(shù)類型print(1.23+0.9j,3J,3+1.23E3J,1.23E-5J)a=1.2+3.4jprint(a.real,a.imag)b=complex(2.6,1.3)print(b)字符串類型使用單引號、雙引號或三引號標識字符串。(1)單引號標識字符串。單引號標識的字符串不能包含單引號【例3.9】單引號字符串print('IlikePython!')#正確的字符串print('Let'sprogram!')#錯誤的字符串,不可以包括單引號字符串類型(2)雙引號標識字符串。雙引號標識的字符串不能包含雙引號?!纠?.10】雙引號字符串。print("IlikePython!")
#正確的字符串print("Let'sprogram!")#正確的字符串,可以包括單引號print("Let"sprogram!")#錯誤的字符串,不可以包括雙引號字符串類型(3)三引號標識字符串,支持多行,保留換行、縮進等格式,但不可以包括同樣的三引號【例3.11】三引號字符串print('''Let'sprogram!''')#正確的字符串print("""Let's'''program!""")#正確的字符串,可以包括不同的三引號print("""Let'sgo"""home!""")#錯誤的字符串,不能包括同樣的三引號轉(zhuǎn)義字符轉(zhuǎn)義字符以“\”為前綴,表示特殊含義,避免字符的二義性。轉(zhuǎn)義字符說明轉(zhuǎn)義字符說明\\反斜線\n換行符,將光標移到下一行開頭。\'單引號\r回車符,將光標移到本行開頭。\"雙引號\t橫向制表符,即Tab鍵\在字符串行尾,即一行未完,轉(zhuǎn)到下一行繼續(xù)寫\b退格(Backspace)轉(zhuǎn)義字符轉(zhuǎn)義字符以“\”為前綴,表示特殊含義,避免字符的二義性?!纠?.12】轉(zhuǎn)義字符print('Let\'sprogram!')#正確print("Let\"sprogram!")#正確轉(zhuǎn)義字符【例3.13】使用轉(zhuǎn)義字符標識特殊字符。print('Ilike\nPython!')#換行print('Ilike\tPython!')##橫向制表符print('I\like\Python!')#\換行續(xù)寫print('d:\\Python\\eg')#\\print(r'd:\\Python\\eg')#原字符字符串索引字符串索引就是字符的序號,分為正索引和負索引。正索引從左至右標記字符,最左邊的字符索引是0,第二個是1,以此類推。負索引從右向左標識字符,最右邊的字符索引為-1,第二個為-2,以此類推。字符串Python正索引012345負索引-6-5-4-3-2-1字符串索引操作索引操作:使用下標(索引值)取得某個指定字符<字符串>[下標]【例3.14】索引操作print("Student"[0],"Student"[1])a="Student"print(a[-1],a[-3])字符串索引操作Python不支持改變字符串中某個字符的值,否則會報錯【例3.15】字符串不允許修改字符a="Student"a[1]="x"#不允許修改字符的值字符串切片操作字符串切片操作:截取字符串片段,得到一個子串<字符串>[start:end]start:開始位置end:結(jié)束位置,不包括第end位置的字符【例3.16】字符串切片a="Student"print(a[1:4])print(a[:4])#省略開始位置print(a[1:])#省略結(jié)束位置字符串連接操作字符串連接:“+”將兩個字符串連接起來【例3.17】字符串連接print("I"+"like"+"Python!")print("我愛學"+"編程!")字符串復制操作字符串復制:使用乘號(*)生成重復字符串。【例3.18】字符串復制print("Python!"*3)#重復3次print("中國加油"*2)
#重復2次字符串常用方法在Python中提供了豐富的操作方法。方法說明capitalize()將字符串首字母大寫,其余小寫lower()將字符串轉(zhuǎn)換成小寫upper()將字符串轉(zhuǎn)換成大寫rstrip()移除字符串右側(cè)空白lstrip()移除字符串左側(cè)空白strip()移除字符串兩側(cè)空白find(sub[,start[,end]])返回sub在字符串中的位置count(sub[,start[,end]])返回sub在字符串中出現(xiàn)的次數(shù)replace(old,new)將字符串中old替換成new字符串常用方法【例3.19】字符串操作方法a="IlikeProgramming!"print(a.lower())#大寫字母變小寫print(a.upper())#小寫字母變大寫print(a.find("mm"))#查找”mm”在字符串中的位置print(a.count("i"))#查找”i”在字符串中的位置print(a.replace("i","X"))#將字符串中的”i”在替換為"X"數(shù)據(jù)類型轉(zhuǎn)換Python可以借助函數(shù)進行類型轉(zhuǎn)換。函數(shù)名功能說明示例bool(x)返回x轉(zhuǎn)換的布爾值bool('a')、bool(1)、bool(0)int(x)返回x轉(zhuǎn)換的整數(shù)int("3")、int(3.6)float(x)將x轉(zhuǎn)換的浮點數(shù)float("3.14")、float(3)complex(real[,imag])complex(x)創(chuàng)建real+imagJ的復數(shù);或者將字符串轉(zhuǎn)換為復數(shù)complex("1+2j")complex(1,2)str(x)將x轉(zhuǎn)換為字符串str(123)、str(3.14)ord(x)返回字符x對應的ASCII碼值ord("a")、ord("A")chr(x)返回整數(shù)x代表的ASCII對應的字符chr(97)、chr(65)bin(x)將整數(shù)x轉(zhuǎn)換成二進制字符串bin(123)oct(x)將整數(shù)x轉(zhuǎn)換成八進制數(shù)字符oct(123)hex(x)將整數(shù)x轉(zhuǎn)換成十六進制字符串hex(123)數(shù)據(jù)類型轉(zhuǎn)換【例3.20】常用數(shù)據(jù)類型轉(zhuǎn)換函數(shù)。a=bool('a');b=bool(1);c=bool(0)print(a,b,c,type(a))a=int("3");b=int(3.6)print(a,b,type(a))a=float("3.14");b=float(3)print(a,b,type(a))a=complex("1+2j");b=complex(1,2)print(a,b,type(a))a=str(123);b=str(3.14)print(a,b,type(a))a=ord("a");b=ord("A")print(a,b,type(a))a=chr(97);b=chr(65)print(a,b,type(a))print(123,bin(123),oct(123),hex(123))數(shù)學函數(shù)函數(shù)說明舉例abs(x)求x的絕對值;如果x是復數(shù),則返回復數(shù)的模abs(-10),返回值為10divmod(a,b)分別取得商和余數(shù),返回元組。divmod(20,6),返回值為(3,2)pow(x,y)返回x的y次冪。pow(2,3),返回值為8round(x[,n])對浮點數(shù)x按照四舍五入保留n位小數(shù)round(3.1415,2),返回值為3.14max(x1,x2,…)返回給定參數(shù)的最大值,參數(shù)可以為序列。max(2,3,5,1),返回值為5min(x1,x2,…)返回給定參數(shù)的最小值,參數(shù)可以為序列。min(2,3,5,1),返回值為1eval(str)將字符串中的表達式求值,返回計算結(jié)果。eval("1+2+3+4"),返回值為10內(nèi)置的數(shù)學函數(shù)能夠完成數(shù)學計算.數(shù)據(jù)類型轉(zhuǎn)換與數(shù)學函數(shù)【例3.21】常用數(shù)學函數(shù)print(abs(-10),abs(2+3j))print(divmod(20,6))print(pow(2,3))print(round(3.1415,2))print(max(2,3,5,1),min(2,3,5,1))print(eval("1+2+3+4"))變量和常量在程序執(zhí)行過程中,其值可以改變的量稱為變量。變量變量在賦值的同時被創(chuàng)建,變量不需要事先聲明變量可以被多次賦值,類型是最后賦值的類型變量必須先賦值后使用[例3.15]變量age=2022#intprint(age,type(age))age="2022年"#stringprint(age,type(age))age=234.56#floatprint(age,type(age))print(a)#變量必須先賦值后使用type()獲取變量類型變量可以同時為多個變量賦值可以同時為多個變量賦不同的值變量間可以相互賦值[例3.16]變量x=y=z=100print(x,y,z)name,age="張三",20print(name,age)name2=name#變量間相互賦值print(name2)常量在程序執(zhí)行過程中,其值不能改變的量稱為常量常量分為:字面常量:343.14“HelloPython”符號常量:Python中通常用全部大寫變量名表示常量注意:PI實際上仍然是變量,可以被改變。PI=3識符與關(guān)鍵字標識符:變量、函數(shù)等對象命名的有效字符序列。標識符的命名規(guī)則:(1)標識符的第1個字符必須是字母、數(shù)字、下劃線(_),并且中間不能有空格。合法:max、min、a、b3、_total、Student、_1_2_3、w_3不合法:3abc、M.D.John、!eer、abc?d、a>b
標識符與關(guān)鍵字【例3.23】標識符。max=123;_total=345#合法標識符3abc=5#不合法標識符M.D.John=6#不合法標識符標識符與關(guān)鍵字(2)Python的標識符區(qū)分大小寫。例如:變量名abc和ABC指的是不同變量。【例3.24】標識符區(qū)分大小寫。abc=123ABC=456print(abc,ABC)#abc和ABC標識不同變量標識符與關(guān)鍵字(3)在Python語言中,標識符也可以包括非ASCII碼字符,如漢字?!纠?.25】漢字標識符。長=123寬=456面積=長*寬關(guān)鍵字具有特定含義并有專門用途的標識符稱為關(guān)鍵字。Python不允許使用關(guān)鍵字相同的標識符,作為變量名。例如:關(guān)鍵字可以使用以下命令查看Python的關(guān)鍵字。
python關(guān)鍵字importkeywordkeyword.kwlistPython標準輸入/輸出標準輸入:通過鍵盤輸入數(shù)據(jù),input()標準輸出:在顯示器上輸出數(shù)據(jù),print()Python標準輸入內(nèi)置函數(shù)input()接受鍵盤輸入的字符串。格式:[prompt]:提示用戶需要輸入的提示信息。input()返回的是字符串類型數(shù)據(jù),如果需要其他類型數(shù)據(jù),就需要進行類型轉(zhuǎn)換。input([prompt])標準輸入【例3.27】標準輸入函數(shù)a=input("請輸入字符串:")b=int(input("請輸入整數(shù):"))c=float(input("請輸入浮點數(shù):"))print(a,b,c)(1)啟動debug(debug->debugger)(2)調(diào)試程序(Run->RunModule)(3)Over:單步調(diào)試程序,查看變量值。標準輸出print()函數(shù)輸出數(shù)據(jù),格式:①value:1個或多個數(shù)據(jù)對象,逗號隔開②sep:多個輸出信息之間的分隔符,默認為空格③end:結(jié)束符號,默認為換行符print(value1[,value2,...][,sep=''][,end='\n'])標準輸出[例3.19]print()函數(shù)a=123b=456print(a,b)print(a,b,sep=',')print("我喜歡的編程語言","Python")print("我喜歡的編程語言","Python",sep=',',end='$')print("HelloPython")格式化輸出在很多應用中,需要將數(shù)據(jù)按照一定格式輸出。Python語言有3種方法:字符串格式占位符format()內(nèi)置函數(shù)字符串的format()方法注意:因?qū)W時、篇幅有限,后兩種方法省略。格式占位符輸出用%連接格式字符串與輸出項。格式字符串由普通字符和格式占位符組成。格式字符串%(輸出項1,輸出項2,......輸出項n)格式占位符輸出print("輸出值是%s,%s,%s"%(1.2,3.4,"Thisisastring"))格式符號%s可以將各種類型數(shù)據(jù)轉(zhuǎn)換為字符串輸出普通字符原樣輸出格式占位符規(guī)定輸出項的格式,由“%”和格式字符組成,如“%d”“%f”和“%s”等。每一個占位符對應右邊的一個輸出項。格式占位符輸出格式占位符輸出【例3.29】格式占位符%。print("12345678901234567890")#參考位置print("a=%d,b=%d"%(123,456))print("%d,%o,%x"%(123,123,123))#十進制,八進制,十六進制print("%5d,%5d,"%(123,234))#右對齊print("%-5d,%-5d,"%(123,234))#左對齊print("%8.3f,"%(123.456789))#占8列,3位小數(shù),右對齊print("%-8.3f,"%(123.456789))#占8列,3位小數(shù),左對齊print("%08d,%08d,"%(12,23))#占8列,空位補0print("%8s,%-8s,"%("abc","abc"))fomat函數(shù)輸出format函數(shù)將一個輸出項格式化。一般格式為:format(輸出項[,格式字符串])說明:(1)省略格式字符串,等價于輸出str(輸出項)。print(format(123.45678),format(123),format(3+4j))fomat內(nèi)置函數(shù)(2)根據(jù)輸出項的類型,按照格式字符串中的格式控制符格式化。'd'十進制格式'b'二進制格式'o'八進制格式'x'或'X'十六進制格式,字母小寫或大寫'f'或'F'定點編號格式,'e'或'E'科學格式,使用字母e或E'g'或'G'通用格式(將大寫E用作科學計數(shù)法)'0m.n''0m.nf'占m個字符空間,保留n位小數(shù),寬度不足時補0;'0md'占m個字符空間,不足時補0。fomat內(nèi)置函數(shù)【例3.30】format()函數(shù)輸出。print("123456789012345678901234567890")print(format(123),format(123,'d'),format(123,'8d'),format(123,'08d'))print(format(123,"b"),format(123,"o"))print(format(123,"x"),format(123,"X"))print(format(123.45678,'8.2f'),format(123.45678,'08.2f'))print(format(123.45678,'e'),format(123.45678,'E'))print(format(123.45678,'g'),format(123.45678,'G'))print(format(1234567.8,'g'),format(1234567.8,'G'))fomat內(nèi)置函數(shù)(2)根據(jù)輸出項的類型,按照格式字符串中的格式控制符格式化。'c'將值轉(zhuǎn)換為相應的unicode字符'%'百分百格式','或'_'使用逗號或下劃線作為千位分隔符'<n'左對齊結(jié)果(寬度為n的可用空間內(nèi))'>n'右對齊結(jié)果(寬度為n的可用空間內(nèi))'^n'居中對齊結(jié)果(寬度為n的可用空間內(nèi))''在正數(shù)前使用空格'+'使用加號來指示結(jié)果是正還是負'-'負號僅用于負值fomat內(nèi)置函數(shù)【例3.31】format()函數(shù)輸出。print("123456789012345678901234567890")print(format(97,'c'),format(0.58,'%'),)print(format(123456.789,','),format(123456.789,'_'))print(format(1234567890))print(format(123,"<10"))#左對齊print(format(123,"^10"))#居中print(format(123,">10"))#右對齊print(format(123,""),format(-123,""))
#正數(shù)前加空格print(format(123,"+"),format(-123,"+"))#正數(shù)前加+print(format(123,"-"),format(-123,"-"))#負數(shù)前加-字符串format方法輸出Python2.6開始,新增了一種字符串的format方法str.format(),增強了字符串格式化的功能。使用{}作為占位符。
str.format(),格式化能力更強,更易用,讀者可以更多使用,減少使用格式說明符%方式。字符串format()函數(shù)一般格式:(1)位置映射方法(2)索引號訪問方法(3)關(guān)鍵字映射訪問方法與format函數(shù)相似,也可以設(shè)置進制轉(zhuǎn)換、精度、對齊等。str.format(輸出項1,輸出項2[,.......])(1)位置映射方法不設(shè)置指定位置,按默認順序映射?!纠?.32】位置映射法。print("{}{}{}".format("Hello","Python",3.9))print("{}{}{}".format(123,-123,123.456789))print("今天是{}學習{}第{}天。".format("小明","Python",100))(2)索引號映射方法使用索引號映射多個輸出項。索引號要從0整數(shù)遞增,如0,1,2,3,不可以跳躍,不可以從1開始,否則報錯。print("{1}{0}{1}{2}".format("Hello","Python",3.9))print("{1}{0}{2}".format(123,-123,123.456789))print("今天是{1}學習{0}第{2}天。".format("Python","小明",100))(3)關(guān)鍵字映射方法使用關(guān)鍵字映射多個輸出項。關(guān)鍵字參數(shù)要與參數(shù)的關(guān)鍵字對應上。print("{name}同學,今年{age}歲。".format(name="小明",age=6))print("地址:{ip}:{port}".format(ip="",port=8080))(3)關(guān)鍵字映射方法關(guān)鍵字的輸出項可以使用字典,前邊加上**?!纠?.35】關(guān)鍵字映射方法。stu={'name':'小明','age':6}#字典add={'ip':'','port':8080}
#字典print("{name}同學,今年{age}歲。".format(**stu))print("地址:{ip}:{port}".format(**add)){:格式控制符}使用“{:格式控制符}”設(shè)置進制轉(zhuǎn)換、精度、對齊等,與format函數(shù)的格式控制符相同,【例3.36】格式控制符。print("123456789012345678901234567890")print("{:d}{:8d}{:08d}".format(123,123,123))print("{:b}{:o}{:x}{:X}".format(123,123,123,123))print("{0:8.2f}{0:08.2f}".format(123.45678))print("{0:<10}".format(123))#左對齊print("{0:^10}".format(123))#居中print("{0:>10}".format(123))#右對齊運算符和表達式表達式描述對哪些數(shù)據(jù)進行什么樣的運算,它由運算符和操作數(shù)組成。表示運算的符號稱為運算符,參與運算對象稱為操作數(shù),操作數(shù)可以是常量、變量或函數(shù)等。例如:
2+3運算符運算符包括:算術(shù)運算符關(guān)系運算符邏輯運算符賦值運算符位運算符算術(shù)運算符運算符概述舉例a=3,b=4+加法a+b值為7-減法a-b值為-1*乘法a*b值為12/除法a/b值為0.75%求余(模)a%b值為3**冪,a**b,a的b次方a**b值為81//整除,返回商的整數(shù)部分b//a值為1a//b值為0算術(shù)運算符:進行算術(shù)運算。算術(shù)運算符和表達式[例3.25]算術(shù)運算a=3;b=4print(a+b)#值為7print(a-b)#值為-1print(a*b)#值為12print(a/b)#值為0.75print(a%b)#值為3print(a**b)#值為81print(b//a)#值為1print(a//b)#值為0運算符優(yōu)先級將數(shù)學表達式描述成算術(shù)表達式??梢杂?()"將先運算的括起來,可以有很多層。(a+b)**2/(a*(b+c))[例3.38]表達式a=3b=4c=5d=(a+b)**2/(a*(b+c))print(d)賦值運算符使用賦值運算符“=”連接的式子稱為賦值表達式,其功能是計算右邊表達式的值并賦給左邊的變量。變量=表達式a=3*2#a的值為6a=a+1#a的值為75=3+5#報錯,左邊必須是變量a+2=6#報錯,左邊必須是變量賦值表達式的左邊必須是變量復合賦值運算符在賦值運算符“=”之前加上其他雙目運算符可以構(gòu)成復合賦值運算符。變量雙目運算符=表達式相當于變量=變量運算符(表達式)運算符概述舉例a=3,b=4=賦值+=加法賦值a+=b相當于a=a+b值為7-=減法賦值a-=b相當于a=a-b值為-1*=乘法賦值a*=b相當于a=a*b值為12/=除法賦值a/=b相當于a=a/b值為0.75%=求余賦值a%=b相當于a=a%b值為3**=指數(shù)賦值a**=b相當于a=a**b值為81//=整除賦值b//=a相當于b=b//a值為1a//=b
相當于a=a//b值為0復合賦值運算符[例3.26]復合賦值運算符a=3;b=4a+=bprint(a)#值為7a=3;b=4a*=b+2#相當于a=a*(b+2)print(a)#值為18(1)復合賦值表達式的左邊必須是變量。(2)將復合賦值符右側(cè)的表達式看做一個整體。關(guān)系運算符關(guān)系運算符,用于比較兩個操作數(shù)的關(guān)系,結(jié)果只能是True或False。用關(guān)系運算符連接兩個表達式稱為關(guān)系表達式。運算符概述舉例a=3,b=4==是否相等a==b值False!=是否不相等a!=b值True>左數(shù)>右數(shù)為Truea>b值False<左數(shù)<右數(shù)為Truea<b值True>=左數(shù)>=右數(shù)為Truea>=b值False<=左數(shù)<=右數(shù)為Truea<=b值True關(guān)系運算符
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 受資助學生典型事跡材料范文(14篇)
- 《天體物理學時間》課件
- 文物數(shù)字化與5G技術(shù)應用-洞察分析
- 微笑線與年齡相關(guān)性-洞察分析
- 栓子催化技術(shù)進展-洞察分析
- 勤儉節(jié)約先進事跡材料(范文8篇)
- 網(wǎng)絡拓撲演化分析-洞察分析
- 消費者價值共創(chuàng)研究-洞察分析
- 營銷組合策略在批發(fā)零售中的應用-洞察分析
- 醫(yī)療保險個人工作總結(jié)(5篇)
- 青年應有鴻鵠志當騎駿馬踏平川課件高三上學期勵志主題班會
- 河北省唐山市2021-2022學年高三上學期語文期末試卷
- 華電甘肅能源有限公司華電系統(tǒng)內(nèi)外招聘真題
- 員工宿舍管理條例
- 2024應急預案編制導則
- 江蘇省徐州市2023-2024學年高一上學期1月期末抽測試題 生物 含解析
- Unit 1 You and Me Section B (1a~1d) 說課稿 2024-2025學年人教版(2024)七年級英語上冊
- 園林灌溉施工合同范例
- 數(shù)值分析智慧樹知到期末考試答案2024年
- 跨文化溝通心理學智慧樹知到期末考試答案2024年
- 伯努利方程逐段試算法求水庫回水
評論
0/150
提交評論