《大學(xué)計(jì)算機(jī)基礎(chǔ)與計(jì)算思維》課件 第9、10章 計(jì)算思維與算法基礎(chǔ)、計(jì)算機(jī)前沿技術(shù)_第1頁(yè)
《大學(xué)計(jì)算機(jī)基礎(chǔ)與計(jì)算思維》課件 第9、10章 計(jì)算思維與算法基礎(chǔ)、計(jì)算機(jī)前沿技術(shù)_第2頁(yè)
《大學(xué)計(jì)算機(jī)基礎(chǔ)與計(jì)算思維》課件 第9、10章 計(jì)算思維與算法基礎(chǔ)、計(jì)算機(jī)前沿技術(shù)_第3頁(yè)
《大學(xué)計(jì)算機(jī)基礎(chǔ)與計(jì)算思維》課件 第9、10章 計(jì)算思維與算法基礎(chǔ)、計(jì)算機(jī)前沿技術(shù)_第4頁(yè)
《大學(xué)計(jì)算機(jī)基礎(chǔ)與計(jì)算思維》課件 第9、10章 計(jì)算思維與算法基礎(chǔ)、計(jì)算機(jī)前沿技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩115頁(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)介

《大學(xué)計(jì)算機(jī)基礎(chǔ)與計(jì)算思維》第9章計(jì)算思維與算法基礎(chǔ)目錄CONTENT1計(jì)算思維3程序設(shè)計(jì)語(yǔ)言2算法基礎(chǔ)4Python語(yǔ)言基礎(chǔ)計(jì)算思維9.19.1計(jì)算思維計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念去求解問(wèn)題、設(shè)計(jì)系統(tǒng)和理解人類(lèi)行為的涵蓋了計(jì)算機(jī)科學(xué)之廣度的一系列思維活動(dòng)。

——美國(guó)卡內(nèi)基·梅隆大學(xué),周以真對(duì)計(jì)算思維的理解:計(jì)算思維是一種思維過(guò)程,可以脫離電腦、互聯(lián)網(wǎng),人工智能等技術(shù)獨(dú)立存在。是人的思維,而不是計(jì)算機(jī)的思維,是人用計(jì)算思維來(lái)控制計(jì)算設(shè)備,更高效、快速地完成單純依靠人力無(wú)法完成的任務(wù)。這種思維是未來(lái)世界認(rèn)知、思考的常態(tài)思維方式,它教會(huì)人們理解并駕馭未來(lái)世界。4計(jì)算思維5計(jì)算思維的本質(zhì)是抽象和自動(dòng)化。算法基礎(chǔ)9.29.2.1算法的概念及特征計(jì)算機(jī)算法是利用計(jì)算機(jī)按照一定的方法和步驟解決問(wèn)題的過(guò)程,簡(jiǎn)稱(chēng)為算法。算法具有五個(gè)重要特征:有效性:算法的每一個(gè)步驟都能夠被計(jì)算機(jī)理解和執(zhí)行,而不是抽象和模糊的概念。有窮性:一個(gè)算法必須在執(zhí)行有限步驟后結(jié)束。確定性:算法的每一個(gè)步驟都必須有確切的含義,不能有任何歧義。0個(gè)或多個(gè)輸入至少1個(gè)輸出,也可以有多個(gè)輸出79.2.2算法的表示自然語(yǔ)言:冗長(zhǎng),不夠嚴(yán)謹(jǐn),容易出現(xiàn)歧義,

僅用于描述特別簡(jiǎn)單的問(wèn)題傳統(tǒng)流程圖1966年,Bohra與Jacopini提出N-S流程圖1973年,美國(guó)學(xué)者I.Nassi和B.Shneiderman提出偽代碼89以特定的圖形符號(hào)加上說(shuō)明,表示算法的圖,稱(chēng)為流程圖(也稱(chēng)傳統(tǒng)流程圖)。美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)規(guī)定了一些常用的流程圖符號(hào):傳統(tǒng)流程圖起止框

輸入輸出框

判斷框

處理框

流程線(xiàn)

連接點(diǎn)或【例9-1】畫(huà)出傳統(tǒng)流程圖將百分制成績(jī)轉(zhuǎn)換成二級(jí)制成績(jī),轉(zhuǎn)換規(guī)則為:若成績(jī)大于等于60分,則輸出“合格”,否則輸出“不合格”。10【例9-2】用傳統(tǒng)流程圖

表示求解n!的算法Step1:先求1×2,得到結(jié)果2。Step2:將上一步的結(jié)果2乘以3,得到結(jié)果6。Step3:將上一步的結(jié)果6乘以4,得24。Step4:將上一步的結(jié)果24乘以5,得120。Step5:……1112N-S流程圖:完全去掉了帶箭頭的流程線(xiàn),全部算法寫(xiě)在一個(gè)矩形框內(nèi)。N-S流程圖AB順序結(jié)構(gòu)ABP不成立成立選擇結(jié)構(gòu)A當(dāng)P成立AP成立當(dāng)型循環(huán)直到型循環(huán)循環(huán)結(jié)構(gòu)【例9-3】用N-S流程圖表示求解n!的算法N-S流程圖的優(yōu)點(diǎn):比文字描述更直觀(guān)形象,容易理解;比傳統(tǒng)流程圖緊湊易畫(huà),它廢除了流程線(xiàn),整個(gè)算法結(jié)構(gòu)是由各個(gè)基本結(jié)構(gòu)按順序組成的。13輸入nt←1i←1i≤n

t←t×ii←i+1輸出t9.2.3算法的三種基本結(jié)構(gòu)順序結(jié)構(gòu)選擇結(jié)構(gòu)(也稱(chēng)為分支結(jié)構(gòu))循環(huán)結(jié)構(gòu)141.順序結(jié)構(gòu)程序流程:按語(yǔ)句出現(xiàn)的先后順序依次執(zhí)行用途:解決順序性的計(jì)算或處理問(wèn)題例如:15ABaba:入口b:出口輸入課程1的成績(jī);輸入課程2的成績(jī);求平均分;輸出平均分。2.選擇結(jié)構(gòu)程序流程:先做判斷,根據(jù)判斷做出選擇16PBYNabA兩路分支a:入口b:出口PYNabA一路分支a:入口b:出口在一次執(zhí)行過(guò)程中,無(wú)論條件P是否成立,只能執(zhí)行A或B之一,不可能既執(zhí)行A又執(zhí)行B。用途:當(dāng)需要程序基于選擇或比較的結(jié)果選擇兩條路徑中的一條時(shí),可以使用選擇結(jié)構(gòu)。【例9-4】輸入一個(gè)數(shù),求它的絕對(duì)值并輸出173.循環(huán)結(jié)構(gòu)用途:需要重復(fù)執(zhí)行的過(guò)程用此結(jié)構(gòu),可使算法容易編寫(xiě),且結(jié)構(gòu)清晰。18直到型循環(huán)PNYabA當(dāng)型循環(huán)PAYNab循環(huán)結(jié)構(gòu)——當(dāng)型循環(huán)19從a點(diǎn)(入口)進(jìn)入,首先對(duì)條件P進(jìn)行判斷,如果P成立,則執(zhí)行A操作;執(zhí)行完A后重新對(duì)P進(jìn)行判斷,如果P仍然成立,再次執(zhí)行A操作;如此反復(fù)“判斷→執(zhí)行”,當(dāng)條件P不成立時(shí),循環(huán)結(jié)束,從b點(diǎn)(出口)脫離該結(jié)構(gòu)。當(dāng)型循環(huán)PAYNab當(dāng)P成立時(shí)執(zhí)行A循環(huán)結(jié)構(gòu)——直到型循環(huán)20從a點(diǎn)(入口)進(jìn)入,首先執(zhí)行A,然后判斷條件P,如果P成立,則繼續(xù)執(zhí)行A;執(zhí)行完A后重新對(duì)P進(jìn)行判斷,如果P仍然成立,再次執(zhí)行A操作;如此反復(fù)“執(zhí)行→判斷”,直到P不成立時(shí),循環(huán)結(jié)束,最后從b點(diǎn)(出口)脫離該結(jié)構(gòu)。執(zhí)行A直到P不成立為止直到型循環(huán)PNYabA當(dāng)型循環(huán)與直到型循環(huán)的比較21當(dāng)型循環(huán)直到型循環(huán)先判斷循環(huán)條件,后執(zhí)行循環(huán)體先執(zhí)行循環(huán)體,后判斷循環(huán)條件循環(huán)體有可能一次都不執(zhí)行循環(huán)體至少會(huì)執(zhí)行一次共同點(diǎn):條件成立,循環(huán)繼續(xù);條件不成立,循環(huán)結(jié)束。結(jié)構(gòu)內(nèi)一定不存在死循環(huán)。當(dāng)型循環(huán)和直到型循環(huán)是可以互相轉(zhuǎn)換的,凡用當(dāng)型循環(huán)能解決的問(wèn)題,用直到型循環(huán)亦可解決,反之亦然。區(qū)別:小結(jié):程序的三種基本結(jié)構(gòu)三種基本結(jié)構(gòu)的共同點(diǎn):①只有一個(gè)入口(圖中的a點(diǎn)),只有一個(gè)出口(圖中的b點(diǎn));②結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會(huì)被執(zhí)行。一個(gè)算法無(wú)論多么復(fù)雜,都可以分解為由順序、選擇、循環(huán)三種基本結(jié)構(gòu)組合而成的,在基本結(jié)構(gòu)之間不存在向前或向后的跳轉(zhuǎn),流程的轉(zhuǎn)移只存在于一個(gè)基本結(jié)構(gòu)范圍之內(nèi)。由這三種基本結(jié)構(gòu)組成的程序稱(chēng)為結(jié)構(gòu)化程序。22【例9-5】畫(huà)出N-S流程圖將百分制成績(jī)轉(zhuǎn)換成四級(jí)制成績(jī),

