信息安全案例教程:技術(shù)與應用 第2版 課件 第1章 Python起步_第1頁
信息安全案例教程:技術(shù)與應用 第2版 課件 第1章 Python起步_第2頁
信息安全案例教程:技術(shù)與應用 第2版 課件 第1章 Python起步_第3頁
信息安全案例教程:技術(shù)與應用 第2版 課件 第1章 Python起步_第4頁
信息安全案例教程:技術(shù)與應用 第2版 課件 第1章 Python起步_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

Python程序設計信息學院2024教材《Python程序設計—從編程基礎到專業(yè)應用(第2版)》機械工業(yè)出版社,2024年考核平時成績(30%)+

期末考試(70%)平時成績包含實驗(作業(yè))和考勤聯(lián)系方式電子郵箱:zhangning@課程介紹Python是目前最為靈活、最接近自然語言的通用編程語言,功能強大,適合解決各類計算問題。Python輕語法重應用的特性使得它非常容易上手,有助于初學者形成良好的編程習慣和思維,對于非計算機類專業(yè)的學生來說,Python無疑成為開設程序設計語言課程的首選。同時,Python擁有功能強大的第三方庫,提供了完整的數(shù)據(jù)分析框架。全世界的編程人員都在不斷地為Python的第三方庫貢獻力量,使得Python能夠通過短短幾行代碼就可以解決一個非常復雜的問題。課程介紹本課程主要特色和創(chuàng)新體現(xiàn)在:一是采用任務驅(qū)動的教學理念,每章章首給出本章要完成的任務(案例),所有知識點均圍繞該任務(案例)實現(xiàn);二是突出Python在數(shù)據(jù)分析方面的強大功能,從第2章就開始使用Python的標準庫和第三方庫;三是面向財經(jīng)應用,具有鮮明的專業(yè)應用特色。課程介紹第一部分Python編程基礎第1章Python起步第2章數(shù)值計算第3章序列

第4章非序列組合第5章

