




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Python程序設計信息學院2024教材《Python程序設計—從編程基礎到專業應用(第2版)》機械工業出版社,2024年考核平時成績(30%)+
期末考試(70%)平時成績包含實驗(作業)和考勤聯系方式電子郵箱:zhangning@課程介紹Python是目前最為靈活、最接近自然語言的通用編程語言,功能強大,適合解決各類計算問題。Python輕語法重應用的特性使得它非常容易上手,有助于初學者形成良好的編程習慣和思維,對于非計算機類專業的學生來說,Python無疑成為開設程序設計語言課程的首選。同時,Python擁有功能強大的第三方庫,提供了完整的數據分析框架。全世界的編程人員都在不斷地為Python的第三方庫貢獻力量,使得Python能夠通過短短幾行代碼就可以解決一個非常復雜的問題。課程介紹本課程主要特色和創新體現在:一是采用任務驅動的教學理念,每章章首給出本章要完成的任務(案例),所有知識點均圍繞該任務(案例)實現;二是突出Python在數據分析方面的強大功能,從第2章就開始使用Python的標準庫和第三方庫;三是面向財經應用,具有鮮明的專業應用特色。課程介紹第一部分Python編程基礎第1章Python起步第2章數值計算第3章序列
第4章非序列組合第5章
程序的控制結構第6章結構化的程序設計第7章面向對象的程序設計課程介紹第二部分Python專業應用第8章數據分析基礎第9章數據可視化第10章數據分析建模32學時16學時第1章Python起步信息學院2024引言1.1案例:計算終值1.2Python的安裝和運行1.3Python語言簡介1.4程序的基本要素1.5編程實踐:累加、累乘1.6本章小結1.7習題本章將學習如何安裝Python開發環境,如何運行Python程序,了解什么是程序設計語言以及Python的特性,掌握編寫程序的基本要素,包括數據類型、變量、運算符、函數、語句、控制結構等。在章首案例的指引下,本章將介紹如何創建你的第一個具有完整功能的Python程序文件并運行它。1.1案例:計算終值假設你剛開了一個新的儲蓄賬戶,每年的利率是2%,賺的利息在年底支付,然后加到儲蓄賬戶的余額中。編寫一個程序,首先從用戶那里讀取存入賬戶的金額,然后計算并顯示儲蓄賬戶在1年、2年和3年后的金額,使其四舍五入到小數點后兩位。編寫程序文件并命名為ch01.py,運行:首先程序提示輸入初始存入賬戶的金額,即本金,這里輸入1000;然后程序提示輸入年利率,不輸入的話默認為2%,這里采用默認值。輸入完畢后,程序根據輸入值進行運算,并輸出終值計算結果。1.2.1搭建編程環境下載和安裝啟動Python交互式解釋器1.2.2創建并運行程序交互式文件式1.2Python的安裝和運行學習一種編程語言,首先要找一款合適的集成開發工具。IDLE是Python軟件包自帶的一個集成開發環境,初學者可以利用它方便地創建、運行、測試和調試Python程序。初學者使用IDLE編輯器寫代碼,能夠專注于Python本身,而不是如何使用工具,手動運行代碼,可以更加直觀地了解程序腳本的解釋執行過程。下面就來看一下如何下載和安裝Python軟件包并使用其中的IDLE。1.2.1搭建編程環境打開Python官方主頁,可以訪問所有相關資源:/點擊“downloads”,可以看到當前最新版本,比如Python3.11.1。單擊“DownloadPython3.11.1”按鈕,直接下載Windows操作系統的Python解釋器。如果要下載其他操作系統的Python解釋器,點擊相應的操作系統鏈接,比如Linux/UNIX、macOS。下載和安裝雙擊下載的可執行文件“python-3.11.1-amd64.exe”安裝Python解釋器。下載和安裝勾選最下方“AddPython.exetoPATH”,選擇“InstallNow”將Python安裝在默認路徑下,選擇“Customizeinstallation”自行指定安裝路徑(如C:\Python311)。安裝完成后,在“程序”里就可以找到Python程序。IDLE是Python集成開發環境(IntegratedDevelopmentEnvironment),也是最常使用的Python編程環境,Python3.11是Python命令行,也是常用的Python編程環境。下載和安裝通過IDLE方式啟動:通過命令行方式啟動:啟動Python交互式解釋器兩種界面都以三個大于號“>>>”作為提示符,可以在提示符后輸入要執行的語句,按回車執行。運行Python程序有兩種方式:交互式和文件式。本課程中凡是出現提示符“>>>”,表示代碼在交互式下運行,不帶該提示符的代碼則表示以文件式的方式運行。1.2.2創建并運行程序交互式指Python解釋器即時響應用戶輸入的每條代碼,給出輸出結果。比如,在IDLE中輸入print("HelloWorld")語句,回車后,可以看到語句的運行結果是在屏幕上輸出“HelloWorld”。交互式一般用于調試少量代碼。在“>>>”后輸入exit()或者quit()可以退出Python運行環境。交互式文件式是最常用的編程方式,也稱為批量式。指用戶將Python程序寫在一個或多個文件中,然后啟動Python解釋器批量執行文件中的代碼。在IDLE中,選擇File→NewFile菜單選項或者按Ctrl+N打開一個新窗口,在其中輸入Python代碼,并保存為Python程序文件(后綴名為py)。文件式在新窗口中輸入print("HelloWorld")語句,選擇File→SaveAs菜單選項,將文件保存為“hello.py”,選擇想要保存文件的路徑(如C:\Python311),點擊“保存”按鈕保存。文件式程序文件也被稱為模塊(module)。按快捷鍵F5運行程序,或者選擇Run→RunModule菜單選項,運行結果顯示在Python交互界面中。文件式Python程序文件被保存并關閉后,可以通過在IDLE中選擇File→Open菜單選項或者按快捷鍵Ctrl+O重新打開它,也可以在文件資源管理器中找到這個程序文件,點擊右鍵,選擇“EditwithIDLE”重新打開它。注意:不要通過雙擊打開一個Python程序文件,雙擊時默認會通過命令行方式執行這個程序。文件式1.3Python語言簡介1.3.1程序設計語言低級語言和高級語言常用的程序設計語言通用語言和專用語言靜態語言和動態語言1.3.2Python的起源和特性語法特性開源語言功能強大程序就是告訴計算機做什么的指令序列,我們需要用一種計算機能夠理解的語言來表達這些指令。如果我們能用自然語言告訴計算機該做什么那是最好不過了,計算機科學家們也正在朝這個方向努力(比如蘋果的Siri),但我們還沒有辦法讓計算機完全理解人類的自然語言。同時,人類的自然語言并不非常適合描述復雜的算法,因為自然語言充滿了模糊性和不精確性。為此,計算機科學家們設計了能夠以精確、清晰的方式表達計算的符號來解決這個問題,這些特殊的符號就被稱為程序設計語言。程序設計語言中的每一種結構都具有精確的形式(稱為句法)和精確的含義(稱為語義),程序員們經常把他們寫出來的程序稱為計算機代碼。1.3.1程序設計語言機器語言和匯編語言統稱為低級語言。機器語言使用二進制代碼表達指令,是計算機硬件可以直接識別和執行的編程語言,用機器語言編寫程序十分繁冗,程序也難以閱讀和修改。匯編語言使用助記符與機器語言中的指令進行一一對應,在計算機發展早期能幫助程序員提高編程效率。高級語言是接近自然語言的編程語言,可以更容易地描述計算問題并利用計算機解決計算問題。第一個廣泛應用的高級語言是誕生于1972年的C語言,之后50年來先后誕生了幾千種高級語言,其中大多數語言由于應用領域狹窄而退出了歷史舞臺。Python作為一種高級語言,其第一個公開發行版發行于1991年。低級語言和高級語言除了Python、C之外,常用的程序設計語言還包括C++、C#、Java、JavaScript、R、PHP、Ruby、Matlab、HTML、Perl、Fortran、SQL,還有谷歌的Go語言和蘋果的Swift語言,等等。從2014年開始,IEEESpectrum雜志每年都會發布編程語言排行榜,Python的排名從2016年開始持續上升,2017年躍居榜首,至今已蟬聯六年冠軍,2022年位于排行榜前五的編程語言分別是:Python、C、C++、C#、Java。根據TIOBE在2022年12月發布的最新編程語言指數,Python首次超越C位居榜首,排名前五的編程語言同樣是:Python、C、C++、Java、C#。常用的程序設計語言通用語言是指能夠用于編寫多種用途程序的編程語言,語法中沒有專門用于特定應用的程序元素,如Python、C、C++、C#、Java,等等。Python是目前最為靈活、最接近自然語言的通用編程語言,功能強大,適合解決各類計算問題,是數據科學、數據分析、人工智能(artificialintelligence)、區塊鏈(blockchain)等領域的首選語言。專用語言是指包含針對特定應用的程序元素,或者應用領域比較狹窄的編程語言,如HTML(用來描述網頁的標記語言)、JavaScript(適用于Web客戶端開發的腳本語言)、PHP(適用于Web服務器端開發的腳本語言)、Matlab(科學計算語言)、SQL(數據庫操作語言),等等。通用語言和專用語言高級語言按照計算機執行方式的不同可以分成兩類:采用解釋執行的動態語言和采用編譯執行的靜態語言。編譯是將源代碼(高級語言代碼)轉換成目標代碼(機器語言代碼)的過程,執行編譯的計算機程序稱為編譯器。解釋是將源代碼逐條轉換成目標代碼同時逐條運行目標代碼的過程,執行解釋的計算機程序稱為解釋器。解釋和編譯的區別在于:編譯是一次性地翻譯,一旦程序被編譯,就不再需要編譯器或者源代碼;解釋則在每次程序運行時都需要解釋器和源代碼。這兩者的區別類似于外語資料的翻譯和實時的同聲傳譯。靜態語言和動態語言C、C++、Java等語言是采用編譯執行的靜態語言,而JavaScript、PHP等語言則是采用解釋執行的動態語言。Python是采用解釋執行方式的現代動態語言,但其解釋器保留了編譯器的部分功能,隨著程序運行,解釋器也會生成一個完整的目標代碼,從而提升了計算機性能。靜態語言和動態語言Python的始創者是荷蘭人吉多(GuidovonRossum)。1982年,吉多從阿姆斯特丹大學獲得了數學和計算機碩士學位。1989年圣誕節期間,他為了打發圣誕節的無趣,決心開發一個新的腳本解釋程序。Python這一名稱來自英國肥皂劇《MontyPython》,吉多之所以選中Python作為語言的名字,是因為他太喜歡這部肥皂劇了。但Python經常用“巨蟒”(Python的原義)的圖標。1.3.2Python的起源和特性Python的第一個公開發行版發行于1991年。2000年,Python2.0正式發布,開啟了其廣泛應用的新時代。2008年,Python3.0正式發布,3.0版本無法向下兼容2.0版本的既有語法。2010年,Python2.x系列發布了最后一版,即2.7版,從此終結了2.x系列版本的發展。1.3.2Python的起源和特性語法特性簡潔易學:Python語言關鍵字少、結構簡單、語法清晰,實現相同功能的代碼行數僅相當于其它語言的1/10~1/5,初學者可以在短時間內輕松上手。強制可讀:Python語言通過強制縮進(類似文章段落的首行空格)來體現語句間的邏輯關系,顯著提高了程序的可讀性。支持中文:Python3.0解釋器采用UTF-8編碼表達所有字符,可以表達英文、中文、韓文、法文等各類語言。開源語言開源指的是開放源代碼,即源代碼公開,任何人都可以訪問、學習、修改甚至是發布。Python語言是開源項目的優秀代表,其解釋器的全部代碼都是開放的,任何計算機高手都可以為不斷推動Python語言的發展做出貢獻。Python軟件基金會作為一個非營利組織,擁有Python2.1版本之后所有版本的版權,該組織致力于更好地推進并保護Python語言的開放性。世界各地的程序員通過開源社區貢獻了十幾萬個第三方函數庫,幾乎覆蓋了計算機技術的各個領域。Python標準庫和第三方庫眾多,功能強大,既可以用來開發小工具,也可以用來開發企業級應用。Python提供了完整的數據分析框架,本課程第二部分(第8-10章)將予以介紹。其中:NumPy是一個用于多維數組和矩陣運算的數學庫;Pandas是一個基于NumPy的專門處理分析表格型數據的庫;Matplotlib是Python中使用最多的2D圖像繪制工具包,可以非常簡單地將數據可視化;Scikit-Learn是用Python開發的機器學習庫,包括大量的機器學習算法和數據集,是一個簡單高效的數據挖掘工具。功能強大1.4程序的基本要素1.4.1數據類型1.4.2變量1.4.3運算符1.4.4函數1.4.5語句1.4.6控制結構一種數據類型(type)是一系列值以及為這些值定義的一系列操作方法的集合。Python的基本數據類型包括數字和字符串,還有像列表、元組、字典、集合這樣的組合數據類型。1.4.1數據類型數據類型類(型)名類別示例整型int數字10浮點型float10.0布爾型boolTrue字符串str序列"HelloWorld"列表list[1,2,3,4,5]元組tuple(1,2,3,4,5)字典dict非序列組合{"principal":100,"futurevalue":110}集合set{1,2,3,4,5}字符串類型是Python最常見的數據類型,字符串就是字符的序列。在Python里,字符串可以用單引號、雙引號或三引號括起,但必須配對,其中三引號既可以是三個單引號,也可以是三個雙引號。單引號和雙引號的作用相同,而用三引號括起來的字符串支持換行。比如,"HelloWorld"就是一個字符串,也可以用'HelloWorld'或'''HelloWorld'''表示。注意:編寫程序過程中所使用的符號必須是英文符號。空串即空字符串,是一個不包含任何內容的字符串,可以表示為''、""、''''''。需要注意的是,空串并不是包含空格的字符串(表示為''、""、''''''),空格也是一個字符。字符串整型一般以十進制(decimal)表示,但Python也支持八進制、十六進制或二進制來表示整型。八進制(octal)整數以“0o”或“0O”開始,十六進制(hexadecimal)整數則以“0x”或“0X”開始,二進制(binary)整數以“0b”或“0B”開始。整型八進制十六進制二進制int()是整型的轉換函數,可以將其他數據類型轉換為整型,其最為常見的用法是將包含整數的字符串轉換為整型,比如int('1000'),其結果為整數1000。注意:'1000'是包含整數的字符串,如果想對它進行數值運算,必須先轉換為整型。如果想將整型轉換為字符串類型,可以使用字符串轉換函數str(),如str(1000)的結果為'1000'。整型轉換函數的完整形式為:int(x,base=10)。參數base表示是幾進制,默認是十進制,即不指定base參數時,默認轉換為十進制整數。整型浮點數也稱為小數,可以用直接的十進制或科學計數法表示。浮點數通常都有一個小數點和一個可選的后綴e(大寫或小寫,表示科學計數法),在e和指數之間可以用“+”或“-”表示正負,正數可以省略。float()是浮點型的轉換函數,可以將其他數據類型轉換為浮點型,最為常見的用法是將包含小數的字符串轉換為浮點型。若要將整型轉換為浮點型,后面加個“.0”即可。浮點型十進制表示法科學計數法float()0.04.3e25float(10)3.14159.384e-23float(True)-777.4.2E-10float('10.0')-5.5555671196.022E16float(0x10)也可以使用int()函數將浮點型轉換為整型,直接舍去小數部分截取整數部分。使用int()或float()將字符串轉換為數字類型時,該字符串必須包含數字,否則程序會報錯,錯誤類型為“ValueError”(值錯誤)。注意:浮點數在運算過程中會出現誤差,通常,浮點型的精度為15~17位有效數字。浮點型布爾型只有兩個值:True或False。對于值為零的數字或空集(空串、空列表、空元組、空字典),在Python中的布爾值都是False,而對于值不為零的任何數字或非空集(非空串、非空列表、非空元組、非空字典),其布爾值均為True。bool()是布爾型的轉換函數,可以將其他數據類型轉換為布爾型。在數學運算中,True和False分別對應于1和0,float(True)結果為1.0。布爾型變量(variable)是編程語言中能存儲計算結果或能表示值的抽象概念。在使用變量前,需要對其進行賦值,之后可以根據需要隨時對變量重新賦值。1.4.2變量變量的名字也稱為標識符(identifier),與其他大多數高級語言一樣,Python中變量命名規則如下:以字母或下劃線(_)開頭;其他的字符可以是數字、字母或下劃線;不能將Python關鍵字作為變量名。變量的命名FalseNoneTrueandasassertasyncawaitbreakclasscontinuedefdelelifelseexceptfinallyforfromglobalifimportinislambdanonlocalnotorpassraisereturntrywhilewithyield我們已經了解了True和False這兩個關鍵字,本章后續還會學習if、else、for、in等關鍵字。除以上必須遵守的命名規則以外,我們還給出如下建議:應既簡短又具有描述性,例如name比n好,student_name比s_n好。慎用小寫字母l和大寫字母O,因為可能被人錯看成數字1和0。避免用下劃線開頭,在Python里下劃線開頭的變量有特殊含義。在本章案例中,我們使用了如下4個變量:principal:用來存儲初始存入賬戶的金額,也就是本金。future_value:用來存儲計算出來的終值。interest_rate:用來表示年利率。year:用來表示年份。變量的命名變量賦值通過等號(=)來執行。Python是一種動態語言,因此不需要預先聲明變量的類型,變量的類型和值在賦值那一刻被初始化;同時變量的類型也是可以隨時變化的,也就是說,可以先將某個變量賦值為一個字符串,然后又將其賦值為一個數字。變量的賦值假設在本章案例中,我們初始存入賬戶的金額為1000元、年利率為2%,那么我們可以給變量principal賦值為1000、給變量interest_rate賦值為0.02。變量的賦值在交互式解釋器中,可以用變量名查看該變量的原始值。注意與print()函數輸出結果的不同,直接用變量名查看,字符串帶引號,而用print()函數輸出時不帶引號。運算符(operator)也稱為操作符,在程序中用于計算。Python支持單目運算符和雙目運算符:單目運算符帶一個操作數,操作數在運算符的右邊;雙目運算符帶兩個操作數,操作數在運算符的兩邊。操作數(operand)可以是變量、常量、函數調用的返回值等。表達式(expression)是運算符和操作數的有效組合,通常有一個計算結果。1.4.3運算符算數運算符運算符功能expr1**expr2求冪+exprexpr的結果符號不變-expr對expr的結果符號取負expr1*expr2乘法expr1/expr2除法expr1//expr2整除expr1%expr2取余expr1+expr2加法expr1-expr2減法用于數字的算數運算符:整除運算符“//”返回比真正的商小的最接近的整數,比如2//3的結果為0,而-2//3的結果為-1。本章案例中計算終值的表達式需要用到加法(+)、乘法(*)和求冪(**)三種算數運算符:principal*(1+interest_rate)**year。注意求冪的優先級最高,其次是乘法,最后是加法,為了先進行加法運算,需要加括號。當principal為1000、interest_rate為0.02、year為2時,終值計算結果為1040.4。算數運算符格式化運算符用于指定字符串的格式,用“%”表示左邊的操作數是格式化字符串,其中包含格式符,這些格式符為真實值預留位置,并說明真實數值應該呈現的格式;右邊的操作數是一個元組,將多個值傳遞給格式化字符串,每個值對應一個格式符。格式化運算符格式符格式格式符格式%c單個字符%s字符串%d或%i十進制整型%f或%F浮點型%e或%E浮點型的科學計數法%%輸出一個單一的%輔助符號作用m.nm是顯示的最小總寬度,n是小數點后的位數(如果有的話)0位數顯示不夠m時,前面用0填充,而不是默認的空格格式化運算符本章案例中在計算出終值后,要將結果顯示在屏幕上。格式化輸出的字符串包括年份和終值,其中年份用十進制整型的格式符“%d”,終值用浮點型的格式符“%f”,同時對于終值保留兩位小數,最小總寬度為7(包括小數點),加入輔助符號后的格式符為“%7.2f”,表達式如下:"year%d:%7.2f"%(year,future_value)格式化運算符“%”右邊的元組中第一個元素year對應第一個格式符“%d”,第二個元素future_value對應第二個格式符“%7.2f”。當year為2、future_value為1040.4時,格式化字符串為"year2:1040.40"。注意:格式化字符串中除了格式符之外的字符,都原樣輸出。函數(function)就像小程序一樣,可以用來實現特定的功能。Python有很多函數,程序員也可以自己定義函數。調用函數時,應使用它的名稱,后跟圓括號。許多函數在調用時需要值,這些值稱為參數,在調用函數時放在括號內。當一個函數調用有多個參數時,參數之間用逗號分隔。內置函數(built-infunction)是Python自帶的函數,可供程序員直接使用,如str()、int()、float()、bool()等類型轉換函數,下面介紹內置的輸入輸出函數。1.4.4函數print()函數可以用來輸出字符串,比如print(“HelloWorld”);也可以以字符串形式輸出變量的值,如果要輸出多個變量的值,則用逗號分隔,比如print(year,future_value)。雖然year和future_value都不是字符串類型,但在輸出的時候,print()函數會自動將他們轉換為字符串輸出,用逗號分隔的多個變量,在輸出時默認的分隔符是空格,可以通過指定sep參數來改變。本章案例中我們可以輸出格式化后的字符串,即:print("year%d:%7.2f"%(year,future_value))。print()函數print()函數的完整形式為:print(*args,sep='',end='\n',file=None,flush=False)參數*args表示要輸出的內容,可以包括多項;參數sep指定輸出多項內容時如何分隔,默認是空格;參數end指定輸出以什么結尾,默認是換行符;參數file指定輸出到哪個文件,默認是輸出到系統的標準輸出(屏幕);參數flush指定是否刷新輸出流,默認是否。print()函數從用戶那里得到數據輸入的最簡單的方法是用input()函數,它讀取系統的標準輸入(鍵盤輸入),并將讀取到的數據賦值給指定的變量。無論用戶輸入什么內容,input()函數都以字符串類型返回結果。在獲得用戶輸入之前,可以給用戶一些提示性文字,放在字符串內,作為input()函數的參數。input()函數在本章案例中,初始存入賬戶的金額和年利率都是由用戶輸入,而不是直接由程序員進行賦值,這就需要用到input()函數。以輸入本金為例,我們調用如下函數:input("Theinitialprincipalis:")如果用戶輸入1000,返回的結果是字符串'1000'。由于需要對本金進行數值運算,必須將其轉換為數字類型,假設本金都是整數,我們可以用int()函數進行轉換,即:int(input("Theinitialprincipalis:"))input()函數語句(statement)就是告訴計算機做某件事情的一條代碼。如下一行代碼就是一條告訴計算機要輸出終值計算結果的語句:print("year%d:%7.2f"%(year,future_value))本小節主要介紹賦值語句和注釋語句。1.4.5語句前面提到,賦值是創建變量的一種方法。Python語言中,“=”表示賦值,即將等號右側的結果賦給左側變量,包含等號的語句稱為賦值語句。賦值語句的右側可以是任何復雜的表達式,如下語句計算終值并將結果賦值給變量future_value:future_value=principal*(1+interest_rate)**year賦值語句與輸出語句不同,輸入語句通過調用input()函數接收用戶輸入,返回的結果需要賦值給指定的變量,這就需要用到賦值語句。仍然以輸入初始存入賬戶的金額為例,用戶通過鍵盤輸入的數據需要賦值給變量principal,即:principal=int(input("Theinitialprincipalis:"))當程序調用input()函數時會停下來,等待用戶輸入,當用戶按下Enter鍵時,表示輸入完畢,程序將用戶輸入的內容作為字符串返回,繼續執行賦值語句。賦值語句此外,還有一種同步賦值語句,可以同時給多個變量賦值。如果想交換兩個變量的值,在其他編程語言里,需要用到一個中間變量(t)來保存其中一個變量的值(t=a),然后將另一個變量的值賦給這個變量(a=b),最后再將中間變量的值賦給另一個變量(b=t),但在Python語言里,同步賦值語句可以實現無需中間變量直接交換兩個變量的值。同步賦值語句可以使賦值過程變得更簡潔,通過減少變量使用,簡化語句表達,增加程序的可讀性。賦值語句對于編寫程序來說,注釋是一項非常有用的功能,它能夠讓你使用自然語言在程序中添加說明,從而提升代碼的可讀性。。Python使用“#”標示注釋,從“#”開始直到此行結束的內容都是注釋,“#”可以在一行的任何地方開始,解釋器會忽略掉“#”之后的所有內容,比如,我們可以為接收本金輸入的語句添加如下注釋(中文說明):principal=int(input("Theinitialprincipalis:"))#輸入本金注釋語句編寫注釋的主要目的是闡述代碼要做什么,以及是如何做的。在程序的編寫過程中,程序員對每條語句都很清楚,但過段時間以后,有些細節可能會遺忘,這時候注釋就很有用。另外,編寫的程序需要被別人閱讀,注釋能夠幫助其他人快速理解你的程序。作為初學者,最值得養成的習慣之一就是,在代碼中編寫清晰、簡潔的注釋。此外,在編寫和調試程序的過程中,有的時候暫時不想讓某些語句被執行,但又不想把它們從程序中刪除,就可以在這些語句之前加上“#”,讓它們成為注釋語句。在以后又想使用它們的時候,只要把“#”刪掉即可。比如,我們可以暫時把計算終值的語句改為注釋語句,去嘗試更好的計算并輸出不同年份終值的方法。注釋語句一般情況下,程序中的語句是按順序逐條執行的,從第一條一直執行到最后一條。僅使用順序結構可以用來解決一些小問題,但不足以解決大多數有趣的問題。我們需要用到其他兩種控制結構——分支結構和循環結構。1.4.6控制結構分支結構允許程序包含的語句在程序運行時可能執行,也可能不執行。程序仍然從頂部開始后向底部執行,但是可能跳過程序中的某些語句。和大多數程序設計語言一樣,Python使用if關鍵字來構成分支語句,包括單分支語句、雙分支語句和多分支語句,這里介紹雙分支語句,即if-else語句,其語法形式如下:if<condition>:<statements>else:<statements>分支結構<statements>是一個語句塊,可以包含一到多條語句。<condition>為條件表達式,其值為布爾型,即True或False。如果值為True,則執行if下的語句塊,跳過else部分;如果值為False,則跳過if下的語句塊,執行else下的語句塊。
強制縮進使得程序邏輯分明,非常容易看出每條語句屬于哪個語句塊。縮進一般為4個空格,也可以使用Tab鍵。Python初學者剛開始編寫程序時,經常會出現縮進錯誤(IndentationError),仔細檢查語句是否縮進正確,也可以使用IDLE的自動縮進來避免錯誤,比如輸入if語句后回車,下一行語句開始的位置自動縮進。分支結構本章案例的年利率也由用戶輸入,但提供了2%的默認值,即如果用戶什么也不輸入,年利率默認為0.02,如果用戶輸入了值,則采用用戶輸入的值。這就需要使用一個雙分支結構來進行處理。判斷條件就是用戶是否輸入了值,如果輸入了,則將其轉換為浮點型,以便用來進行數值運算;如果什么也沒輸入,則默認為0.02。代碼如下:interest_rate=input("Theannualinterestrateis(defaultis2%):")ifinterest_rate:
interest_rate=float(interest_rate)else:
interest_rate=0.02分支結構執行到input()函數時,程序停下來等待用戶輸入。如果用戶直接按下Enter鍵,那么返回的字符串就是一個空串,空串的布爾值為False,跳過if下的語句塊,執行else下的語句塊,即賦值為默認值。
循環結構允許程序多次重復執行相同的語句。雖然不采用循環結構,通過多次復制粘貼相同的語句也可以實現多次執行,但這樣只能執行固定次數,且語句一旦有修改,對每個副本都要進行修改。Python提供了for和while兩種循環結構,都允許程序中只出現一次的語句在程序運行時多次重復執行,這里介紹用來形成指定循環次數的for語句,其語法形式如下:for<var>in<sequence>:<statements>循環結構<sequence>是序列,可以是字符串、列表或元組,<var>是循環變量,會遍歷<sequence>中的所有值,也就是說,<sequence>中有多少個值,for下的語句塊(循環體)就會循環多少次。
for語句經常與Python的內置函數range()一起使用,用來指定循環次數,range()函數返回一個可迭代的范圍對象。比如,range(1,4)返回一個從1到3的整數范圍,循環變量遍歷這個整數范圍,即第一次執行循環體時賦值為1,第二次執行時賦值為2,第三次執行時賦值為3,然后循環結束,執行for語句之后的語句。range()函數的完整形式為:range(start,stop[,step])。start指定起始的整數,默認是0;stop指定終止的整數為stop(不含stop);step指定序列增長的步長,默認是1。循環結構本章案例需要計算1年、2年和3年后的終值,可以寫三條語句分別進行計算,再寫三條語句分別輸出結果。我們來嘗試一下采用循環結構,將之前已經寫好的計算終值的語句和輸出終值計算結果的語句放入循環體內,year作為循環變量,如下所示:foryearinrange(1,4):
future_value=principal*(1+interest_rate)**yearprint("year%d:%7.2f"%(year,future_value))至此,本章案例已編寫完成,將程序文件保存為ch01.py,運行程序,如果有錯誤則進行修正。輸入本金1000、年利率不輸入,檢查程序運行結果是否正確;輸入本金2000、年利率0.03,再次檢查程序運行結果是否正確。循環結構采用循環結構的好處顯而易見,循環體內的兩條語句被重復執行三次。
累加或累乘(accumulator)是一種常見的算法模式,需要使用一個累加或累乘變量以及一個循環結構。首先給累加或累乘變量賦初值,然后在循環體中不斷更新累加或累乘變量的值,循環結束后得到終值。1.5編程實踐:累加、累乘用戶輸入一個整數,程序計算該數的階乘,并輸出結果。比如,用戶輸入6,程序計算6的階乘,輸出結果720。【例1-1】求階乘注意:賦值語句fact=fact*i也可以寫作fact*=i。
借助于這個例子,我們來看一下Python的賦值過程。在Python中,給變量fact賦值就像是給一個值貼上黃色的小便箋,上面寫著“這就是fact”。【例1-1】中給fact賦值n次,假設用戶輸入
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 市值波動對企業董事會表現的影響-洞察闡釋
- 可持續發展視角下的保險產品設計-洞察闡釋
- 景觀可持續性評估-洞察闡釋
- 云游民心理健康-洞察闡釋
- 裝修公司水電工現場管理制度
- 賽門鐵克dlp加密管理制度
- 釘釘公告發布公司管理制度
- 除塵室爆炸管理制度
- 項目應收款管理制度
- 飯店操作間管理制度
- 高速鐵路客運服務專業人才培養方案
- 《商業銀行信用卡業務監督管理辦法》試卷及答案
- 常用應用文寫作格式
- 空調檢測報告
- 變壓器實驗報告
- 游樂場合作經營合同書
- 神經生理治療技術
- 浙江溫州高速公路甌北片區招聘高速公路巡查人員考試真題2022
- 江蘇蘇州工業園區蘇相合作區管理委員會機關工作人員招聘13人告5204筆試題庫含答案解析
- 三年級下學期音樂復習題
- 電網調度自動化系統調試報告模板
評論
0/150
提交評論