轉(zhuǎn)換規(guī)則為:23百分制成績(jī)四級(jí)制成績(jī)85—100分優(yōu)秀70—84分良好60—69分合格59分及以下不合格輸入成績(jī)scorescore>=85YN輸出“優(yōu)秀”score>=70YN輸出“良好”score>=60YN輸出“合格”輸出“不合格”程序設(shè)計(jì)語(yǔ)言9.39.3.1機(jī)器語(yǔ)言機(jī)器語(yǔ)言是用二進(jìn)制代碼表示的、計(jì)算機(jī)能直接識(shí)別和執(zhí)行的一種機(jī)器指令的集合,被稱(chēng)為第一代程序設(shè)計(jì)語(yǔ)言。機(jī)器語(yǔ)言指令由操作碼和操作數(shù)兩部分組成。251011000000001100將12放入累加器A中0010110000001001將9與累加器A中的值相加,

得到的結(jié)果仍然存入A中11110100結(jié)束優(yōu)點(diǎn):能直接被計(jì)算機(jī)識(shí)別和執(zhí)行,執(zhí)行速度快。缺點(diǎn):①可移植性差。

②程序員需要記住大量二進(jìn)制形式的指令代碼及其含義,

難記、難書(shū)寫(xiě)、難閱讀,容易出錯(cuò)。9.3.2匯編語(yǔ)言用助記符代替機(jī)器指令的操作碼,用地址符號(hào)或標(biāo)號(hào)代替操作數(shù)的地址,由此誕生了匯編語(yǔ)言,被稱(chēng)為第二代程序設(shè)計(jì)語(yǔ)言。26MOVA,12將12放入累加器A中ADDA,9將9與累加器A中的值相加,得到的結(jié)果仍然存入A中HLT結(jié)束用匯編語(yǔ)言編寫(xiě)的程序不能直接被計(jì)算機(jī)識(shí)別和執(zhí)行,必須通過(guò)匯編程序的翻譯,才能生成可以被計(jì)算機(jī)識(shí)別和執(zhí)行的二進(jìn)制代碼。優(yōu)點(diǎn):比機(jī)器語(yǔ)言容易理解、記憶;執(zhí)行速度快。缺點(diǎn):仍然需要記住大量的助記符;程序的可移植性差。9.3.3高級(jí)語(yǔ)言高級(jí)語(yǔ)言是一種獨(dú)立于機(jī)器,比較接近于英語(yǔ)和數(shù)學(xué)公式的編程語(yǔ)言,被稱(chēng)為第三代程序設(shè)計(jì)語(yǔ)言。高級(jí)語(yǔ)言并不是特指某一種具體的語(yǔ)言,而是包括很多種編程語(yǔ)言,如流行的Python、Java、C、C++、C#、Cobol、Fortran、Basic等,這些語(yǔ)言的語(yǔ)法、命令格式都不相同。用高級(jí)語(yǔ)言編寫(xiě)的程序稱(chēng)為源代碼或源程序,它不能直接被計(jì)算機(jī)識(shí)別和運(yùn)行,必須將其翻譯成機(jī)器能識(shí)別的二進(jìn)制代碼才能執(zhí)行。這種“翻譯”通常有兩種方式:編譯方式和解釋方式,分別通過(guò)編譯程序和解釋程序完成。27高級(jí)語(yǔ)言面向過(guò)程的程序設(shè)計(jì)語(yǔ)言

例如:C、Fortran、Basic、Pascal等面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言提供了類(lèi)、對(duì)象等成分有抽象性、封裝性、繼承性和多態(tài)性四個(gè)主要特點(diǎn)常見(jiàn)的面向?qū)ο蟮母呒?jí)語(yǔ)言有Python、Java、C++等28Python語(yǔ)言基礎(chǔ)9.49.4.1Python語(yǔ)言簡(jiǎn)介Python是一種解釋型、面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,1989年底發(fā)明。2022年2月公布的TIOBE編程語(yǔ)言排行榜中,Python以15.33%的占有率排名第一。Python目前包含兩個(gè)主要的版本:Python2和Python3,兩個(gè)版本之間互不兼容。本課程以Python3為例。309.4.2Python開(kāi)發(fā)環(huán)境配置下載Python安裝程序/downloads/根據(jù)向?qū)崾荆惭bPython應(yīng)用程序在安裝完P(guān)ython后,會(huì)自動(dòng)安裝IDLE(IntegratedDevelopmentandLearningEnvironment,集成開(kāi)發(fā)和學(xué)習(xí)環(huán)境),它是Python的集成開(kāi)發(fā)環(huán)境,提供語(yǔ)法加亮、段落縮進(jìn)、基本文本編輯、TABLE鍵控制、調(diào)試程序等基本功能319.4.3開(kāi)發(fā)和運(yùn)行Python程序開(kāi)發(fā)和運(yùn)行Python程序一般包含以下兩種方式:(1)交互式,在Python解釋器的命令行窗口中,輸入一行代碼并回車(chē),會(huì)立刻執(zhí)行,立即看到結(jié)果,一般用于調(diào)試少量代碼。(2)文件式,編寫(xiě)Python程序并保存在一個(gè)或多個(gè)源代碼文件中,然后通過(guò)Python解釋器來(lái)執(zhí)行。適用于較復(fù)雜的應(yīng)用程序的開(kāi)發(fā)。329.4.4Python語(yǔ)言基礎(chǔ)1.Python程序的構(gòu)成Python程序由模塊組成。一個(gè)模塊對(duì)應(yīng)一個(gè)Python源文件,其擴(kuò)展名是.py。模塊由語(yǔ)句組成。運(yùn)行Python程序時(shí),按照模塊中語(yǔ)句的順序依次執(zhí)行。語(yǔ)句是Python程序的基本構(gòu)成元素,用于創(chuàng)建對(duì)象、變量賦值、調(diào)用函數(shù)、控制分支、創(chuàng)建循環(huán)等。Python語(yǔ)句分為簡(jiǎn)單語(yǔ)句和復(fù)合語(yǔ)句。簡(jiǎn)單語(yǔ)句包括表達(dá)式語(yǔ)句、賦值語(yǔ)句等。復(fù)合語(yǔ)句詳見(jiàn)9.4.5節(jié)。33Python語(yǔ)句的書(shū)寫(xiě)規(guī)則(1)一般情況下一行寫(xiě)一條語(yǔ)句。如果語(yǔ)句太長(zhǎng),需要寫(xiě)成多行,可以使用續(xù)行符(\)。如果需要在一行寫(xiě)多條語(yǔ)句,用分號(hào)隔開(kāi)。(2)從第一列開(kāi)始書(shū)寫(xiě),前面不能有任何空格,否則會(huì)產(chǎn)生語(yǔ)法錯(cuò)誤。注釋語(yǔ)句可以從任意位置開(kāi)始。(3)復(fù)合語(yǔ)句的構(gòu)造體必須縮進(jìn)。縮進(jìn)是Python語(yǔ)言的強(qiáng)制語(yǔ)法規(guī)范,通常用四個(gè)空格表示縮進(jìn)。342.注釋注釋是對(duì)代碼的解釋和說(shuō)明,其目的是讓人們能夠更容易理解代碼。