程序的控制結(jié)構(gòu)第6章結(jié)構(gòu)化的程序設計第7章面向?qū)ο蟮某绦蛟O計課程介紹第二部分Python專業(yè)應用第8章數(shù)據(jù)分析基礎第9章數(shù)據(jù)可視化第10章數(shù)據(jù)分析建模32學時16學時第1章Python起步信息學院2024引言1.1案例:計算終值1.2Python的安裝和運行1.3Python語言簡介1.4程序的基本要素1.5編程實踐:累加、累乘1.6本章小結(jié)1.7習題本章將學習如何安裝Python開發(fā)環(huán)境,如何運行Python程序,了解什么是程序設計語言以及Python的特性,掌握編寫程序的基本要素,包括數(shù)據(jù)類型、變量、運算符、函數(shù)、語句、控制結(jié)構(gòu)等。在章首案例的指引下,本章將介紹如何創(chuàng)建你的第一個具有完整功能的Python程序文件并運行它。1.1案例:計算終值假設你剛開了一個新的儲蓄賬戶,每年的利率是2%,賺的利息在年底支付,然后加到儲蓄賬戶的余額中。編寫一個程序,首先從用戶那里讀取存入賬戶的金額,然后計算并顯示儲蓄賬戶在1年、2年和3年后的金額,使其四舍五入到小數(shù)點后兩位。編寫程序文件并命名為ch01.py,運行:首先程序提示輸入初始存入賬戶的金額,即本金,這里輸入1000;然后程序提示輸入年利率,不輸入的話默認為2%,這里采用默認值。輸入完畢后,程序根據(jù)輸入值進行運算,并輸出終值計算結(jié)果。1.2.1搭建編程環(huán)境下載和安裝啟動Python交互式解釋器1.2.2創(chuàng)建并運行程序交互式文件式1.2Python的安裝和運行學習一種編程語言,首先要找一款合適的集成開發(fā)工具。IDLE是Python軟件包自帶的一個集成開發(fā)環(huán)境,初學者可以利用它方便地創(chuàng)建、運行、測試和調(diào)試Python程序。初學者使用IDLE編輯器寫代碼,能夠?qū)W⒂赑ython本身,而不是如何使用工具,手動運行代碼,可以更加直觀地了解程序腳本的解釋執(zhí)行過程。下面就來看一下如何下載和安裝Python軟件包并使用其中的IDLE。1.2.1搭建編程環(huán)境打開Python官方主頁,可以訪問所有相關(guān)資源:/點擊“downloads”,可以看到當前最新版本,比如Python3.11.1。單擊“DownloadPython3.11.1”按鈕,直接下載Windows操作系統(tǒng)的Python解釋器。如果要下載其他操作系統(tǒng)的Python解釋器,點擊相應的操作系統(tǒng)鏈接,比如Linux/UNIX、macOS。下載和安裝雙擊下載的可執(zhí)行文件“python-3.11.1-amd64.exe”安裝Python解釋器。下載和安裝勾選最下方“AddPython.exetoPATH”,選擇“InstallNow”將Python安裝在默認路徑下,選擇“Customizeinstallation”自行指定安裝路徑(如C:\Python311)。安裝完成后,在“程序”里就可以找到Python程序。IDLE是Python集成開發(fā)環(huán)境(IntegratedDevelopmentEnvironment),也是最常使用的Python編程環(huán)境,Python3.11是Python命令行,也是常用的Python編程環(huán)境。下載和安裝通過IDLE方式啟動:通過命令行方式啟動:啟動Python交互式解釋器兩種界面都以三個大于號“>>>”作為提示符,可以在提示符后輸入要執(zhí)行的語句,按回車執(zhí)行。運行Python程序有兩種方式:交互式和文件式。本課程中凡是出現(xiàn)提示符“>>>”,表示代碼在交互式下運行,不帶該提示符的代碼則表示以文件式的方式運行。1.2.2創(chuàng)建并運行程序交互式指Python解釋器即時響應用戶輸入的每條代碼,給出輸出結(jié)果。比如,在IDLE中輸入print("HelloWorld")語句,回車后,可以看到語句的運行結(jié)果是在屏幕上輸出“HelloWorld”。交互式一般用于調(diào)試少量代碼。在“>>>”后輸入exit()或者quit()可以退出Python運行環(huán)境。交互式文件式是最常用的編程方式,也稱為批量式。指用戶將Python程序?qū)懺谝粋€或多個文件中,然后啟動Python解釋器批量執(zhí)行文件中的代碼。在IDLE中,選擇File→NewFile菜單選項或者按Ctrl+N打開一個新窗口,在其中輸入Python代碼,并保存為Python程序文件(后綴名為py)。文件式在新窗口中輸入print("HelloWorld")語句,選擇File→SaveAs菜單選項,將文件保存為“hello.py”,選擇想要保存文件的路徑(如C:\Python311),點擊“保存”按鈕保存。文件式程序文件也被稱為模塊(module)。按快捷鍵F5運行程序,或者選擇Run→RunModule菜單選項,運行結(jié)果顯示在Python交互界面中。文件式Python程序文件被保存并關(guān)閉后,可以通過在IDLE中選擇File→Open菜單選項或者按快捷鍵Ctrl+O重新打開它,也可以在文件資源管理器中找到這個程序文件,點擊右鍵,選擇“EditwithIDLE”重新打開它。注意:不要通過雙擊打開一個Python程序文件,雙擊時默認會通過命令行方式執(zhí)行這個程序。文件式1.3Python語言簡介1.3.1程序設計語言低級語言和高級語言常用的程序設計語言通用語言和專用語言靜態(tài)語言和動態(tài)語言1.3.2Python的起源和特性語法特性開源語言功能強大程序就是告訴計算機做什么的指令序列,我們需要用一種計算機能夠理解的語言來表達這些指令。如果我們能用自然語言告訴計算機該做什么那是最好不過了,計算機科學家們也正在朝這個方向努力(比如蘋果的Siri),但我們還沒有辦法讓計算機完全理解人類的自然語言。同時,人類的自然語言并不非常適合描述復雜的算法,因為自然語言充滿了模糊性和不精確性。為此,計算機科學家們設計了能夠以精確、清晰的方式表達計算的符號來解決這個問題,這些特殊的符號就被稱為程序設計語言。程序設計語言中的每一種結(jié)構(gòu)都具有精確的形式(稱為句法)和精確的含義(稱為語義),程序員們經(jīng)常把他們寫出來的程序稱為計算機代碼。1.3.1程序設計語言機器語言和匯編語言統(tǒng)稱為低級語言。機器語言使用二進制代碼表達指令,是計算機硬件可以直接識別和執(zhí)行的編程語言,用機器語言編寫程序十分繁冗,程序也難以閱讀和修改。匯編語言使用助記符與機器語言中的指令進行一一對應,在計算機發(fā)展早期能幫助程序員提高編程效率。高級語言是接近自然語言的編程語言,可以更容易地描述計算問題并利用計算機解決計算問題。第一個廣泛應用的高級語言是誕生于1972年的C語言,之后50年來先后誕生了幾千種高級語言,其中大多數(shù)語言由于應用領域狹窄而退出了歷史舞臺。Python作為一種高級語言,其第一個公開發(fā)行版發(fā)行于1991年。低級語言和高級語言除了Python、C之外,常用的程序設計語言還包括C++、C#、Java、JavaScript、R、PHP、Ruby、Matlab、HTML、Perl、Fortran、SQL,還有谷歌的Go語言和蘋果的Swift語言,等等。從2014年開始,IEEESpectrum雜志每年都會發(fā)布編程語言排行榜,Python的排名從2016年開始持續(xù)上升,2017年躍居榜首,至今已蟬聯(lián)六年冠軍,2022年位于排行榜前五的編程語言分別是:Python、C、C++、C#、Java。根據(jù)TIOBE在2022年12月發(fā)布的最新編程語言指數(shù),Python首次超越C位居榜首,排名前五的編程語言同樣是:Python、C、C++、Java、C#。常用的程序設計語言通用語言是指能夠用于編寫多種用途程序的編程語言,語法中沒有專門用于特定應用的程序元素,如Python、C、C++、C#、Java,等等。Python是目前最為靈活、最接近自然語言的通用編程語言,功能強大,適合解決各類計算問題,是數(shù)據(jù)科學、數(shù)據(jù)分析、人工智能(artificialintelligence)、區(qū)塊鏈(blockchain)等領域的首選語言。專用語言是指包含針對特定應用的程序元素,或者應用領域比較狹窄的編程語言,如HTML(用來描述網(wǎng)頁的標記語言)、JavaScript(適用于Web客戶端開發(fā)的腳本語言)、PHP(適用于Web服務器端開發(fā)的腳本語言)、Matlab(科學計算語言)、SQL(數(shù)據(jù)庫操作語言),等等。通用語言和專用語言高級語言按照計算機執(zhí)行方式的不同可以分成兩類:采用解釋執(zhí)行的動態(tài)語言和采用編譯執(zhí)行的靜態(tài)語言。編譯是將源代碼(高級語言代碼)轉(zhuǎn)換成目標代碼(機器語言代碼)的過程,執(zhí)行編譯的計算機程序稱為編譯器。解釋是將源代碼逐條轉(zhuǎn)換成目標代碼同時逐條運行目標代碼的過程,執(zhí)行解釋的計算機程序稱為解釋器。解釋和編譯的區(qū)別在于:編譯是一次性地翻譯,一旦程序被編譯,就不再需要編譯器或者源代碼;解釋則在每次程序運行時都需要解釋器和源代碼。這兩者的區(qū)別類似于外語資料的翻譯和實時的同聲傳譯。靜態(tài)語言和動態(tài)語言C、C++、Java等語言是采用編譯執(zhí)行的靜態(tài)語言,而JavaScript、PHP等語言則是采用解釋執(zhí)行的動態(tài)語言。Python是采用解釋執(zhí)行方式的現(xiàn)代動態(tài)語言,但其解釋器保留了編譯器的部分功能,隨著程序運行,解釋器也會生成一個完整的目標代碼,從而提升了計算機性能。靜態(tài)語言和動態(tài)語言Python的始創(chuàng)者是荷蘭人吉多(GuidovonRossum)。1982年,吉多從阿姆斯特丹大學獲得了數(shù)學和計算機碩士學位。1989年圣誕節(jié)期間,他為了打發(fā)圣誕節(jié)的無趣,決心開發(fā)一個新的腳本解釋程序。Python這一名稱來自英國肥皂劇《MontyPython》,吉多之所以選中Python作為語言的名字,是因為他太喜歡這部肥皂劇了。但Python經(jīng)常用“巨蟒”(Python的原義)的圖標。1.3.2Python的起源和特性Python的第一個公開發(fā)行版發(fā)行于1991年。2000年,Python2.0正式發(fā)布,開啟了其廣泛應用的新時代。2008年,Python3.0正式發(fā)布,3.0版本無法向下兼容2.0版本的既有語法。2010年,Python2.x系列發(fā)布了最后一版,即2.7版,從此終結(jié)了2.x系列版本的發(fā)展。1.3.2Python的起源和特性語法特性簡潔易學:Python語言關(guān)鍵字少、結(jié)構(gòu)簡單、語法清晰,實現(xiàn)相同功能的代碼行數(shù)僅相當于其它語言的1/10~1/5,初學者可以在短時間內(nèi)輕松上手。強制可讀:Python語言通過強制縮進(類似文章段落的首行空格)來體現(xiàn)語句間的邏輯關(guān)系,顯著提高了程序的可讀性。支持中文:Python3.0解釋器采用UTF-8編碼表達所有字符,可以表達英文、中文、韓文、法文等各類語言。開源語言開源指的是開放源代碼,即源代碼公開,任何人都可以訪問、學習、修改甚至是發(fā)布。Python語言是開源項目的優(yōu)秀代表,其解釋器的全部代碼都是開放的,任何計算機高手都可以為不斷推動Python語言的發(fā)展做出貢獻。Python軟件基金會作為一個非營利組織,擁有Python2.1版本之后所有版本的版權(quán),該組織致力于更好地推進并保護Python語言的開放性。世界各地的程序員通過開源社區(qū)貢獻了十幾萬個第三方函數(shù)庫,幾乎覆蓋了計算機技術(shù)的各個領域。Python標準庫和第三方庫眾多,功能強大,既可以用來開發(fā)小工具,也可以用來開發(fā)企業(yè)級應用。Python提供了完整的數(shù)據(jù)分析框架,本課程第二部分(第8-10章)將予以介紹。其中:NumPy是一個用于多維數(shù)組和矩陣運算的數(shù)學庫;Pandas是一個基于NumPy的專門處理分析表格型數(shù)據(jù)的庫;Matplotlib是Python中使用最多的2D圖像繪制工具包,可以非常簡單地將數(shù)據(jù)可視化;Scikit-Learn是用Python開發(fā)的機器學習庫,包括大量的機器學習算法和數(shù)據(jù)集,是一個簡單高效的數(shù)據(jù)挖掘工具。功能強大1.4程序的基本要素1.4.1數(shù)據(jù)類型1.4.2變量1.4.3運算符1.4.4函數(shù)1.4.5語句1.4.6控制結(jié)構(gòu)一種數(shù)據(jù)類型(type)是一系列值以及為這些值定義的一系列操作方法的集合。Python的基本數(shù)據(jù)類型包括數(shù)字和字符串,還有像列表、元組、字典、集合這樣的組合數(shù)據(jù)類型。1.4.1數(shù)據(jù)類型數(shù)據(jù)類型類(型)名類別示例整型int數(shù)字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最常見的數(shù)據(jù)類型,字符串就是字符的序列。在Python里,字符串可以用單引號、雙引號或三引號括起,但必須配對,其中三引號既可以是三個單引號,也可以是三個雙引號。單引號和雙引號的作用相同,而用三引號括起來的字符串支持換行。比如,"HelloWorld"就是一個字符串,也可以用'HelloWorld'或'''HelloWorld'''表示。注意:編寫程序過程中所使用的符號必須是英文符號??沾纯兆址?,是一個不包含任何內(nèi)容的字符串,可以表示為''、""、''''''。需要注意的是,空串并不是包含空格的字符串(表示為''、""、''''''),空格也是一個字符。字符串整型一般以十進制(decimal)表示,但Python也支持八進制、十六進制或二進制來表示整型。八進制(octal)整數(shù)以“0o”或“0O”開始,十六進制(hexadecimal)整數(shù)則以“0x”或“0X”開始,二進制(binary)整數(shù)以“0b”或“0B”開始。整型八進制十六進制二進制int()是整型的轉(zhuǎn)換函數(shù),可以將其他數(shù)據(jù)類型轉(zhuǎn)換為整型,其最為常見的用法是將包含整數(shù)的字符串轉(zhuǎn)換為整型,比如int('1000'),其結(jié)果為整數(shù)1000。注意:'1000'是包含整數(shù)的字符串,如果想對它進行數(shù)值運算,必須先轉(zhuǎn)換為整型。如果想將整型轉(zhuǎn)換為字符串類型,可以使用字符串轉(zhuǎn)換函數(shù)str(),如str(1000)的結(jié)果為'1000'。整型轉(zhuǎn)換函數(shù)的完整形式為:int(x,base=10)。參數(shù)base表示是幾進制,默認是十進制,即不指定base參數(shù)時,默認轉(zhuǎn)換為十進制整數(shù)。整型浮點數(shù)也稱為小數(shù),可以用直接的十進制或科學計數(shù)法表示。浮點數(shù)通常都有一個小數(shù)點和一個可選的后綴e(大寫或小寫,表示科學計數(shù)法),在e和指數(shù)之間可以用“+”或“-”表示正負,正數(shù)可以省略。float()是浮點型的轉(zhuǎn)換函數(shù),可以將其他數(shù)據(jù)類型轉(zhuǎn)換為浮點型,最為常見的用法是將包含小數(shù)的字符串轉(zhuǎn)換為浮點型。若要將整型轉(zhuǎn)換為浮點型,后面加個“.0”即可。浮點型十進制表示法科學計數(shù)法float()0.04.3e25float(10)3.14159.384e-23float(True)-777.4.2E-10float('10.0')-5.5555671196.022E16float(0x10)也可以使用int()函數(shù)將浮點型轉(zhuǎn)換為整型,直接舍去小數(shù)部分截取整數(shù)部分。使用int()或float()將字符串轉(zhuǎn)換為數(shù)字類型時,該字符串必須包含數(shù)字,否則程序會報錯,錯誤類型為“ValueError”(值錯誤)。注意:浮點數(shù)在運算過程中會出現(xiàn)誤差,通常,浮點型的精度為15~17位有效數(shù)字。浮點型布爾型只有兩個值:True或False。對于值為零的數(shù)字或空集(空串、空列表、空元組、空字典),在Python中的布爾值都是False,而對于值不為零的任何數(shù)字或非空集(非空串、非空列表、非空元組、非空字典),其布爾值均為True。bool()是布爾型的轉(zhuǎn)換函數(shù),可以將其他數(shù)據(jù)類型轉(zhuǎn)換為布爾型。在數(shù)學運算中,True和False分別對應于1和0,float(True)結(jié)果為1.0。布爾型變量(variable)是編程語言中能存儲計算結(jié)果或能表示值的抽象概念。在使用變量前,需要對其進行賦值,之后可以根據(jù)需要隨時對變量重新賦值。1.4.2變量變量的名字也稱為標識符(identifier),與其他大多數(shù)高級語言一樣,Python中變量命名規(guī)則如下:以字母或下劃線(_)開頭;其他的字符可以是數(shù)字、字母或下劃線;不能將Python關(guān)鍵字作為變量名。變量的命名FalseNoneTrueandasassertasyncawaitbreakclasscontinuedefdelelifelseexceptfinallyforfromglobalifimportinislambdanonlocalnotorpassraisereturntrywhilewithyield我們已經(jīng)了解了True和False這兩個關(guān)鍵字,本章后續(xù)還會學習if、else、for、in等關(guān)鍵字。除以上必須遵守的命名規(guī)則以外,我們還給出如下建議:應既簡短又具有描述性,例如name比n好,student_name比s_n好。慎用小寫字母l和大寫字母O,因為可能被人錯看成數(shù)字1和0。避免用下劃線開頭,在Python里下劃線開頭的變量有特殊含義。在本章案例中,我們使用了如下4個變量:principal:用來存儲初始存入賬戶的金額,也就是本金。future_value:用來存儲計算出來的終值。interest_rate:用來表示年利率。year:用來表示年份。變量的命名變量賦值通過等號(=)來執(zhí)行。Python是一種動態(tài)語言,因此不需要預先聲明變量的類型,變量的類型和值在賦值那一刻被初始化;同時變量的類型也是可以隨時變化的,也就是說,可以先將某個變量賦值為一個字符串,然后又將其賦值為一個數(shù)字。變量的賦值假設在本章案例中,我們初始存入賬戶的金額為1000元、年利率為2%,那么我們可以給變量principal賦值為1000、給變量interest_rate賦值為0.02。變量的賦值在交互式解釋器中,可以用變量名查看該變量的原始值。注意與print()函數(shù)輸出結(jié)果的不同,直接用變量名查看,字符串帶引號,而用print()函數(shù)輸出時不帶引號。運算符(operator)也稱為操作符,在程序中用于計算。Python支持單目運算符和雙目運算符:單目運算符帶一個操作數(shù),操作數(shù)在運算符的右邊;雙目運算符帶兩個操作數(shù),操作數(shù)在運算符的兩邊。操作數(shù)(operand)可以是變量、常量、函數(shù)調(diào)用的返回值等。表達式(expression)是運算符和操作數(shù)的有效組合,通常有一個計算結(jié)果。1.4.3運算符算數(shù)運算符運算符功能expr1**expr2求冪+exprexpr的結(jié)果符號不變-expr對expr的結(jié)果符號取負expr1*expr2乘法expr1/expr2除法expr1//expr2整除expr1%expr2取余expr1+expr2加法expr1-expr2減法用于數(shù)字的算數(shù)運算符:整除運算符“//”返回比真正的商小的最接近的整數(shù),比如2//3的結(jié)果為0,而-2//3的結(jié)果為-1。本章案例中計算終值的表達式需要用到加法(+)、乘法(*)和求冪(**)三種算數(shù)運算符:principal*(1+interest_rate)**year。注意求冪的優(yōu)先級最高,其次是乘法,最后是加法,為了先進行加法運算,需要加括號。當principal為1000、interest_rate為0.02、year為2時,終值計算結(jié)果為1040.4。算數(shù)運算符格式化運算符用于指定字符串的格式,用“%”表示左邊的操作數(shù)是格式化字符串,其中包含格式符,這些格式符為真實值預留位置,并說明真實數(shù)值應該呈現(xiàn)的格式;右邊的操作數(shù)是一個元組,將多個值傳遞給格式化字符串,每個值對應一個格式符。格式化運算符格式符格式格式符格式%c單個字符%s字符串%d或%i十進制整型%f或%F浮點型%e或%E浮點型的科學計數(shù)法%%輸出一個單一的%輔助符號作用m.nm是顯示的最小總寬度,n是小數(shù)點后的位數(shù)(如果有的話)0位數(shù)顯示不夠m時,前面用0填充,而不是默認的空格格式化運算符本章案例中在計算出終值后,要將結(jié)果顯示在屏幕上。格式化輸出的字符串包括年份和終值,其中年份用十進制整型的格式符“%d”,終值用浮點型的格式符“%f”,同時對于終值保留兩位小數(shù),最小總寬度為7(包括小數(shù)點),加入輔助符號后的格式符為“%7.2f”,表達式如下:"year%d:%7.2f"%(year,future_value)格式化運算符“%”右邊的元組中第一個元素year對應第一個格式符“%d”,第二個元素future_value對應第二個格式符“%7.2f”。當year為2、future_value為1040.4時,格式化字符串為"year2:1040.40"。注意:格式化字符串中除了格式符之外的字符,都原樣輸出。函數(shù)(function)就像小程序一樣,可以用來實現(xiàn)特定的功能。Python有很多函數(shù),程序員也可以自己定義函數(shù)。調(diào)用函數(shù)時,應使用它的名稱,后跟圓括號。許多函數(shù)在調(diào)用時需要值,這些值稱為參數(shù),在調(diào)用函數(shù)時放在括號內(nèi)。當一個函數(shù)調(diào)用有多個參數(shù)時,參數(shù)之間用逗號分隔。內(nèi)置函數(shù)(built-infunction)是Python自帶的函數(shù),可供程序員直接使用,如str()、int()、float()、bool()等類型轉(zhuǎn)換函數(shù),下面介紹內(nèi)置的輸入輸出函數(shù)。1.4.4函數(shù)print()函數(shù)可以用來輸出字符串,比如print(“HelloWorld”);也可以以字符串形式輸出變量的值,如果要輸出多個變量的值,則用逗號分隔,比如print(year,future_value)。雖然year和future_value都不是字符串類型,但在輸出的時候,print()函數(shù)會自動將他們轉(zhuǎn)換為字符串輸出,用逗號分隔的多個變量,在輸出時默認的分隔符是空格,可以通過指定sep參數(shù)來改變。本章案例中我們可以輸出格式化后的字符串,即:print("year%d:%7.2f"%(year,future_value))。print()函數(shù)print()函數(shù)的完整形式為:print(*args,sep='',end='\n',file=None,flush=False)參數(shù)*args表示要輸出的內(nèi)容,可以包括多項;參數(shù)sep指定輸出多項內(nèi)容時如何分隔,默認是空格;參數(shù)end指定輸出以什么結(jié)尾,默認是換行符;參數(shù)file指定輸出到哪個文件,默認是輸出到系統(tǒng)的標準輸出(屏幕);參數(shù)flush指定是否刷新輸出流,默認是否。print()函數(shù)從用戶那里得到數(shù)據(jù)輸入的最簡單的方法是用input()函數(shù),它讀取系統(tǒng)的標準輸入(鍵盤輸入),并將讀取到的數(shù)據(jù)賦值給指定的變量。無論用戶輸入什么內(nèi)容,input()函數(shù)都以字符串類型返回結(jié)果。在獲得用戶輸入之前,可以給用戶一些提示性文字,放在字符串內(nèi),作為input()函數(shù)的參數(shù)。input()函數(shù)在本章案例中,初始存入賬戶的金額和年利率都是由用戶輸入,而不是直接由程序員進行賦值,這就需要用到input()函數(shù)。以輸入本金為例,我們調(diào)用如下函數(shù):input("Theinitialprincipalis:")如果用戶輸入1000,返回的結(jié)果是字符串'1000'。由于需要對本金進行數(shù)值運算,必須將其轉(zhuǎn)換為數(shù)字類型,假設本金都是整數(shù),我們可以用int()函數(shù)進行轉(zhuǎn)換,即:int(input("Theinitialprincipalis:"))input()函數(shù)語句(statement)就是告訴計算機做某件事情的一條代碼。如下一行代碼就是一條告訴計算機要輸出終值計算結(jié)果的語句:print("year%d:%7.2f"%(year,future_value))本小節(jié)主要介紹賦值語句和注釋語句。1.4.5語句前面提到,賦值是創(chuàng)建變量的一種方法。Python語言中,“=”表示賦值,即將等號右側(cè)的結(jié)果賦給左側(cè)變量,包含等號的語句稱為賦值語句。賦值語句的右側(cè)可以是任何復雜的表達式,如下語句計算終值并將結(jié)果賦值給變量future_value:future_value=principal*(1+interest_rate)**year賦值語句與輸出語句不同,輸入語句通過調(diào)用input()函數(shù)接收用戶輸入,返回的結(jié)果需要賦值給指定的變量,這就需要用到賦值語句。仍然以輸入初始存入賬戶的金額為例,用戶通過鍵盤輸入的數(shù)據(jù)需要賦值給變量principal,即:principal=int(input("Theinitialprincipalis:"))當程序調(diào)用input()函數(shù)時會停下來,等待用戶輸入,當用戶按下Enter鍵時,表示輸入完畢,程序?qū)⒂脩糨斎氲膬?nèi)容作為字符串返回,繼續(xù)執(zhí)行賦值語句。賦值語句此外,還有一種同步賦值語句,可以同時給多個變量賦值。如果想交換兩個變量的值,在其他編程語言里,需要用到一個中間變量(t)來保存其中一個變量的值(t=a),然后將另一個變量的值賦給這個變量(a=b),最后再將中間變量的值賦給另一個變量(b=t),但在Python語言里,同步賦值語句可以實現(xiàn)無需中間變量直接交換兩個變量的值。同步賦值語句可以使賦值過程變得更簡潔,通過減少變量使用,簡化語句表達,增加程序的可讀性。賦值語句對于編寫程序來說,注釋是一項非常有用的功能,它能夠讓你使用自然語言在程序中添加說明,從而提升代碼的可讀性。。Python使用“#”標示注釋,從“#”開始直到此行結(jié)束的內(nèi)容都是注釋,“#”可以在一行的任何地方開始,解釋器會忽略掉“#”之后的所有內(nèi)容,比如,我們可以為接收本金輸入的語句添加如下注釋(中文說明):principal=int(input("Theinitialprincipalis:"))#輸入本金注釋語句編寫注釋的主要目的是闡述代碼要做什么,以及是如何做的。在程序的編寫過程中,程序員對每條語句都很清楚,但過段時間以后,有些細節(jié)可能會遺忘,這時候注釋就很有用。另外,編寫的程序需要被別人閱讀,注釋能夠幫助其他人快速理解你的程序。作為初學者,最值得養(yǎng)成的習慣之一就是,在代碼中編寫清晰、簡潔的注釋。此外,在編寫和調(diào)試程序的過程中,有的時候暫時不想讓某些語句被執(zhí)行,但又不想把它們從程序中刪除,就可以在這些語句之前加上“#”,讓它們成為注釋語句。在以后又想使用它們的時候,只要把“#”刪掉即可。比如,我們可以暫時把計算終值的語句改為注釋語句,去嘗試更好的計算并輸出不同年份終值的方法。注釋語句一般情況下,程序中的語句是按順序逐條執(zhí)行的,從第一條一直執(zhí)行到最后一條。僅使用順序結(jié)構(gòu)可以用來解決一些小問題,但不足以解決大多數(shù)有趣的問題。我們需要用到其他兩種控制結(jié)構(gòu)——分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。1.4.6控制結(jié)構(gòu)分支結(jié)構(gòu)允許程序包含的語句在程序運行時可能執(zhí)行,也可能不執(zhí)行。程序仍然從頂部開始后向底部執(zhí)行,但是可能跳過程序中的某些語句。和大多數(shù)程序設計語言一樣,Python使用if關(guān)鍵字來構(gòu)成分支語句,包括單分支語句、雙分支語句和多分支語句,這里介紹雙分支語句,即if-else語句,其語法形式如下:if<condition>:<statements>else:<statements>分支結(jié)構(gòu)<statements>是一個語句塊,可以包含一到多條語句。<condition>為條件表達式,其值為布爾型,即True或False。如果值為True,則執(zhí)行if下的語句塊,跳過else部分;如果值為False,則跳過if下的語句塊,執(zhí)行else下的語句塊。