可分為:序言性注釋和功能性注釋。Python的注釋分為兩種:?jiǎn)涡凶⑨專(zhuān)?開(kāi)頭,到本行末尾結(jié)束。多行注釋?zhuān)匀齻€(gè)單引號(hào)(或三個(gè)雙引號(hào))開(kāi)頭,并以三個(gè)單引號(hào)(或三個(gè)雙引號(hào))結(jié)束,夾在它們之間的多行內(nèi)容為注釋。35運(yùn)行結(jié)果:HelloWorld!Pythonprogram.3.Python對(duì)象計(jì)算機(jī)程序通常用于處理各種類(lèi)型的數(shù)據(jù)(即對(duì)象),不同的數(shù)據(jù)屬于不同的數(shù)據(jù)類(lèi)型,支持不同的運(yùn)算操作。在Python中,一切皆為對(duì)象。為了引用對(duì)象,必須通過(guò)賦值語(yǔ)句,把對(duì)象賦值給變量。語(yǔ)法格式為:36變量名=字面量或表達(dá)式>>>a=2#將字面量2賦值給變量a>>>b=5>>>c=a+b#將表達(dá)式a+b的計(jì)算結(jié)果(即7)賦值給變量c>>>c#顯示變量c的值,也可用print(c)7#沒(méi)有>>>提示符的行表示運(yùn)行結(jié)果4.標(biāo)識(shí)符及命名規(guī)則標(biāo)識(shí)符是變量、函數(shù)、類(lèi)、模塊和其他對(duì)象的名稱(chēng),其命名規(guī)則為:(1)標(biāo)識(shí)符只能由字母、數(shù)字和下劃線(xiàn)組成,且第一個(gè)字符必須是字母或下劃線(xiàn)。(2)區(qū)分大小寫(xiě)。(3)不能使用Python語(yǔ)言的保留關(guān)鍵字。

關(guān)鍵字是預(yù)定義的保留標(biāo)識(shí)符,有特殊的語(yǔ)法含義。37Python3的關(guān)鍵字FalseawaitelseimportpassNonebreakexceptinraiseTrueclassfinallyisreturnandcontinueforlambdatryasdeffromnonlocalwhileassertdelglobalnotwithasyncelififoryield385.表達(dá)式、運(yùn)算符表達(dá)式是用于計(jì)算的式子,由運(yùn)算符(如+、-、*、/等)和操作數(shù)(如常量、變量等)構(gòu)成。如果一個(gè)表達(dá)式中包含多個(gè)運(yùn)算符,則運(yùn)算順序取決于運(yùn)算符的優(yōu)先級(jí)和結(jié)合性。優(yōu)先級(jí)表示不同運(yùn)算符參與運(yùn)算時(shí)的先后順序,先進(jìn)行優(yōu)先級(jí)高的運(yùn)算,再進(jìn)行優(yōu)先級(jí)低的運(yùn)算。結(jié)合性是指當(dāng)一個(gè)表達(dá)式中出現(xiàn)多個(gè)優(yōu)先級(jí)相同的運(yùn)算符時(shí),先執(zhí)行哪個(gè)運(yùn)算符:先執(zhí)行左邊的叫左結(jié)合,先執(zhí)行右邊的叫右結(jié)合。用戶(hù)可以使用圓括號(hào)()強(qiáng)制改變運(yùn)算順序。39(1)算術(shù)運(yùn)算符40運(yùn)算符含義示例及說(shuō)明**冪運(yùn)算符2**5表示2的5次方+-正號(hào)、負(fù)號(hào)

*/乘法、除法11/4的結(jié)果為2.75//整數(shù)除法11//4的結(jié)果為2(結(jié)果為向下取整的整數(shù))%整數(shù)取余(也稱(chēng)為模運(yùn)算)11%4的結(jié)果為3(即:11÷4的余數(shù))+-加法、減法

(2)賦值運(yùn)算符簡(jiǎn)單賦值運(yùn)算符=

例如c=a+b表示將a+b的運(yùn)算結(jié)果賦值給c。復(fù)合賦值運(yùn)算符,包括+=、-=、*=、/=、%=、**=、//=例如:a+=b等效于a=a+b,即:將a+b的運(yùn)算結(jié)果賦值給變量a。a**=b等效于a=a**b,即:將a的b次方的計(jì)算結(jié)果賦值給變量a。41賦值運(yùn)算符使用示例42>>>a=2#將2賦值給變量a>>>b=3>>>c=a+b>>>c#顯示變量c的值,也可用print(c)5>>>a+=b#將a+b的結(jié)果賦值給a>>>a5>>>a//=b#將a//b的結(jié)果(即5除以3的結(jié)果向下取整)賦值給a>>>a1(3)比較運(yùn)算符(關(guān)系運(yùn)算符)43運(yùn)算符含義示例及說(shuō)明><>=<=大于小于大于等于小于等于x>=y若x大于等于y,則返回True,否則返回False==!=等于不等于x==y若x等于y,則返回True,否則返回False>>>a=2>>>b=3>>>a<bTrue>>>a+4<bFalse>>>a+1<=bTrue(4)邏輯運(yùn)算符Python提供三個(gè)邏輯運(yùn)算符:not:邏輯非and:邏輯與or:邏輯或44abnotaaandba

orbFalseFalseTrueFalseFalseFalseTrueTrueFalseTrueTrueFalseFalseFalseTrueTrueTrueFalseTrueTrue>>>a=True>>>b=False>>>print(aorb)True>>>print(not(aandb))True>>>print(2<5and3<4)True6.數(shù)據(jù)類(lèi)型在Python中,所有對(duì)象都有一個(gè)數(shù)據(jù)類(lèi)型。只有給數(shù)據(jù)賦予明確的數(shù)據(jù)類(lèi)型,計(jì)算機(jī)才能對(duì)數(shù)據(jù)進(jìn)行處理運(yùn)算。Python的數(shù)據(jù)類(lèi)型包括:內(nèi)置數(shù)據(jù)類(lèi)型,包括:數(shù)字類(lèi)型(又分為整型、浮點(diǎn)型、復(fù)數(shù)型、布爾型)、字符串、列表、元組、字典自定義數(shù)據(jù)類(lèi)型45(1)數(shù)字類(lèi)型①int(整型)表示整數(shù)的數(shù)據(jù)類(lèi)型。整型數(shù)據(jù)可以為任意長(zhǎng)度的位數(shù),只受限于計(jì)算機(jī)內(nèi)存。例如:125、-64、0都是十進(jìn)制整數(shù)。二進(jìn)制、八進(jìn)制、十六進(jìn)制的整數(shù),分別需要在數(shù)值前加0B、0O、0X作為前綴,例如:0X1f2是十六進(jìn)制整數(shù)。②float(浮點(diǎn)型)表示實(shí)數(shù)的數(shù)據(jù)類(lèi)型,其精度和機(jī)器有關(guān)。例如:1.23、-34.56、0.26、5.0、3.567e-12(表示3.567×10-12)、8.73e6(表示8.73×106)。小數(shù)點(diǎn)前后的0可以省略,例如5.0、0.26可以分別寫(xiě)成5.、.26。46數(shù)字類(lèi)型③complex(復(fù)數(shù)類(lèi)型)復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成,可以用a+bj,或者complex(a,b)表示,復(fù)數(shù)的實(shí)部a和虛部b都是浮點(diǎn)型。④bool(布爾類(lèi)型)布爾類(lèi)型是特殊的整型,它的值只有兩個(gè):True和False。布爾型用于邏輯運(yùn)算,如果將布爾值進(jìn)行數(shù)值運(yùn)算,True會(huì)被當(dāng)作整型1,F(xiàn)alse會(huì)被當(dāng)作整型0。47使用type()函數(shù)查看某個(gè)對(duì)象的類(lèi)型>>>a=765>>>type(a)<class'int'>#此運(yùn)行結(jié)果表明變量a是整型>>>b=7.6e-8>>>type(b)

<class'float'>#此運(yùn)行結(jié)果表明變量b是浮點(diǎn)型>>>c=2+3j>>>type(c)