強制縮進使得程序邏輯分明,非常容易看出每條語句屬于哪個語句塊??s進一般為4個空格,也可以使用Tab鍵。Python初學者剛開始編寫程序時,經(jīng)常會出現(xiàn)縮進錯誤(IndentationError),仔細檢查語句是否縮進正確,也可以使用IDLE的自動縮進來避免錯誤,比如輸入if語句后回車,下一行語句開始的位置自動縮進。分支結(jié)構(gòu)本章案例的年利率也由用戶輸入,但提供了2%的默認值,即如果用戶什么也不輸入,年利率默認為0.02,如果用戶輸入了值,則采用用戶輸入的值。這就需要使用一個雙分支結(jié)構(gòu)來進行處理。判斷條件就是用戶是否輸入了值,如果輸入了,則將其轉(zhuǎn)換為浮點型,以便用來進行數(shù)值運算;如果什么也沒輸入,則默認為0.02。代碼如下:interest_rate=input("Theannualinterestrateis(defaultis2%):")ifinterest_rate:

interest_rate=float(interest_rate)else:

interest_rate=0.02分支結(jié)構(gòu)執(zhí)行到input()函數(shù)時,程序停下來等待用戶輸入。如果用戶直接按下Enter鍵,那么返回的字符串就是一個空串,空串的布爾值為False,跳過if下的語句塊,執(zhí)行else下的語句塊,即賦值為默認值。

循環(huán)結(jié)構(gòu)允許程序多次重復執(zhí)行相同的語句。雖然不采用循環(huán)結(jié)構(gòu),通過多次復制粘貼相同的語句也可以實現(xiàn)多次執(zhí)行,但這樣只能執(zhí)行固定次數(shù),且語句一旦有修改,對每個副本都要進行修改。Python提供了for和while兩種循環(huán)結(jié)構(gòu),都允許程序中只出現(xiàn)一次的語句在程序運行時多次重復執(zhí)行,這里介紹用來形成指定循環(huán)次數(shù)的for語句,其語法形式如下:for<var>in<sequence>:<statements>循環(huán)結(jié)構(gòu)<sequence>是序列,可以是字符串、列表或元組,<var>是循環(huán)變量,會遍歷<sequence>中的所有值,也就是說,<sequence>中有多少個值,for下的語句塊(循環(huán)體)就會循環(huán)多少次。

for語句經(jīng)常與Python的內(nèi)置函數(shù)range()一起使用,用來指定循環(huán)次數(shù),range()函數(shù)返回一個可迭代的范圍對象。比如,range(1,4)返回一個從1到3的整數(shù)范圍,循環(huán)變量遍歷這個整數(shù)范圍,即第一次執(zhí)行循環(huán)體時賦值為1,第二次執(zhí)行時賦值為2,第三次執(zhí)行時賦值為3,然后循環(huán)結(jié)束,執(zhí)行for語句之后的語句。range()函數(shù)的完整形式為:range(start,stop[,step])。start指定起始的整數(shù),默認是0;stop指定終止的整數(shù)為stop(不含stop);step指定序列增長的步長,默認是1。循環(huán)結(jié)構(gòu)本章案例需要計算1年、2年和3年后的終值,可以寫三條語句分別進行計算,再寫三條語句分別輸出結(jié)果。我們來嘗試一下采用循環(huán)結(jié)構(gòu),將之前已經(jīng)寫好的計算終值的語句和輸出終值計算結(jié)果的語句放入循環(huán)體內(nèi),year作為循環(huán)變量,如下所示:foryearinrange(1,4):