<class'complex'>#此運(yùn)行結(jié)果表明變量c是復(fù)數(shù)類(lèi)型>>>e=True>>>type(e)<class'bool'>#此運(yùn)行結(jié)果表明變量e是布爾型48(2)字符串類(lèi)型字符串(str)是一個(gè)有序的字符集合。Python的字符串字面量可以使用以下四種方式定義:①一對(duì)單引號(hào):包含在單引號(hào)之間的若干個(gè)字符即為字符串,該字符串可以包含雙引號(hào)。②一對(duì)雙引號(hào):包含在雙引號(hào)之間的若干個(gè)字符即為字符串,該字符串可以包含單引號(hào)。③以三單引號(hào)(三個(gè)連續(xù)的單引號(hào),即:''')開(kāi)頭、并以三單引號(hào)結(jié)尾,包含在其中的字符串可以跨行。④以三雙引號(hào)(""")開(kāi)頭、并以三雙引號(hào)結(jié)尾,包含在其中的字符串可以跨行。49字符串舉例>>>x='''Thisisthefirstline....Thisisthesecondline.'''#三個(gè)點(diǎn)是系統(tǒng)提示符,提示用戶(hù)繼續(xù)

輸入字符串的內(nèi)容>>>print(x)Thisisthefirstline.Thisisthesecondline.>>>y='ab"c'#該字符串中包含了一個(gè)雙引號(hào)>>>print(y)ab"c509.4.5Python程序流程控制1.程序編寫(xiě)的IPO模式無(wú)論程序的規(guī)模如何,每個(gè)程序都可以分解為:Input(輸入)、Process(處理)、Output(輸出)三個(gè)部分,簡(jiǎn)稱(chēng)IPO。51輸入(Input)數(shù)據(jù)計(jì)算和處理(Process)輸出(Output)IPO形式程序結(jié)構(gòu)如何從鍵盤(pán)獲取程序的輸入input()函數(shù):從控制臺(tái)獲取用戶(hù)的鍵盤(pán)輸入,其返回值為字符串類(lèi)型int()函數(shù):將輸入數(shù)據(jù)轉(zhuǎn)換為整型float()函數(shù):將輸入數(shù)據(jù)轉(zhuǎn)換為浮點(diǎn)型52>>>a=input("請(qǐng)輸入一個(gè)數(shù):")#雙引號(hào)中的內(nèi)容是程序運(yùn)行時(shí)的輸入提示信息請(qǐng)輸入一個(gè)數(shù):7#本行是運(yùn)行結(jié)果,7是從鍵盤(pán)輸入的數(shù)據(jù)>>>print(a/2)#執(zhí)行本行代碼會(huì)產(chǎn)生語(yǔ)法錯(cuò)誤,因?yàn)樽址荒茏龀ㄟ\(yùn)算>>>type(a)<class'str'>#運(yùn)行結(jié)果表明變量a是字符串型>>>a=int(a)#將變量a轉(zhuǎn)換為整型>>>print(a/2)#整型數(shù)據(jù)可做除法計(jì)算,得到3.53.5>>>type(a)<class'int'>#運(yùn)行結(jié)果表明變量a已被轉(zhuǎn)換為整型2.順序結(jié)構(gòu)順序結(jié)構(gòu)的程序,其執(zhí)行的順序是:按各語(yǔ)句的書(shū)寫(xiě)順序依次執(zhí)行。【例9-6】用Python編程實(shí)現(xiàn):計(jì)算一位同學(xué)的兩門(mén)課的平均分。53score1=input("請(qǐng)輸入第一門(mén)課的成績(jī):")score1=float(score1)#將輸入的數(shù)據(jù)轉(zhuǎn)換為浮點(diǎn)型score2=input("請(qǐng)輸入第二門(mén)課的成績(jī):")score2=float(score2)avg=(score1+score2)/2print("平均分為:",avg)3.選擇結(jié)構(gòu)選擇結(jié)構(gòu)可以根據(jù)條件來(lái)控制程序執(zhí)行哪個(gè)分支,也稱(chēng)為分支結(jié)構(gòu)。Python的選擇結(jié)構(gòu)包括單分支、雙分支、多分支等形式。(1)單分支語(yǔ)法格式:54if

判斷條件:

語(yǔ)句/語(yǔ)句塊此處必須縮進(jìn)(按Tab鍵或空格鍵,但不能混用),且多條語(yǔ)句的縮進(jìn)對(duì)齊必須一致。功能:當(dāng)“判斷條件”的值為T(mén)rue時(shí),執(zhí)行if后的“語(yǔ)句/語(yǔ)句塊”,否則不做任何操作,程序流程直接轉(zhuǎn)到if語(yǔ)句的結(jié)束點(diǎn)。【例9-7】從鍵盤(pán)輸入一個(gè)數(shù),求它的絕對(duì)值并輸出55data=float(input("請(qǐng)輸入一個(gè)數(shù):"))ifdata<0:data=-dataprint("該數(shù)的絕對(duì)值是:",data)(2)雙分支語(yǔ)法格式:功能:當(dāng)“判斷條件”的值為真(True)時(shí),執(zhí)行if后的“語(yǔ)句/語(yǔ)句塊1”,否則執(zhí)行else后的“語(yǔ)句/語(yǔ)句塊2”。56if

判斷條件:

語(yǔ)句/語(yǔ)句塊1else:語(yǔ)句/語(yǔ)句塊2【例9-8】百分制成績(jī)轉(zhuǎn)換為二級(jí)制成績(jī)從鍵盤(pán)輸入一個(gè)百分制成績(jī),將其轉(zhuǎn)換為二級(jí)制成績(jī)(合格或不合格)并輸出。57score=float(input("請(qǐng)輸入百分制成績(jī):"))ifscore>=60:level="合格"else:level="不合格"print("成績(jī)?yōu)椋?,level)(3)多分支58語(yǔ)法格式:if

判斷條件1:

語(yǔ)句/語(yǔ)句塊1elif判斷條件2:語(yǔ)句/語(yǔ)句塊2……elif

判斷條件n:語(yǔ)句/語(yǔ)句塊n[else:語(yǔ)句/語(yǔ)句塊n+1]功能:若“判斷條件1”為T(mén)rue,則執(zhí)行“語(yǔ)句/語(yǔ)句塊1”,然后整個(gè)if結(jié)構(gòu)結(jié)束;否則,檢查“判斷條件2”,若為T(mén)rue,則執(zhí)行“語(yǔ)句/語(yǔ)句塊2”,然后整個(gè)if結(jié)構(gòu)結(jié)束;……若所有判斷條件都為False,則執(zhí)行else分支下的“語(yǔ)句/語(yǔ)句塊n”。其中,[]表示else分支是可選部分。【例9-9】百分制成績(jī)轉(zhuǎn)換為四級(jí)制成績(jī)并輸出59score=float(input("請(qǐng)輸入百分制成績(jī):"))ifscore>=85:level="優(yōu)秀"elifscore>=70:level="良好"elifscore>=60:level="合格"else:level="不合格"print("成績(jī)?yōu)椋?,level)百分制成績(jī)四級(jí)制成績(jī)85—100分優(yōu)秀70—84分良好60—69分合格59分及以下不合格(4)if語(yǔ)句的嵌套在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句,稱(chēng)為if語(yǔ)句的嵌套。60if判斷條件1:if判斷條件11:

語(yǔ)句/語(yǔ)句塊11[else:

語(yǔ)句/語(yǔ)句塊12][else:if判斷條件21:

語(yǔ)句/語(yǔ)句塊21[else:

語(yǔ)句/語(yǔ)句塊22]]【例9-10】對(duì)【例9-9】的程序進(jìn)行完善增加對(duì)用戶(hù)輸入的非法數(shù)據(jù)(負(fù)數(shù)或者大于100的數(shù))的判斷,并輸出相應(yīng)的提示信息。61score=float(input("請(qǐng)輸入百分制成績(jī):"))ifscore>100orscore<0:print("輸入的不是百分制成績(jī)。")else:ifscore>=85:level="優(yōu)秀"elifscore>=70:level="良好"elifscore>=60:level="合格"else:level="不合格"print("成績(jī)?yōu)椋?,level)4.循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)用來(lái)重復(fù)執(zhí)行一條或多條語(yǔ)句。for語(yǔ)句:常用于循環(huán)次數(shù)事先已知的情況while語(yǔ)句:常用于循環(huán)次數(shù)事先未知的情況62(1)for語(yǔ)句語(yǔ)法格式:for語(yǔ)句用于遍歷對(duì)象集合中的元素,并對(duì)集合中的每個(gè)元素執(zhí)行一次循環(huán)體語(yǔ)句。

當(dāng)對(duì)象集合中的所有元素完成迭代后,程序流程傳給for之后的下一個(gè)語(yǔ)句。在進(jìn)行計(jì)數(shù)循環(huán)時(shí),for語(yǔ)句通常會(huì)和range()函數(shù)搭配使用。63for

變量

in對(duì)象集合:循環(huán)體語(yǔ)句/語(yǔ)句塊#必須縮進(jìn)range()函數(shù)是Python的一個(gè)內(nèi)置函數(shù),功能是:創(chuàng)建一個(gè)整數(shù)列表。格式為:range(start,stop,step),三個(gè)參數(shù)的含義為:①start:起點(diǎn),可以省略。若省略,表示從0開(kāi)始。②stop:終點(diǎn),通常和start搭配使用,表示生成從start開(kāi)始(包括start)到stop結(jié)束(不包括stop)范圍內(nèi)的整數(shù)。

例如:range(1,10),會(huì)生成序列[1,2,3,4,5,6,7,8,9]。

stop也可單獨(dú)使用,例如range(5),會(huì)生成[0,1,2,3,4]。③

step:步長(zhǎng),即:后一個(gè)數(shù)和前一個(gè)數(shù)的差。若省略步長(zhǎng),則默認(rèn)為1。例如range(1,10,2)生成[1,3,5,7,9];range(1,10,3)生成[1,4,7]。64【例9-11】編程求5!65print("計(jì)算5!")result=1#保存階乘結(jié)果的變量foriinrange(1,6):

result=result*iprint("結(jié)果為",result)n=input("請(qǐng)輸入一個(gè)整數(shù):")n=int(n)result=1foriinrange(1,n+1):result=result*iprint("結(jié)果為",result)【例9-12】編程求n!【例9-13】求2到n之間的偶數(shù)之和求和范圍包括2,若n為偶數(shù),也包括n。66n=input("請(qǐng)輸入一個(gè)整數(shù):")n=int(n)result=0foriinrange(2,n+1,2):result=result+iprint("偶數(shù)之和為",result)(2)while語(yǔ)句語(yǔ)法格式:功能:先判斷循環(huán)條件,若為T(mén)rue,則執(zhí)行循環(huán)體,然后再次判斷循環(huán)條件,若仍為T(mén)rue,則再次執(zhí)行循環(huán)體,若為False,則循環(huán)結(jié)束。特別注意:在循環(huán)體中,應(yīng)包含改變循環(huán)條件的語(yǔ)句,以使循環(huán)趨于結(jié)束,避免死循環(huán)(無(wú)限循環(huán))。67while循環(huán)條件:

循環(huán)體語(yǔ)句/語(yǔ)句塊#必須縮進(jìn)【例9-14】利用while循環(huán)求n!這是一個(gè)已知循環(huán)次數(shù)(n次循環(huán))的累乘問(wèn)題,使用for語(yǔ)句編程更好,但也可使用while語(yǔ)句編程。68n=input("請(qǐng)輸入一個(gè)整數(shù):")n=int(n)result=1i=1#為循環(huán)控制變量i賦初值whilei<=n:#當(dāng)條件i<=n成立時(shí),執(zhí)行循環(huán)體

result=result*i

i=i+1#改變循環(huán)控制變量i的值,以使循環(huán)趨于結(jié)束print("結(jié)果為",result)【例9-15】根據(jù)公式求自然常數(shù)e的值69當(dāng)最后一項(xiàng)的值小于10-5時(shí)停止計(jì)算為求和結(jié)果變量e賦值1為項(xiàng)數(shù)變量n賦值1為通項(xiàng)變量term賦值1term>=10-5

累加當(dāng)前項(xiàng)e=e+term將項(xiàng)數(shù)n增加1計(jì)算下一項(xiàng)term=term/n輸出計(jì)算結(jié)果(變量e)e=1#用于保存求和的結(jié)果n=1term=1#用于保存參與求和的每一項(xiàng)whileterm>=1.0e-5:e=e+termn=n+1term=term/nprint("e=",e)print("e=",'%.5f'%e)#保留5位小數(shù)print("e=",round(e,5))#保留5位小數(shù)5.空語(yǔ)句pass如果在需要子語(yǔ)句塊的地方不寫(xiě)任何語(yǔ)句,解釋器會(huì)提示語(yǔ)法錯(cuò)誤。因此,Python提供了pass語(yǔ)句,它不做任何事情,只是一個(gè)無(wú)運(yùn)算的空的占位語(yǔ)句。當(dāng)語(yǔ)法需要語(yǔ)句并且還沒(méi)有任何實(shí)用的語(yǔ)句可寫(xiě)時(shí),就可以使用pass。例如,在選擇結(jié)構(gòu)中,若其中一個(gè)分支的代碼暫時(shí)還未寫(xiě)出來(lái),可以在該分支下寫(xiě)pass語(yǔ)句,這樣可以保證程序的語(yǔ)法是正確的,而且不會(huì)干擾到其他代碼的運(yùn)行。709.4.6函數(shù)和模塊將一個(gè)復(fù)雜的程序劃分為若干個(gè)功能相對(duì)獨(dú)立的模塊,并以功能模塊為單位進(jìn)行程序代碼的編寫(xiě)。每個(gè)功能模塊就是一個(gè)功能相對(duì)獨(dú)立的函數(shù)。Python中的函數(shù)可以分為四類(lèi):內(nèi)置函數(shù)。例如print()、type()、int()、float()等標(biāo)準(zhǔn)庫(kù)函數(shù)。例如math、random等,通過(guò)import語(yǔ)句可以導(dǎo)入標(biāo)準(zhǔn)庫(kù)后,用戶(hù)即可使用其中定義的函數(shù)。第三方庫(kù)函數(shù)用戶(hù)自定義函數(shù)711.通過(guò)import語(yǔ)句導(dǎo)入模塊【例9-16】從鍵盤(pán)輸入x和y,調(diào)用標(biāo)準(zhǔn)庫(kù)函數(shù),求x的y次方。72importmath#導(dǎo)入math模塊x=input("請(qǐng)輸入x:")x=float(x)y=input("請(qǐng)輸入y:")y=int(y)z=math.pow(x,y)#調(diào)用math模塊中的冪次函數(shù)powprint(x,"的",y,"次方=",z)請(qǐng)輸入x:1.01請(qǐng)輸入y:3651.01的365次方=37.78343433288728請(qǐng)輸入x:0.99請(qǐng)輸入y:3650.99的365次方=0.025517964452291125求x的y次方也可直接使用**運(yùn)算符,例如1.01**365不積跬步,無(wú)以至千里;不積小流,無(wú)以成江海。2.函數(shù)對(duì)象的創(chuàng)建在Python中,函數(shù)也是對(duì)象,使用def語(yǔ)句創(chuàng)建,語(yǔ)法格式:73def函數(shù)名([形參列表]):

#方括號(hào)表示形參列表為可選項(xiàng)函數(shù)體#必須縮進(jìn)函數(shù)名的命名需符合標(biāo)識(shí)符的命名規(guī)則。在定義函數(shù)時(shí),可以指定函數(shù)的參數(shù),即形式參數(shù),簡(jiǎn)稱(chēng)形參。形參寫(xiě)在一對(duì)圓括號(hào)中,多個(gè)形參用逗號(hào)分隔。

函數(shù)也可以不需要形參,此時(shí)寫(xiě)一對(duì)空的圓括號(hào)即可。函數(shù)體可以使用return語(yǔ)句返回一個(gè)值,也可以不寫(xiě)return語(yǔ)句,此時(shí)返回值為空。Python解釋執(zhí)行def語(yǔ)句時(shí),會(huì)創(chuàng)建一個(gè)函數(shù)對(duì)象,并綁定到函數(shù)名變量。3.函數(shù)的調(diào)用在調(diào)用函數(shù)時(shí),需要提供函數(shù)所需參數(shù)的值,即實(shí)際參數(shù),簡(jiǎn)稱(chēng)實(shí)參。語(yǔ)法格式:74函數(shù)名([實(shí)參列表])#方括號(hào)表示形參列表為可選項(xiàng)調(diào)用函數(shù)之前,程序必須先執(zhí)行def語(yǔ)句,創(chuàng)建函數(shù)對(duì)象。實(shí)參列表必須與函數(shù)定義中的形參列表一一對(duì)應(yīng)。如果函數(shù)有返回值,可以在表達(dá)式中直接使用;如果函數(shù)沒(méi)有返回值,則可以單獨(dú)作為表達(dá)式語(yǔ)句使用。【例9-17】定義一個(gè)可以返回兩個(gè)數(shù)的平方和的函數(shù),并調(diào)用它75defsum_square(x,y):#創(chuàng)建函數(shù)對(duì)象sum_square,它有兩個(gè)形參

returnx**2+y**2#函數(shù)體a=sum_square(3,4)#調(diào)用函數(shù),并將函數(shù)的返回值賦值給變量aprint("a=",a)【例9-18】輸入正整數(shù)n和r(n≥r),求組合數(shù)C(n,r)共有三次求階乘的計(jì)算,定義一個(gè)求階乘的函數(shù)。在程序中三次調(diào)用,實(shí)現(xiàn)“一次定義多次調(diào)用”。76

deffact(x):#創(chuàng)建函數(shù)對(duì)象fact,它有一個(gè)形參

result=1foriinrange(1,x+1):#逐個(gè)獲取[1,x]之間的值,并做累乘運(yùn)算

result=result*ireturnresultn=int(input("請(qǐng)輸入正整數(shù)n:"))r=int(input("請(qǐng)輸入正整數(shù)r(r<=n):"))com=fact(n)/(fact(r)*fact(n-r))#三次調(diào)用fact函數(shù)print("計(jì)算結(jié)果",com)

本章小結(jié)小結(jié)計(jì)算思維:概念、本質(zhì)算法的五個(gè)特征,傳統(tǒng)流程圖、N-S流程圖算法的三種基本結(jié)構(gòu):順序、選擇、循環(huán)程序設(shè)計(jì)語(yǔ)言:機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言Python語(yǔ)言基礎(chǔ):程序構(gòu)成、注釋、對(duì)象、標(biāo)識(shí)符、運(yùn)算符、表達(dá)式、數(shù)據(jù)類(lèi)型等會(huì)編寫(xiě)簡(jiǎn)單的Python程序(if,if-else,for,while,自定義函數(shù)等)

END《大學(xué)計(jì)算機(jī)基礎(chǔ)與計(jì)算思維》第10章計(jì)算機(jī)前沿技術(shù)目錄CONTENT1常見(jiàn)前沿技術(shù)2人工智能常見(jiàn)前沿技術(shù)10.110.1.1

大數(shù)據(jù)1.大數(shù)據(jù)的基本概念大數(shù)據(jù)(BigData):無(wú)法用常規(guī)軟件工具(如Excel、數(shù)據(jù)庫(kù)管理系統(tǒng)等)在一定時(shí)間范圍內(nèi)進(jìn)行捕捉、管理和處理的數(shù)據(jù)集合,需要利用新的處理模式才能從海量、高增長(zhǎng)率和多樣化的數(shù)據(jù)集合中,挖掘出具有更強(qiáng)的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力的信息資產(chǎn),目的是解決海量數(shù)據(jù)的存儲(chǔ)和分析計(jì)算問(wèn)題。8210.1.1

大數(shù)據(jù)2.大數(shù)據(jù)的特點(diǎn)(4V)Volume(大量):數(shù)據(jù)量大是大數(shù)據(jù)的最基本屬性,包括采集、存儲(chǔ)和計(jì)算的數(shù)據(jù)量都非常大。具不完全統(tǒng)計(jì),截至目前,人類(lèi)生產(chǎn)的所有印刷材料的數(shù)據(jù)量接近200PB,全人類(lèi)總共說(shuō)過(guò)的話(huà)的數(shù)據(jù)量大約5EB。Velocity(高速):數(shù)據(jù)的增長(zhǎng)速度、處理速度,時(shí)效性要求高,是大數(shù)據(jù)區(qū)分于傳統(tǒng)數(shù)據(jù)處理的最顯著特征。根據(jù)IDCID(互聯(lián)網(wǎng)數(shù)據(jù)中心)?的“數(shù)字宇宙”的報(bào)告,全球數(shù)據(jù)使用量在2021年已達(dá)到84.5ZB左右,海量數(shù)據(jù)的高速處理已經(jīng)成為各企業(yè)面臨的時(shí)代課題。Variety(多樣):數(shù)據(jù)類(lèi)型多且復(fù)雜多變。根據(jù)數(shù)據(jù)類(lèi)型的多樣性,可以將數(shù)據(jù)分為結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。除了傳統(tǒng)的以數(shù)據(jù)庫(kù)文本為主的結(jié)構(gòu)化數(shù)據(jù)外,還有大量以網(wǎng)絡(luò)日志、音頻、視頻、圖片、地理位置信息等為主的非結(jié)構(gòu)化數(shù)據(jù),且非結(jié)構(gòu)化數(shù)據(jù)的處理比結(jié)構(gòu)化數(shù)據(jù)的處理更加困難,要求更高。Value(價(jià)值):數(shù)據(jù)價(jià)值密度相對(duì)較低。互聯(lián)網(wǎng)主導(dǎo)的數(shù)據(jù)世界中,數(shù)據(jù)量越來(lái)越多,其價(jià)值密度的高低與數(shù)據(jù)總量的大小成反比。如何在海量數(shù)據(jù)中快速對(duì)有價(jià)值的數(shù)據(jù)"提純”,是大數(shù)據(jù)背景下待解決的難題。838410.1.1

大數(shù)據(jù)的特點(diǎn)大數(shù)據(jù)的特點(diǎn)Volume(大量)Variety(多樣)Velocity(高速)Value(價(jià)值)10.1.1

大數(shù)據(jù)3.大數(shù)據(jù)的發(fā)展:人類(lèi)的信息化出現(xiàn)了三次浪潮8510.1.1

大數(shù)據(jù)4.大數(shù)據(jù)的應(yīng)用體系大數(shù)據(jù)包括結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù),非結(jié)構(gòu)化數(shù)據(jù)已成為大數(shù)據(jù)的主要部分.8610.1.1

大數(shù)據(jù)4.大數(shù)據(jù)的應(yīng)用體系大數(shù)據(jù)來(lái)源:信息管理系統(tǒng)、網(wǎng)絡(luò)信息系統(tǒng)、物聯(lián)網(wǎng)系統(tǒng)、各種實(shí)驗(yàn)系統(tǒng)等產(chǎn)生的各類(lèi)數(shù)據(jù);大數(shù)據(jù)采集:大數(shù)據(jù)技術(shù)的重要開(kāi)端,謹(jǐn)慎選擇采集方法尤為重要。目前大數(shù)據(jù)常用的采集方法主要有系統(tǒng)日志采集法、網(wǎng)絡(luò)數(shù)據(jù)采集法以及其他數(shù)據(jù)采集法三類(lèi);大數(shù)據(jù)預(yù)處理:在進(jìn)行數(shù)據(jù)分析之前,需對(duì)采集到的原始數(shù)據(jù)進(jìn)行數(shù)據(jù)清理、數(shù)據(jù)集成、數(shù)據(jù)歸約、數(shù)據(jù)變換、數(shù)據(jù)離散化等一系列操作過(guò)程,以提高數(shù)據(jù)質(zhì)量,為數(shù)據(jù)分析奠定基礎(chǔ);8710.1.1

大數(shù)據(jù)4.大數(shù)據(jù)的應(yīng)用體系大數(shù)據(jù)存儲(chǔ):大數(shù)據(jù)存儲(chǔ)即對(duì)結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化的數(shù)據(jù)以數(shù)據(jù)庫(kù)的形式存儲(chǔ),并對(duì)數(shù)據(jù)進(jìn)行管理和調(diào)用。大數(shù)據(jù)的存儲(chǔ)需要高性能、高吞吐率、大容量的基礎(chǔ)設(shè)備,目前大數(shù)據(jù)的存儲(chǔ)路線(xiàn)主要有三種:采用MPP(MassivelyParallelProcessing,大規(guī)模并行處理)架構(gòu)的新型數(shù)據(jù)庫(kù)集群;基于Hadoop技術(shù)的擴(kuò)展和封裝,派生出圍繞Hadoop的相關(guān)大數(shù)據(jù)存儲(chǔ)技術(shù);大數(shù)據(jù)一體機(jī),面向大數(shù)據(jù)存儲(chǔ)、處理、軟硬一體化的方案型產(chǎn)品;大數(shù)據(jù)分析:大數(shù)據(jù)分析是指有組織有目的地收集數(shù)據(jù)、分析數(shù)據(jù),把隱藏在海量數(shù)據(jù)中的有用信息集中和提煉出來(lái),并找出所研究對(duì)象的內(nèi)在規(guī)律,使之成為有用的信息。基本方法主要有:可視化分析;數(shù)據(jù)挖掘算法;預(yù)測(cè)性分析;數(shù)據(jù)質(zhì)量分析與管理。8810.1.2

物聯(lián)網(wǎng)1.物聯(lián)網(wǎng)的基本概念物聯(lián)網(wǎng)(IoT,InternetofThings)即“萬(wàn)物相連的互聯(lián)網(wǎng)”,是信息科技產(chǎn)業(yè)的第三次革命,其將各種信息傳感設(shè)備與互聯(lián)網(wǎng)結(jié)合,延伸和擴(kuò)展了傳統(tǒng)的互聯(lián)網(wǎng),實(shí)現(xiàn)任何時(shí)間、地點(diǎn),人、機(jī)、物的互聯(lián)互通。物聯(lián)網(wǎng)擴(kuò)展了傳統(tǒng)的網(wǎng)絡(luò),核心技術(shù)有傳感器技術(shù)、組網(wǎng)技術(shù)、云計(jì)算、嵌入式技術(shù)。8910.1.2

物聯(lián)網(wǎng)2、物聯(lián)網(wǎng)的體系結(jié)構(gòu)物聯(lián)網(wǎng)是由眾多依賴(lài)于傳感器、通信、網(wǎng)絡(luò)和信息處理技術(shù)的連接設(shè)備組成的網(wǎng)絡(luò)基礎(chǔ)架構(gòu)。為了更好地研究和開(kāi)發(fā)物聯(lián)網(wǎng),學(xué)者們從技術(shù)架構(gòu)上把物聯(lián)網(wǎng)分為三層架構(gòu)。9010.1.2

物聯(lián)網(wǎng)2、物聯(lián)網(wǎng)的體系結(jié)構(gòu)物聯(lián)網(wǎng)是由眾多依賴(lài)于傳感器、通信、網(wǎng)絡(luò)和信息處理技術(shù)的連接設(shè)備組成的網(wǎng)絡(luò)基礎(chǔ)架構(gòu)。為了更好地研究和開(kāi)發(fā)物聯(lián)網(wǎng),學(xué)者們從技術(shù)架構(gòu)上把物聯(lián)網(wǎng)分為三層架構(gòu)。9110.1.2

物聯(lián)網(wǎng)2、物聯(lián)網(wǎng)的體系結(jié)構(gòu)9210.1.2

物聯(lián)網(wǎng)3、物聯(lián)網(wǎng)的應(yīng)用物聯(lián)網(wǎng)技術(shù)廣泛應(yīng)用于智能交通、智能醫(yī)療、智慧城市、智慧工廠(chǎng)、物聯(lián)行業(yè)、食品安全、智能電網(wǎng)等諸多領(lǐng)域。物聯(lián)網(wǎng)充分運(yùn)用新一代IT技術(shù),將感應(yīng)器嵌入到電網(wǎng)、鐵路、橋梁、隧道、公路、建筑、供水系統(tǒng)、大壩、油氣管道等各種物體中,通過(guò)“物聯(lián)網(wǎng)”與現(xiàn)有的互聯(lián)網(wǎng)的整合來(lái)實(shí)現(xiàn)人類(lèi)社會(huì)與物理網(wǎng)絡(luò)系統(tǒng)的整合,并利用一個(gè)超級(jí)強(qiáng)大的中心計(jì)算機(jī)群對(duì)網(wǎng)絡(luò)內(nèi)的人員、機(jī)器、設(shè)備和基礎(chǔ)設(shè)施進(jìn)行實(shí)時(shí)管理和控制,可以精細(xì)和動(dòng)態(tài)地管理網(wǎng)內(nèi)人與物的生產(chǎn)或生活,達(dá)到“智慧”狀態(tài),提高資源利用率和生產(chǎn)力。9310.1.2

物聯(lián)網(wǎng)3、物聯(lián)網(wǎng)的應(yīng)用9410.1.3云計(jì)算1、云計(jì)算的概念

云計(jì)算是一種可通過(guò)互聯(lián)網(wǎng)訪(fǎng)問(wèn)、可定制的獨(dú)特的IT資源共享池,包括網(wǎng)絡(luò)、服務(wù)器、存儲(chǔ)、應(yīng)用、服務(wù)等計(jì)算資源,一般采用按使用量付費(fèi)模式。云計(jì)算是一種全新的、快捷地自助使用遠(yuǎn)程計(jì)算資源的模式,計(jì)算資源所在地稱(chēng)為云端(云基礎(chǔ)設(shè)施),使用云端資源服務(wù)的設(shè)備稱(chēng)為云終端。云計(jì)算的核心理念就是按需服務(wù),與人們使用水、電、天然氣等資源一樣,按需繳費(fèi)。9510.1.3云計(jì)算2、云計(jì)算的特點(diǎn)

虛擬化技術(shù):虛擬化是云計(jì)算最為顯著的特點(diǎn),突破了時(shí)間、空間的界限。虛擬化技術(shù)包括應(yīng)用虛擬和資源虛擬。動(dòng)態(tài)可擴(kuò)展:云計(jì)算具有高效的運(yùn)算能力,在普通服務(wù)器基礎(chǔ)上部署云計(jì)算功能可以大大提高其計(jì)算速度,并利用動(dòng)態(tài)擴(kuò)展虛擬化對(duì)其應(yīng)用進(jìn)行擴(kuò)展。按需部署:云計(jì)算平臺(tái)可以根據(jù)用戶(hù)需求配備相應(yīng)的計(jì)算能力及相關(guān)資源。靈活性高:云計(jì)算的兼容性非常強(qiáng),除了可以兼容低配置、不同廠(chǎng)商的硬件產(chǎn)品外,還能兼容各種外設(shè),從而具有更高的計(jì)算性能。性?xún)r(jià)比高:云計(jì)算可以將多臺(tái)廉價(jià)的PC機(jī)組成云,將PC機(jī)的資源放在虛擬資源池中統(tǒng)一優(yōu)化管理,并協(xié)同完成計(jì)算任務(wù),其計(jì)算性能不輸于高性能、昂貴的大中型主機(jī),既減少費(fèi)用又提高計(jì)算性能。可靠性高:云計(jì)算中,任何單點(diǎn)服務(wù)器的故障都不會(huì)影響整個(gè)系統(tǒng)的正常運(yùn)行。9610.1.3云計(jì)算3、云計(jì)算的體系結(jié)構(gòu)

云計(jì)算通過(guò)網(wǎng)絡(luò)提供可伸縮的、廉價(jià)的分布式計(jì)算能力,具備網(wǎng)絡(luò)接入條件的用戶(hù)可隨時(shí)隨地獲得所需的各種IT資源。云計(jì)算以共享資源池的動(dòng)態(tài)伸縮形式,降低了管理軟件和硬件的成本,提供了高計(jì)算能力和高性能需求。9710.1.3云計(jì)算3、云計(jì)算的體系結(jié)構(gòu)

云計(jì)算包括私有云、公有云和混合云三種基本模型。私有云:一個(gè)云端的所有消費(fèi)者只來(lái)自一個(gè)特定的單位組織,云資源只分配給一個(gè)單位組織內(nèi)的用戶(hù)使用,如大學(xué)內(nèi)部的機(jī)房部署。公有云:一個(gè)云端資源的所有消費(fèi)者是社會(huì)大眾,云資源開(kāi)放給所有公眾使用,如百度云、阿里云等;云端的所有權(quán)、日常管理和操作由一個(gè)商業(yè)組織、學(xué)術(shù)機(jī)構(gòu)或政府部門(mén)管理,公有云的管理比私有云的管理復(fù)雜得多。混合云:由兩個(gè)及以上的不同類(lèi)型的云組成,在同一環(huán)境下結(jié)合公有和私有云服務(wù),一般通過(guò)公有云擴(kuò)展,將公司的所有敏感業(yè)務(wù)都通過(guò)自主完全控制的私有云系統(tǒng)來(lái)處理,混合云在實(shí)際應(yīng)用中較為廣泛。9810.1.3云計(jì)算3、云計(jì)算的體系結(jié)構(gòu):云計(jì)算有三種服務(wù)模型:基礎(chǔ)設(shè)施即服務(wù)(InfrastructureasaService,IaaS):將基礎(chǔ)設(shè)施(存儲(chǔ)設(shè)施,網(wǎng)絡(luò),處理能力和虛擬專(zhuān)用服務(wù)器)作為服務(wù)出租,按“現(xiàn)收現(xiàn)付”模式收費(fèi)。軟件即服務(wù)(SoftwareasaService,SaaS):軟件提供商出租一個(gè)應(yīng)用程序,通過(guò)一個(gè)集中的系統(tǒng)部署軟件,使之在一臺(tái)本地計(jì)算機(jī)上(或從云中遠(yuǎn)程地)運(yùn)行一個(gè)應(yīng)用程序模型。SaaS計(jì)費(fèi)通常基于諸如用戶(hù)數(shù)量、使用時(shí)間、存儲(chǔ)的數(shù)據(jù)量以及處理的事務(wù)數(shù)等因素。平臺(tái)即服務(wù)(PlatformasaService,PaaS):位于基礎(chǔ)架構(gòu)即服務(wù)(IaaS)和軟件即服務(wù)(SaaS)之間,包括操作系統(tǒng)和圍繞特定應(yīng)用的服務(wù)。99云計(jì)算、物聯(lián)網(wǎng)、大數(shù)據(jù)關(guān)系結(jié)構(gòu)10010.1.4區(qū)塊鏈1、區(qū)塊鏈的誕生:

2008年11月1日,日本人中本聰在《比特幣:一種點(diǎn)對(duì)點(diǎn)的電子現(xiàn)金系統(tǒng)》一文中闡述了基于P2P(peer-to-peer,點(diǎn)對(duì)點(diǎn))網(wǎng)絡(luò)、加密、時(shí)間戳、區(qū)塊鏈等技術(shù)的電子現(xiàn)金系統(tǒng)的構(gòu)架理念,誕生了比特幣。2009年1月3日第一個(gè)序號(hào)為0的區(qū)塊誕生,2009年1月9日序號(hào)為1的區(qū)塊出現(xiàn),并與序號(hào)為0的區(qū)塊相連接形成了鏈,標(biāo)志著區(qū)塊鏈的誕生。

區(qū)塊鏈,就是由多個(gè)區(qū)塊組成的鏈條。每一個(gè)區(qū)塊中保存了一定的信息,并按照各自產(chǎn)生的時(shí)間順序連接成鏈條;相比于傳統(tǒng)的網(wǎng)絡(luò),區(qū)塊鏈具有兩大核心特點(diǎn):一是數(shù)據(jù)難以篡改,二是去中心化。10110.1.4區(qū)塊鏈2、區(qū)塊鏈原理:

區(qū)塊鏈通過(guò)加密算法、共識(shí)機(jī)制和特定的數(shù)據(jù)存儲(chǔ)方式,實(shí)現(xiàn)去中心化、各節(jié)點(diǎn)無(wú)須事先信任,以構(gòu)建一個(gè)集體維護(hù)的可靠數(shù)據(jù)模式,實(shí)現(xiàn)數(shù)字資產(chǎn)在網(wǎng)絡(luò)節(jié)點(diǎn)之間的轉(zhuǎn)移.10210.1.4區(qū)塊鏈2、區(qū)塊鏈原理:區(qū)塊鏈保證了數(shù)據(jù)的完整性,每一個(gè)區(qū)塊都會(huì)存儲(chǔ)它被創(chuàng)建之前的所有價(jià)值交換信息;區(qū)塊鏈保證了數(shù)據(jù)的嚴(yán)謹(jǐn)性,新的區(qū)塊一旦被加入鏈中,之前的區(qū)塊就再也不能隨意修改。區(qū)塊鏈實(shí)現(xiàn)了所有參與者共同構(gòu)建數(shù)據(jù)庫(kù),從數(shù)據(jù)傳輸、數(shù)據(jù)驗(yàn)證、數(shù)據(jù)存儲(chǔ)都去中心化和全面分布式模式處理。區(qū)塊鏈還采用了非對(duì)稱(chēng)加密算法以提高數(shù)據(jù)的可信賴(lài)度。區(qū)塊鏈?zhǔn)褂脭?shù)學(xué)方法解決信任問(wèn)題,用算法代替中心化的第三方機(jī)構(gòu)認(rèn)證。區(qū)塊鏈利用腳本系統(tǒng)來(lái)直接定義完成價(jià)值交換活動(dòng)所需要的條件,腳本的可編程性使區(qū)塊鏈技術(shù)不斷擴(kuò)展成長(zhǎng),不斷應(yīng)用在一些新形態(tài)的交易模式中,保證了時(shí)效性和實(shí)用性。10310.1.4區(qū)塊鏈3、區(qū)塊鏈特點(diǎn):去中心化:區(qū)塊鏈網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的地位相等,不會(huì)因中心節(jié)點(diǎn)故障而引起風(fēng)險(xiǎn)。每個(gè)節(jié)點(diǎn)參與數(shù)據(jù)存儲(chǔ)并驗(yàn)證其他節(jié)點(diǎn)記錄信息的正確性,當(dāng)某個(gè)記錄的正確性被大部分節(jié)點(diǎn)認(rèn)同時(shí),才能寫(xiě)入鏈中。區(qū)塊鏈會(huì)對(duì)所有數(shù)據(jù)進(jìn)行分布式存儲(chǔ),保證了數(shù)據(jù)信息不會(huì)因節(jié)點(diǎn)受攻擊或其他意外而丟失,實(shí)時(shí)更新,提高了數(shù)據(jù)庫(kù)的安全性。開(kāi)放性:區(qū)塊鏈網(wǎng)絡(luò)中,除了交易各方的私有信息被加密外,區(qū)塊鏈技術(shù)基礎(chǔ)是開(kāi)源的,其中的數(shù)據(jù)也對(duì)所有人開(kāi)放,任何人都可以通過(guò)公開(kāi)的接口查詢(xún)區(qū)塊鏈數(shù)據(jù)和開(kāi)發(fā)相關(guān)應(yīng)用,整個(gè)系統(tǒng)信息高度透明。獨(dú)立性:基于協(xié)商一致的規(guī)范和協(xié)議,整個(gè)區(qū)塊鏈系統(tǒng)不依賴(lài)其他第三方的干預(yù),所有節(jié)點(diǎn)在系統(tǒng)內(nèi)自動(dòng)安全地驗(yàn)證、交換數(shù)據(jù)。安全性:區(qū)塊鏈系統(tǒng)中的區(qū)塊鏈數(shù)據(jù)相對(duì)安全,若要操控修改網(wǎng)絡(luò)數(shù)據(jù),必須掌控全部數(shù)據(jù)節(jié)點(diǎn)的50%以上,從而避免了人為主觀(guān)的數(shù)據(jù)變更。10410.1.4區(qū)塊鏈4、區(qū)塊鏈的應(yīng)用:區(qū)塊鏈技術(shù)已經(jīng)應(yīng)用于金融、物聯(lián)網(wǎng)與物流、內(nèi)容社交平臺(tái)、醫(yī)療、公益、教育等社會(huì)生活中的各大領(lǐng)域。金融領(lǐng)域:區(qū)塊鏈技術(shù)應(yīng)用在金融行業(yè),將省去第三方中介環(huán)節(jié),實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的直接對(duì)接,大大降低成本并快速完成交易支付。區(qū)塊鏈可以融入股權(quán)、債券、基金等各類(lèi)金融資產(chǎn)中,使其以“數(shù)字資產(chǎn)”的形式進(jìn)行存儲(chǔ)和交易。物聯(lián)網(wǎng)和物流領(lǐng)域:區(qū)塊鏈在物聯(lián)網(wǎng)和物流領(lǐng)域可實(shí)現(xiàn)天然結(jié)合。通過(guò)區(qū)塊鏈可以降低物流成本,追溯物品的生產(chǎn)和運(yùn)送過(guò)程,提高供應(yīng)鏈管理的效率,是一個(gè)很有前景的應(yīng)用方向。內(nèi)容社交平臺(tái):當(dāng)前流行的社交平臺(tái)(如抖音、微博、微信公眾號(hào)等)都是中心化的,用戶(hù)通過(guò)其提供的平臺(tái)提交內(nèi)容為自己帶來(lái)流量,利用流量獲利平臺(tái)將權(quán)力分散到用戶(hù)身上,用戶(hù)貢獻(xiàn)出自己的內(nèi)容并獲得平臺(tái)的獎(jiǎng)勵(lì)和經(jīng)濟(jì)回報(bào)。10510.1.4區(qū)塊鏈4、區(qū)塊鏈的應(yīng)用:醫(yī)療領(lǐng)域:區(qū)塊鏈在醫(yī)療信息安全與隱私保護(hù)方面有著極其重要的應(yīng)用。利用區(qū)塊鏈的去中心化存儲(chǔ)與共享病人的醫(yī)療健康信息數(shù)據(jù),可防止病人的私密資料泄漏,有益于醫(yī)療行業(yè)的健康發(fā)展。公益領(lǐng)域:區(qū)塊鏈上存儲(chǔ)的數(shù)據(jù),具有高可靠且不可篡改的特性,適用于社會(huì)

溫馨提示

  • 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)論