future_value=principal*(1+interest_rate)**yearprint("year%d:%7.2f"%(year,future_value))至此,本章案例已編寫完成,將程序文件保存為ch01.py,運行程序,如果有錯誤則進行修正。輸入本金1000、年利率不輸入,檢查程序運行結(jié)果是否正確;輸入本金2000、年利率0.03,再次檢查程序運行結(jié)果是否正確。循環(huán)結(jié)構(gòu)采用循環(huán)結(jié)構(gòu)的好處顯而易見,循環(huán)體內(nèi)的兩條語句被重復執(zhí)行三次。

累加或累乘(accumulator)是一種常見的算法模式,需要使用一個累加或累乘變量以及一個循環(huán)結(jié)構(gòu)。首先給累加或累乘變量賦初值,然后在循環(huán)體中不斷更新累加或累乘變量的值,循環(huán)結(jié)束后得到終值。1.5編程實踐:累加、累乘用戶輸入一個整數(shù),程序計算該數(shù)的階乘,并輸出結(jié)果。比如,用戶輸入6,程序計算6的階乘,輸出結(jié)果720?!纠?-1】求階乘注意:賦值語句fact=fact*i也可以寫作fact*=i。

借助于這個例子,我們來看一下Python的賦值過程。在Python中,給變量fact賦值就像是給一個值貼上黃色的小便箋,上面寫著“這就是fact”?!纠?-1】中給fact賦值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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論