版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第二章大數(shù)據(jù)分析工具第二章大數(shù)據(jù)分析工具隨著大數(shù)據(jù)時(shí)代的來臨,各行各業(yè)所積累的數(shù)據(jù)呈爆炸式增長,大數(shù)據(jù)分析在各個(gè)領(lǐng)域的需求將會越來越強(qiáng)烈,與各個(gè)專業(yè)領(lǐng)域的結(jié)合也將會越來越廣泛。大數(shù)據(jù)分析是一個(gè)對大量數(shù)據(jù)進(jìn)行綜合分析與處理的過程,一般包括:大數(shù)據(jù)采集、大數(shù)據(jù)存儲、大數(shù)據(jù)分析以及大數(shù)據(jù)的展現(xiàn)。針對不同專業(yè)領(lǐng)域的不同需求的數(shù)據(jù)分析問題,可以采用不同的工具進(jìn)行分析。2第二章目錄2.1大數(shù)據(jù)分析工具簡介2.2百度AIStudio平臺介紹2.3Python基礎(chǔ)2.4變量及數(shù)據(jù)的使用2.5Python程序的輸入輸出2.6Python程序的控制結(jié)構(gòu)2.7函數(shù)和模塊2.8大數(shù)據(jù)文本分析2.1大數(shù)據(jù)分析工具簡介目前,各行各業(yè)對大數(shù)據(jù)分析工具的使用非常廣泛,下面介紹一些常用的大數(shù)據(jù)分析工具。(1)HadoopHadoop是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架。Hadoop解決了以下幾個(gè)問題:海量數(shù)據(jù)存儲即HDFS(Hadoop分布式文件系統(tǒng))、海量數(shù)據(jù)計(jì)算即MapReduce(分布式計(jì)算編程模型)、以及資源調(diào)度平臺即YARN。其分布式文件系統(tǒng)HDFS,允許用戶將JSON、XML、視頻、圖像和文本等多種數(shù)據(jù)保存在同一文件系統(tǒng)上。Hadoop以一種可靠、高效、可伸縮的方式進(jìn)行數(shù)據(jù)處理。(1)可靠性。它假設(shè)計(jì)算元素和存儲會失敗,因此它維護(hù)多個(gè)工作數(shù)據(jù)副本,確保能夠針對失敗的節(jié)點(diǎn)重新分布處理。(2)高效性。因?yàn)樗圆⑿械姆绞焦ぷ?,通過并行處理加快處理速度。(3)可伸縮性。Hadoop能夠處理PB級數(shù)據(jù),并憑借其自身在數(shù)據(jù)提取、變形和加載(ETL)方面上的天然優(yōu)勢,
在大數(shù)據(jù)處理應(yīng)用中廣泛應(yīng)用。Hadoop是最流行的軟件框架之一,它為大數(shù)據(jù)集提供了低成本的分布式計(jì)算的能力。32.1大數(shù)據(jù)分析工具簡介(2)編程類語言:Python和RPython是數(shù)據(jù)分析、數(shù)據(jù)科學(xué)與機(jī)器學(xué)習(xí)的第一大編程語言,它可輕松執(zhí)行幾乎所有的大數(shù)據(jù)分析操作。Python具有語法簡單易學(xué)、編程高效、免費(fèi)開源、可移植、面向?qū)ο蟮葍?yōu)點(diǎn),廣泛應(yīng)用于數(shù)據(jù)分析、數(shù)據(jù)挖掘、人工智能、機(jī)器學(xué)習(xí)等方面。隨著大數(shù)據(jù)分析的飛速發(fā)展和人工智能應(yīng)用的廣泛普及,Python成了全球增長最快的主流編程語言。國內(nèi)外用Python做科學(xué)計(jì)算的研究機(jī)構(gòu)日益增多,眾多開源的科學(xué)計(jì)算軟件包也都提供了Python的調(diào)用接口。Python的強(qiáng)大之處在于可以方便地安裝和使用第三方庫,目前Python擁有幾十萬個(gè)第三方庫,覆蓋大數(shù)據(jù)分析技術(shù)幾乎所有領(lǐng)域。例如網(wǎng)絡(luò)爬蟲、自動化、數(shù)據(jù)分析與可視化、機(jī)器學(xué)習(xí)、人工智能等。R是一款用于統(tǒng)計(jì)分析、統(tǒng)計(jì)繪圖的語言和操作環(huán)境。它不單是一門語言,更是一個(gè)數(shù)據(jù)計(jì)算與分析的環(huán)境。R最主要的特點(diǎn)是免費(fèi)、開源、各種各樣的模塊十分齊全,它是一個(gè)用于統(tǒng)計(jì)計(jì)算和統(tǒng)計(jì)制圖的優(yōu)秀工具。目前R也在機(jī)器學(xué)習(xí)、統(tǒng)計(jì)計(jì)算、高性能計(jì)算得到廣泛應(yīng)用。R是由來自新西蘭奧克蘭大學(xué)的RossIhaka和RobertGentleman開發(fā),由于是統(tǒng)計(jì)學(xué)家編寫的語言,因此在統(tǒng)計(jì)領(lǐng)域的研究中,R比Python更勝一籌。但是Python與R相比,執(zhí)行速度更快,應(yīng)用場景也更廣泛。42.1大數(shù)據(jù)分析工具簡介(3)云計(jì)算平臺云計(jì)算平臺也稱為云平臺,是指基于硬件資源和軟件資源的服務(wù),提供計(jì)算、網(wǎng)絡(luò)和存儲能力。大數(shù)據(jù)必然無法僅用單臺的計(jì)算機(jī)進(jìn)行數(shù)據(jù)處理,因此必須采用云計(jì)算平臺進(jìn)行分布式計(jì)算和存儲。云計(jì)算平臺就是將任何開發(fā)者都可能需要的軟件集成到一個(gè)平臺上,開發(fā)者只需要登錄這個(gè)平臺,就可以選擇自己所需要的軟件、數(shù)據(jù)庫、開發(fā)環(huán)境等,不必耗費(fèi)本地內(nèi)存和資源,并具有更高的安全性。傳統(tǒng)的工作方式,開發(fā)者需要將數(shù)據(jù)庫、開發(fā)環(huán)境、軟件等部署在本地的服務(wù)器上,這樣一來服務(wù)器部署、維護(hù)等工作就要投入大量成本,并且安全性能也存在較大隱患。相比而言,云計(jì)算平臺具有便捷高效、節(jié)約成本、安全可靠等優(yōu)勢。百度AIStudio和阿里云天池都是集成了大數(shù)據(jù)和人工智能的云計(jì)算平臺。特別地,百度AIStudio還是針對AI學(xué)習(xí)者的在線一體化開發(fā)實(shí)訓(xùn)平臺。(第2.2節(jié))52.1大數(shù)據(jù)分析工具簡介數(shù)據(jù)分析的基礎(chǔ)工具ExcelExcel是一款專業(yè)的表格制作和數(shù)據(jù)處理軟件,可以從各種數(shù)據(jù)源導(dǎo)入數(shù)據(jù),通過各種各樣的函數(shù)和公式對數(shù)據(jù)進(jìn)行預(yù)處理,并對整理好的數(shù)據(jù)集進(jìn)行描述性統(tǒng)計(jì)分析、投資決策分析以及時(shí)間序列預(yù)測分析、相關(guān)分析與回歸分析等。(第5、6章)統(tǒng)計(jì)數(shù)據(jù)分析與處理軟件SPSSSPSS(StatisticalPackagefortheSocialScience,社會科學(xué)統(tǒng)計(jì)軟件包)是一款優(yōu)秀的統(tǒng)計(jì)分析軟件,著重于在統(tǒng)計(jì)分析運(yùn)算、數(shù)據(jù)挖掘、預(yù)測分析等功能的實(shí)現(xiàn)。SPSS可以在不需要編程語言的情況下很好地進(jìn)行回歸分析、方差分析等研究,具有界面簡單、功能強(qiáng)大等優(yōu)點(diǎn)。大數(shù)據(jù)展現(xiàn)工具Word和PowerPoint大數(shù)據(jù)分析的最后階段是撰寫數(shù)據(jù)分析報(bào)告,這是對整個(gè)數(shù)據(jù)分析成果的一個(gè)呈現(xiàn)。通過分析報(bào)告,把數(shù)據(jù)分析的目的、過程、結(jié)果及方案完整呈現(xiàn)出來,以供商業(yè)目的提供參考。通過Word字處理軟件和PowerPoint演示文稿軟件提供的強(qiáng)大的文本編輯和排版、圖文混排、與其他多種軟件進(jìn)行信息交換等功能,可以對大數(shù)據(jù)分析的結(jié)果進(jìn)行處理和展示。(第4章)62.2百度AIStudio平臺介紹百度AIStudio(ArtificialIntelligenceStudio,人工智能平臺)是集成了大數(shù)據(jù)和人工智能的云計(jì)算平臺。特別地,AIStudio還是針對AI學(xué)習(xí)者的在線一體化開發(fā)實(shí)訓(xùn)平臺。該平臺集合了AI教程,AI項(xiàng)目工程,各領(lǐng)域的經(jīng)典數(shù)據(jù)集,云端的超強(qiáng)運(yùn)算力及存儲資源,以及比賽平臺和社區(qū)。使用AIStudio平臺可以輕松地運(yùn)行大數(shù)據(jù)和人工智能相關(guān)的項(xiàng)目,解決AI學(xué)習(xí)過程中的一系列難題,例如高質(zhì)量的數(shù)據(jù)集不易獲得,以及本地難以使用大體量數(shù)據(jù)集進(jìn)行模型訓(xùn)練等。72.2.1運(yùn)行一個(gè)簡單的項(xiàng)目2.2.2GPU算力2.2.1運(yùn)行一個(gè)簡單的項(xiàng)目下面來運(yùn)行一個(gè)簡單的項(xiàng)目。第1步:使用百度賬號登錄AIStudio平臺。平臺網(wǎng)址為。82.2AIStudio平臺介紹第2步:找到要運(yùn)行的項(xiàng)目并保存至“我的項(xiàng)目”。92.2AIStudio平臺介紹將“公開項(xiàng)目”保存為“我的項(xiàng)目”。需要通過“fork”操作來完成。102.2AIStudio平臺介紹運(yùn)行一個(gè)簡單的項(xiàng)目第3步:選擇運(yùn)行環(huán)境來運(yùn)行項(xiàng)目。112.2AIStudio平臺介紹Notebook環(huán)境:Notebook是一個(gè)集說明性文字、數(shù)學(xué)公式、代碼和可視化圖表于一體的網(wǎng)頁版的交互式Python運(yùn)行環(huán)境,廣泛用于數(shù)據(jù)分析,數(shù)據(jù)可視化和其他的交互和探索性計(jì)算中。Notebook允許用戶把所有與程序代碼相關(guān)的文本、圖片、公式,以及程序段運(yùn)行的中間結(jié)果全都結(jié)合在一個(gè)Web文檔里面,還可以輕松地修改和共享。Notebook編程環(huán)境中包括代碼單元格和標(biāo)簽單元格,只有代碼單元格能夠執(zhí)行。單擊右上角的“運(yùn)行”菜單下的“全部執(zhí)行”子菜單,即可運(yùn)行該項(xiàng)目。代碼單元格執(zhí)行的結(jié)果顯示在該代碼單元格下方。122.2AIStudio平臺介紹當(dāng)創(chuàng)建一個(gè)新的項(xiàng)目時(shí),可以選擇所需的Notebook版本。AIStudio經(jīng)典版是基于Jupyternotebook架構(gòu),是AIStudio平臺最早使用的版本;BMLCodelab是基于全新的JupterLab架構(gòu),除了包括Jupyternotebook的架構(gòu),還增加了很多新的特性。JupyterLab是包括了JupyterNotebook的下一代用戶界面。支持多個(gè)notebook或文件(HTML,TXT,Markdown等等)的查看與編輯、雙語言、亮暗主題切換、代碼實(shí)時(shí)自動補(bǔ)全、變量重命名、編寫用戶實(shí)時(shí)提醒等眾多新特性。JupyterNotebook和JupyterLab統(tǒng)一被稱為Notebook環(huán)境。132.2.2GPU算力算力云計(jì)算平臺上提供的計(jì)算能力簡稱為算力,算力是大數(shù)據(jù)時(shí)代的必然產(chǎn)物。從大數(shù)據(jù)分析的角度來講,算力也代表著數(shù)據(jù)處理的能力。隨著時(shí)代的發(fā)展,算力會更加廣泛地運(yùn)用于生活的各個(gè)層面。AIStudio平臺配備工業(yè)級NVIDIATeslaV100GPU資源NVIDIATeslaV100是當(dāng)今市場上加速人工智能、高性能計(jì)算和圖形的數(shù)據(jù)中心GPU中的精尖之作,提供AIStudio平臺的算力支持。GPU全稱GraphicsProcessingUnit圖形處理器,最初是專門用來處理圖形渲染的,即做一系列圖形的計(jì)算。因?yàn)橛螒颉?D對渲染的要求越來越高,隨著技術(shù)進(jìn)步GPU越來越強(qiáng)大,性能越來越高。142.2.2GPU算力AIStudio平臺上算力方案152.2.2GPU算力AIStudio上的GPU算力獲取方式主要是運(yùn)行項(xiàng)目自動獲取、分享拉新贏算力以及運(yùn)營人員手工發(fā)放三類,算力卡單位為點(diǎn),每點(diǎn)可使用高級版算力2小時(shí)或至尊版算力1小時(shí)。每日運(yùn)行項(xiàng)目即送8點(diǎn)算力,可使用高級版算力運(yùn)行16小時(shí)。那么加載了GPU的計(jì)算環(huán)境計(jì)算能力如何呢?在人工智能中廣泛使用的深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò),里面包含了大量的矩陣運(yùn)算,這些操作和GPU本來的圖形點(diǎn)的矩陣運(yùn)算是一樣的,因此深度學(xué)習(xí)就可以非常恰當(dāng)?shù)赜肎PU來進(jìn)行加速了。在進(jìn)行純理論計(jì)算時(shí),GPU的性能要比CPU高出幾十上百倍。162.2.2GPU算力下面給出了一個(gè)簡單的求矩陣乘法的代碼,通過在不同算力環(huán)境下運(yùn)行代碼來比較矩陣乘法運(yùn)算的運(yùn)行時(shí)長。17#矩陣乘法示例importnumpyasnp#導(dǎo)入numpy庫m,n,k=500,500,500#設(shè)置矩陣的維度A=np.random.rand(m,n)#生成m行n列的矩陣AB=np.random.rand(n,k)#生成n行k列的矩陣Bres=np.dot(A,B)#求矩陣A和矩陣B的乘積18由圖中顯示的運(yùn)行時(shí)長可以發(fā)現(xiàn),GPU比CPU的性能高出很多倍;另外,隨著代碼中矩陣維度的增加(相當(dāng)于是問題的復(fù)雜度增加了),時(shí)間性能差異會更大。動手實(shí)踐:使用百度賬號登錄AIStudio平臺2.3Python基礎(chǔ)Python是學(xué)習(xí)大數(shù)據(jù)分析和人工智能的入門級語言。隨著大數(shù)據(jù)分析的飛速發(fā)展和人工智能應(yīng)用的廣泛普及,Python成了全球增長最快的主流編程語言。未來是AI的時(shí)代,Python是最接近人工智能的語言。下面一起來學(xué)習(xí)Python!192.3.1Python的特點(diǎn)和發(fā)展2.3.2搭建Python編程環(huán)境2.3.3運(yùn)行簡單的Python程序2.3.4Python程序的語法結(jié)構(gòu)2.3.1Python的特點(diǎn)和發(fā)展Python(巨蟒、蟒蛇的意思,英國發(fā)音/?pa?θ?n/,美國發(fā)音/?pa?θɑ?n/),是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語言。20一、Python的特點(diǎn)Python是一種高級程序設(shè)計(jì)語言,語法極其簡單易懂,非常容易上手,是全球增長最快的主流編程語言。Python是一種效率極高的語言,相比于其他語言,使用Python編程時(shí),程序包含的代碼更少,編寫的程序更加易于閱讀、調(diào)試和擴(kuò)展。Python也是一種免費(fèi)開源的編程語言,任何人可以自由地發(fā)布這個(gè)軟件的拷貝、閱讀它的源代碼、對它做改進(jìn)等。二、Python的發(fā)展正是因?yàn)镻ython具有語法簡單易學(xué)、編程高效、免費(fèi)開源、可移植、面向?qū)ο蟮葍?yōu)點(diǎn),Python成為有史以來最盛行的編程言語之一,廣泛應(yīng)用于數(shù)據(jù)分析、數(shù)據(jù)挖掘、人工智能、機(jī)器學(xué)習(xí)等方面。根據(jù)KDnuggets網(wǎng)站調(diào)查顯示,在數(shù)據(jù)科學(xué)領(lǐng)域,Python自從2017年來,一直是了數(shù)據(jù)分析、數(shù)據(jù)科學(xué)與機(jī)器學(xué)習(xí)的第一大編程語言。2018年3月起,我國教育部將“Python程序設(shè)計(jì)”納入全國計(jì)算機(jī)等級考試二級科目。目前,山東省在六年級信息技術(shù)課中已經(jīng)加入Python的學(xué)習(xí);北京,山東,浙江已經(jīng)將Python納入高考考核范圍。212.3.2搭建Python編程環(huán)境搭建編程環(huán)境Python是一種跨平臺的編程語言,它可以運(yùn)行在Windows、Linux、OSX等操作系統(tǒng)中,但是在不同的操作系統(tǒng)平臺上,Python的安裝存在一些區(qū)別。在大多數(shù)的Linux和OSX操作系統(tǒng)平臺上都默認(rèn)安裝了Python。但是Windows操作系統(tǒng)并沒有默認(rèn)地安裝Python。訪問Python官網(wǎng)下載頁面(/downloads/)222.3.2搭建Python編程環(huán)境配置系統(tǒng)環(huán)境變量配置Python安裝路徑232.3.2搭建Python編程環(huán)境在Windows命令窗口中檢查Python安裝是否成功。命令執(zhí)行終端顯示了系統(tǒng)安裝的Python版本,最后的符號>>>是一個(gè)提示符,表示可以輸入Python命令。在交互式命令執(zhí)行終端輸入命令后回車,系統(tǒng)將執(zhí)行Pyhton命令并輸出結(jié)果。錯(cuò)誤的情況:24C:\Users>python'python'不是內(nèi)部或外部命令,也不是可運(yùn)行的程序或批處理文件。2.3.3運(yùn)行簡單的Python程序運(yùn)行簡單的Python程序
一般通過Python安裝程序自帶的集成開發(fā)環(huán)境IDLE(IntegratedDeveLopmentEnvironment)來進(jìn)行交互式命令運(yùn)行程序,(搜索打開idle.bat文件,“C:\Python\Python310\Lib\idlelib”)方法一:通過IDLE直接執(zhí)行語句。252.3.3運(yùn)行簡單的Python程序運(yùn)行簡單的Python程序方法二:通過IDLE建立py源程序文件。單擊IDLE窗口中的File菜單中的NewFile選項(xiàng),新建一個(gè)空白文檔,保存為py源程序文件。運(yùn)行方法:(1)單擊Run菜單下的“RunModule”命令,或者按“F5”鍵即可(2)在Windows命令終端窗口“cmd.exe”中運(yùn)行“hello_world.py”文件,命令為“pythonc:\python\hello_world.py”。通過在>>>提示符后輸入exit()函數(shù)或者quit()函數(shù)來退出Python環(huán)境。26小測驗(yàn)1、關(guān)于Python的特點(diǎn),以下選項(xiàng)中描述錯(cuò)誤的是(
)A、Python是非開源語言B、Python是跨平臺語言C、Python是多模型語言D、Python是腳本語言2、IDLE環(huán)境的退出命令是(
)A、esc()B、close()C、回車鍵D、exit()3、Python文件的后綴名是(
)A、pdfB、doC、passD、py27ADD2.3.4Python程序的語法結(jié)構(gòu)
Python的程序語法的格式框架主要包括兩個(gè)部分:代碼縮進(jìn)注釋Python程序運(yùn)行時(shí),根據(jù)縮進(jìn)來解讀代碼,不考慮空行,所以空行一般用來增加程序的可讀性,對于程序的運(yùn)行沒有影響??s進(jìn)一般是4個(gè)空格。注釋的形式有兩種,一種是用井號#來注釋一行,#后面的內(nèi)容不管寫什么都不會執(zhí)行。例如:另一種是用兩個(gè)三引號‘’’用來注釋多行,兩個(gè)三引號‘’’之間的部分為注釋內(nèi)容,將不會被執(zhí)行。例如:注釋內(nèi)容要盡量以簡潔清晰的語言把代碼的功能講清楚,方便今后的代碼閱讀和修改等。28#這是一行python注釋print(“Hellopythonworld!”)‘’’這是多行注釋,用三個(gè)單引號這是多行注釋,用三個(gè)單引號’’’print(“Hellopythonworld!”)2.3.4Python程序的語法結(jié)構(gòu)
Python之禪給出了Python語法結(jié)構(gòu)的說明。通過在交互式運(yùn)行終端輸入importthis命令可以獲得。29>>>importthisBeautifulisbetterthanugly.Explicitisbetterthanimplicit.Simpleisbetterthancomplex.Complexisbetterthancomplicated.Flatisbetterthannested.Sparseisbetterthandense.Readabilitycounts.Specialcasesaren'tspecialenoughtobreaktherules.Althoughpracticalitybeatspurity.Errorsshouldneverpasssilently.Unlessexplicitlysilenced.Inthefaceofambiguity,refusethetemptationtoguess.Thereshouldbeone--andpreferablyonlyone--obviouswaytodoit.Althoughthatwaymaynotbeobviousatfirstunlessyou'reDutch.Nowisbetterthannever.Althoughneverisoftenbetterthan*right*now.Iftheimplementationishardtoexplain,it'sabadidea.Iftheimplementationiseasytoexplain,itmaybeagoodidea.Namespacesareonehonkinggreatidea--let'sdomoreofthose!Python之禪給出了Python語言的設(shè)計(jì)理念和哲學(xué),也就是用Python語言編程的一些原則。例如,Python以編寫優(yōu)美的代碼為目標(biāo),而優(yōu)美的代碼應(yīng)當(dāng)是簡潔明了的、命名規(guī)范、風(fēng)格相似的等等。小測驗(yàn)1、關(guān)于Python語言的注釋,以下選項(xiàng)中描述錯(cuò)誤的是(
)A、Python語言的單行注釋以#開頭B、Python語言的單行注釋以單引號'開頭C、Python語言的多行注釋以'''(三個(gè)單引號)開頭和結(jié)尾D、Python語言有兩種注釋方式:單行注釋和多行注釋2、以下對Python程序縮進(jìn)格式描述錯(cuò)誤的選項(xiàng)是:(
)A、不需要縮進(jìn)的代碼頂行寫,前面不能留空白B、縮進(jìn)可以用tab鍵實(shí)現(xiàn),也可以用多個(gè)空格實(shí)現(xiàn)C、嚴(yán)格的縮進(jìn)可以約束程序結(jié)構(gòu),可以多層縮進(jìn)D、縮進(jìn)是用來格式美化Python程序的30BD2.4變量及數(shù)據(jù)的使用312.4.1變量的使用32變量:程序中值可以發(fā)生改變的元素。字母、數(shù)字、下劃線,不能數(shù)字開頭區(qū)分大小寫不能使用Python的保留字Python中數(shù)據(jù)有類型,變量沒有類型Python變量無需定義,直接賦值后使用兩個(gè)要素變量名變量值變量可以看成一個(gè)小箱子,專門用來“盛裝”程序中的數(shù)據(jù)。每個(gè)變量都擁有獨(dú)一無二的名字,通過變量的名字就能找到變量中的數(shù)據(jù)。2.4.1變量的使用Python程序中一般通過定義變量來操作多種數(shù)據(jù),例如:變量的命名需要遵循如下的規(guī)則:(1)變量只能包含字母、數(shù)字和下劃線,變量名的第一個(gè)字符可以是字母或下劃線,但不能是數(shù)字。例如__name、name_1、_name_1等都是正確的變量名,但是1name、1_name等都是錯(cuò)誤的變量名。(2)變量名區(qū)分大小寫并且不能包含空格,可以使用下劃線或首字母大寫來分隔較長的變量名中的單詞,如firstname不是變量名,但是first_name、firstName、FirstName是3個(gè)不同的變量名。(3)Python的關(guān)鍵詞和函數(shù)名不能用作變量名,如print、if、true、false等。33message=‘Helloworld!’print(message)message=‘Welcometoourpythonworld!’print(message)andelifinputprintaselseimportraiseassertexceptinreturnbreakfinallyistryclassforlambdawhilecontinuefromnotwithdefglobaloryielddelifpass2.4.1變量的使用Python保留字342.4.1變量的使用常見錯(cuò)誤情況小結(jié):在python中,變量是可以發(fā)生變化的量,只包含變量名稱和變量的值兩部分,因此變量是沒有類型之分的。但是Python中數(shù)據(jù)有類型之分,包括字符串類型、數(shù)字類型和邏輯類型、列表類型、字典類型等數(shù)據(jù)。我們將存儲字符串的變量簡稱為字符串變量,將存儲數(shù)字的變量稱為數(shù)字變量,依次類推。35>>>message="Welcometoourpythonworld!">>>print(mesage)Traceback(mostrecentcalllast):File"<pyshell#2>",line1,in<module>print(mesage)NameError:name'mesage'isnotdefined2.4變量及數(shù)據(jù)的使用Python支持的數(shù)據(jù)類型36Python內(nèi)置數(shù)據(jù)類型數(shù)值類型整數(shù)類型(int)浮點(diǎn)型(float)復(fù)數(shù)(complex
)布爾型(bool)字符串類型(string)序列列表(list)元組(tuple)映射字典(dictionary)——自定義類型類(class)——數(shù)據(jù)類型2.4變量及數(shù)據(jù)的使用372.4.2字符串及字符串變量的使用用兩個(gè)單引號或者兩個(gè)雙引號表示的一串字符,就是字符串。Python為字符串以及字符串變量提供了一系列的方法,可以直接調(diào)用并改變字符串的顯示形式。38“Lifeisshort,usePython.”‘人生苦短,我用Python。’>>>print("Lifeisshort,use'Python'!".title())LifeIsShort,Use'Python'!>>>print("Lifeisshort,use'Python'!".upper())LIFEISSHORT,USE'PYTHON'!>>>print("Lifeisshort,use'Python'!".lower())lifeisshort,use'python'!英文文本分析:常常要統(tǒng)計(jì)單詞出現(xiàn)的頻率即詞頻;因?yàn)樽址痶he’和’The’是不相同的字符串,所以首先要通過title()方法或者upper()方法或者lower()方法把文本中所有單詞的不同形式調(diào)整為統(tǒng)一形式后,才能準(zhǔn)確計(jì)算該單詞出現(xiàn)的次數(shù)。2.4.2字符串及字符串變量的使用字符串長度用len()函數(shù)得到字符串的長度由上面的例子可以看出,不管是英文字符,還是中文字符,在Python程序語言中長度都是1。字符串拼接Python使用加號+來拼接字符串,可以方便地將字符串和字符串變量拼接起來使用。Python_motto.py程序文件:運(yùn)行結(jié)果為:BruceEckelsaid:"Lifeisshort,youneedPython."39name='bruce
eckel'motto='Lifeisshort,youneedPython.'message=name.title()+'said:"'+motto+'"'print(message)>>>len("Hello!")6>>>len("你好!")32.4.2字符串及字符串變量的使用控制字符的顯示字符’\t’和’\n’都是ASCII碼表中的控制字符,不能直接顯示,可通過
\
的形式來進(jìn)行控制顯示。字符’\t’和’\n’稱為轉(zhuǎn)義字符,可以通過轉(zhuǎn)義字符來控制字符串的顯示格式:如果要換行,可以使用轉(zhuǎn)義字符’\n’來實(shí)現(xiàn)。如果要添加制表符,那么可以使用轉(zhuǎn)義字符’\t’來實(shí)現(xiàn)。如果要輸出\
符號,那么可以使用’\\’來實(shí)現(xiàn)。如果要輸出單引號,那么可以使用轉(zhuǎn)義字符’\’’來實(shí)現(xiàn)。如果要輸出雙引號,那么可以使用轉(zhuǎn)義字符’\”’來實(shí)現(xiàn)。如下面“轉(zhuǎn)義字符.py”文件所示:40Header='排名\t姓名\t成績'stu1='1\t小明\t100'stu2='2\t小王\t91'print(Header+'\n'+stu1+'\n'+stu2)運(yùn)行結(jié)果為:排名
姓名
成績1 小明 1002 小王 912.4.2字符串及字符串變量的使用字符串索引——訪問字符串的某個(gè)部分字符在字符串中的編號叫做“索引”,Python中字符串索引從0開始,一個(gè)長度為L的字符串最后一個(gè)字符的位置是L-1Python允許使用負(fù)數(shù)從字符串右邊末尾向左邊進(jìn)行反向索引,最右側(cè)索引值是-1,向左依次減1單個(gè)索引:
訪問字符串中的特定位置格式:字符串名[索引值]hello,Sam!012345678910-11-10-9-8-7-6-5-4-3-2-141>>>message="Hello,Sam!">>>message[0]'H'>>>message[-1]'!'2.4.2字符串及字符串變量的使用字符串切片:通過兩個(gè)索引值確定一個(gè)位置范圍,返回這個(gè)范圍的子串格式:字符串名[start:end]start和end都是整數(shù)型數(shù)值,這個(gè)子序列從索引start開始直到索引end之前結(jié)束42>>>message[7:10]'Sam'>>>message[0:1]'H‘>>>message[-3:-1]'am'>>>message[7:-1]'Sam'小測驗(yàn)1、下面代碼的輸出結(jié)果是(
)name="Python程序設(shè)計(jì)"print(name[2:-2])A、thon語言程序B、thon語言程序設(shè)C、ython語言程序D、ython語言程序設(shè)2、給出如下代碼:TempStr="HelloWorld"以下選項(xiàng)中可以輸出"World"子串的是()A、print(TempStr[-5:-1])B、print(TempStr[-5:0])C、print(TempStr[-4:-1])D、print(TempStr[-5:])43AD2.4變量及數(shù)據(jù)的使用442.4.3數(shù)字及數(shù)字變量的使用452.4.3數(shù)字及數(shù)字變量的使用數(shù)字的算術(shù)運(yùn)算及其意義。46操
作操作含義x+yx與y之和x–yx與y之差x*yx與y之積x/yx與y之商(結(jié)果為浮點(diǎn)數(shù))x//y
x與y之商的整數(shù)部分(向下取整)x%y取模運(yùn)算(x與y之商的余數(shù))x**y或pow(x,y)x的y次冪abs(x)x的絕對值2.4.3數(shù)字及數(shù)字變量的使用整數(shù)和浮點(diǎn)數(shù)的加法、減法、乘法、除法運(yùn)算:47>>>
9/33.0>>>-10/3-3.3333333333333335>>>100/333.333333333333336>>>1000/3333.3333333333333>>>0.1+0.10.2>>>0.1+0.20.30000000000000004>>>0.11*30.33>>>0.2*30.6000000000000001>>>0.3*30.8999999999999999整數(shù)除法得到的結(jié)果為浮點(diǎn)數(shù),且小數(shù)部分結(jié)果會受到計(jì)算機(jī)內(nèi)部數(shù)字的表示方式影響,但不影響使用??梢姡琍ython在進(jìn)行浮點(diǎn)數(shù)計(jì)算的時(shí)候,結(jié)果的小數(shù)位數(shù)是不固定的,有時(shí)多有時(shí)少。這種情況是由計(jì)算機(jī)內(nèi)部數(shù)字的表示方式?jīng)Q定的,一般是不影響使用的。2.4.3數(shù)字及數(shù)字變量的使用數(shù)字和字符串拼接使用函數(shù)str()先將數(shù)字類型變成字符類型,然后進(jìn)行字符串的拼接即可。如下面例子所示。48>>>year=2018>>>message='Goodbye,'+str(year-1)>>>print(message,‘!’)Goodbye,2017!請你動手試一試,如果不使用str()函數(shù),系統(tǒng)會報(bào)告什么樣的錯(cuò)誤信息。小測驗(yàn)1、下面代碼的輸出結(jié)果是()x=0b1010print(x)A、16 B、256
C、1024
D、102、下面代碼的輸出結(jié)果是(
)x=0x0101print(x)A、101 B、257
C、65
D、53、下面代碼的輸出結(jié)果是(
)x=12.34print(type(x))A、<class'int'> B、<class'float'>C、<class'bool'> D、<class'complex'>49DBB小測驗(yàn)1、下面代碼的執(zhí)行結(jié)果是(
)>>>x=2>>>x*=3+5**2A、15
B、56
C、8192
D、132、下面代碼的輸出結(jié)果是(
)x=10y=3print(x%y,x**y)A、31000 B、130 C、330 D、110003、關(guān)于Python數(shù)值操作符,以下選項(xiàng)中描述錯(cuò)誤的是(
)A、x//y表示x與y之整數(shù)商,即不大于x與y之商的最大整數(shù)B、x**y表示x的y次冪,其中,y必須是整數(shù)C、x%y表示x與y之商的余數(shù),也稱為模運(yùn)算D、x/y表示x與y之商50BBD2.4變量及數(shù)據(jù)的使用512.4.4邏輯值和邏輯變量的使用邏輯值包括真和假兩個(gè),在Python中表示為True和False。其中,0表示假,非0表示真;空字符(串)表示假,非空字符(串)表示真。邏輯值為布爾型(bool),是以英國數(shù)學(xué)家,布爾代數(shù)的奠基人喬治?布爾(GeorgeBoole)名命的。喬治?布爾19世紀(jì)最重要的數(shù)學(xué)家之一,1847年出版《邏輯的數(shù)學(xué)分析》。52喬治?布爾發(fā)明了邏輯值以及邏輯值之間的運(yùn)算體系。2.4.4邏輯值和邏輯變量的使用邏輯值一般通過關(guān)系運(yùn)算和邏輯運(yùn)算來獲得。關(guān)系運(yùn)算符小于
<大于
>小于等于
<=大于等于
>=等于
==不等于
!=運(yùn)算規(guī)則:53>>>'the'=='The'False>>>'the'!='The'True>>>'123'>'abc'False>>>'我'>'你'True>>>7>9False>>>2.1<=5.4True2.4.4邏輯值和邏輯變量的使用邏輯運(yùn)算符運(yùn)算規(guī)則:54>>>TrueandTrueTrue>>>TrueandFalseFalse>>>TrueorTrueTrue>>>TrueorFalseTrue>>>notTrueFalse>>>notFalseTrueand與運(yùn)算or或運(yùn)算not非運(yùn)算AandB表示并且,即:當(dāng)A為真,并且B也為真的時(shí)候,邏輯值為真(True);當(dāng)A或B為假時(shí),邏輯值為假(False)。AorB表示或者,即:當(dāng)A為真,或者B為真的時(shí)候,邏輯值為真(True);當(dāng)A和B均為假時(shí),邏輯值為假(False)。notA表示否定,非;即:表達(dá)對A取反的邏輯,當(dāng)A為假時(shí),邏輯值為真(True),A為真時(shí)邏輯值為假(False)2.4.4邏輯值和邏輯變量的使用邏輯表達(dá)式一般作為if語句的判斷條件552.4.4邏輯值和邏輯變量的使用例子:已知三角形三條邊分別為a,b,c,則判斷三角形是否存在的邏輯表達(dá)式是什么?判斷三角形是直角三角形的邏輯表達(dá)式是什么?參考求解如下:56>>>a=20>>>b=25>>>c=9>>>a+b>candb+c>aanda+c>bTrue>>>a**2+b**2==c**2ora**2+c**2==b**2orb**2+c**2==a**2False小測驗(yàn)1、下面代碼的輸出結(jié)果是()print(0.1+0.2==0.3)A、False B、-1 C、0 D、while2、下列表達(dá)式的運(yùn)算結(jié)果是:(
)>>>a=100>>>b=False>>>a*b>-1A、False B、1 C、0 D、True3、以下選項(xiàng)中值為False的是()A、'abc'<'abcd'B、''<'a'C、'Hello'>'hello'D、'abcd'<'ad'57ACD2.4變量及數(shù)據(jù)的使用582.4.5列表及其操作列表的定義列表是一組按照一定順序排列的,由相同類型的數(shù)據(jù)元素組成的集合。簡單地說,列表是一組信息的集合,它可以將成組的數(shù)據(jù)按照順序集合起來存放,是Python數(shù)據(jù)分析中最強(qiáng)大的功能之一。在Python中,用方括號([])來表示列表,以下均為列表數(shù)據(jù):59>>>['A','B','C','D','E','F','G']['A','B','C','D','E','F','G']>>>[1,2,3,4,5,6,7,8,9,0][1,2,3,4,5,6,7,8,9,0]>>>['A','B','C',7,8,9]['A','B','C',7,8,9]>>>[[1,2,3],'hello',88,True,False][[1,2,3],'hello',88,True,False]2.4.5列表及其操作字符串列表全部列表元素均為字符串的我們簡稱字符串列表。對于英文字符串,有一個(gè)簡單的將字符串轉(zhuǎn)換為列表的方法,就是split()方法:數(shù)字列表全部列表元素均為數(shù)字的我們簡稱為數(shù)字列表。下面是某人一年12個(gè)月的體重?cái)?shù)據(jù)(單位kg):我們要對某產(chǎn)品一周的銷售額進(jìn)行一下分析,就可以建立如下的數(shù)字列表:60>>>"Thisisabike.".split()['This','is','a','bike.']weight=[62,65,65,64,64,63,62,63,63,63,63,62]sales=[1000,2100,1500,3400,5600,4000,5000]2.4.5列表及其操作612.4.5列表及其操作1、訪問列表元素(1)通過列表元素的下標(biāo)/索引來訪問列表元素列表元素在列表中的編號叫做“索引”,也稱為下標(biāo);為了方便對列表元素進(jìn)行訪問及操作,一般會將列表數(shù)據(jù)放在一個(gè)變量里面,通過變量以及索引
list[i]
來訪問列表元素的值。列表元素索引從0開始,從左往右依次增加1。從右往左,最右側(cè)索引值是-1,向左依次減1。62>>>Guests=["David","Tom","Alex","Jim","Bob"]>>>Guests[0]'David'>>>Guests[4]'Bob‘>>>Guests[-1]'Bob'"David""Tom""Alex""Jim","Bob"01234-5-4-3-2-12.4.5列表及其操作這種列表變量加上下標(biāo)的方法,還可以用來修改、引用列表的數(shù)據(jù)。如下面例子所示:63>>>Guests[0]='Peter'>>>Guests['Peter','Tom','Alex','Jim','Bob']>>>message=Guests[0].upper()+',WelcometoourPythonclass!'>>>print(message)PETER,WelcometoourPythonclass!"David""Tom""Alex""Jim","Bob"01234-5-4-3-2-1"Peter""Tom""Alex""Jim","Bob"01234-5-4-3-2-12.4.5列表及其操作(2)通過列表切片來訪問某一段列表元素Python可以使用切片的方式來引用某一段列表的元素,語法格式:list[start:end]。通過列表切片得到一個(gè)從索引start開始直到索引end之前結(jié)束的子列表,因此子列表不包括list[end]。另外,start和end都是整數(shù)型數(shù)值。64>>>lists=[33,55,77,11,44]>>>lists[2:3][77]>>>lists[:3][33,55,77]>>>lists[3:][11,44]>>>lists[:][33,55,77,11,44]冒號表示區(qū)間,冒號前后的區(qū)間值都可以省略,省略前面的區(qū)間值表示從頭開始,省略后面的區(qū)間值表示一直到列表的最后結(jié)束,前后區(qū)間值都省略,表示切片產(chǎn)生的是整個(gè)列表。335577114401234-5-4-3-2-12.4.5列表及其操作2、列表的操作方法(1)用append()方法和remove()方法添加和刪除列表元素65>>>Guests.append("Alice")>>>Guests['Peter','Tom','Alex','Jim','Bob','Alice']>>>Guests.insert(0,"David")>>>Guests['David','Peter','Tom','Alex','Jim','Bob','Alice']>>>Guests.remove("Jim")>>>Guests['David','Peter','Tom','Alex','Bob','Alice']操作方法描述ls.append(x)在列表ls尾部添加元素xls.insert(pos,x)在列表ls下標(biāo)為pos的位置插入元素xls.remove(x)刪除列表ls中的元素x2.4.5列表及其操作2、列表的操作方法(2)調(diào)用sort()方法對列表元素進(jìn)行排序,reverse()方法對列表進(jìn)行反轉(zhuǎn)。66>>>Guests.sort()>>>Guests['Alex','Alice','Bob','David','Peter','Tom']>>>Guests.reverse()>>>Guests['Tom','Peter','David','Bob','Alice','Alex']操作方法描述ls.sort()對列表ls所有元素進(jìn)行升序排序ls.sort(reverse=True)對列表ls所有元素進(jìn)行降序排序ls.reverse()對列表ls所有元素進(jìn)行反轉(zhuǎn)2.4.5列表及其操作3、操作列表的函數(shù)(1)len()函數(shù)和sorted()函數(shù)Python給出了操作列表的函數(shù),比如len()函數(shù)可以給出列表的長度,即列表元素的個(gè)數(shù)。如下面例子所示:sorted()函數(shù)可以返回一個(gè)有序狀態(tài)的列表,但是不會改變原來的列表數(shù)據(jù)。注意,前面給出的sort()方法會改變原來的列表數(shù)據(jù)。67>>>len(Guests)6>>>Guests=['David','Peter','Tom','Alex','Bob','Alice']>>>sorted(Guests)['Alex','Alice','Bob','David','Peter','Tom']>>>Guests['David','Peter','Tom','Alex','Bob','Alice']2.4.5列表及其操作(2)數(shù)字列表的計(jì)算函數(shù)——min()、max()、sum()函數(shù)Python提供了一些函數(shù)來進(jìn)行簡單的數(shù)字列表的計(jì)算,比如min()函數(shù)用來求最小值,max()函數(shù)用來求最大值,sum()函數(shù)用來求和。如下面例子所示。68>>>lists=[33,55,77,11,44]>>>max(lists)77>>>min(lists)11>>>sum(lists)2202.4.5列表及其操作4、列表的遍歷(1)用for循環(huán)遍歷列表for語句語法結(jié)構(gòu)(方法一):for語句要注意:(1)for語句后面一定要有冒號,否則會產(chǎn)生語法錯(cuò)誤。(2)其子語句必須要有4個(gè)空格的空白縮進(jìn),表示該語句為for語句的子語句。69for元素變量in列表變量:
子語句塊for語句示例:Guests=['David','Peter','Tom','Alex','Jim','Bob','Alice']forguestinGuests:print(guest,guest.upper())運(yùn)行結(jié)果為:DavidDAVIDPeterPETERTomTOMAlexALEXJimJIMBobBOBAliceALICE2.4.5列表及其操作(2)用for()循環(huán)遍歷列表下標(biāo):for語句語法結(jié)構(gòu)(方法二):下標(biāo)列表一般是使用range()函數(shù)自動生成的。range()函數(shù)一般用來自動生成一系列整數(shù)。例如,函數(shù)range(a,b)生成的下標(biāo)值只包含從a到b-1的整數(shù),不包含b。70for下標(biāo)變量in下標(biāo)列表:
子語句塊foriinrange(1,5):print(i)輸出結(jié)果為:12342.4.5列表及其操作一起來看看range()產(chǎn)生的一系列連續(xù)的數(shù)值用來做列表的下標(biāo),與變量一起來訪問列表數(shù)據(jù)。如下面例子所示:range()函數(shù)通常還可以和for循環(huán)一起用來產(chǎn)生一組有規(guī)律的數(shù)據(jù)。例如下面的例子產(chǎn)生一組由1到10的平方數(shù)。71sales=[1000,2100,1500,3400,5600,4000,5000]foriinrange(1,7):print(sales[i-1])輸出結(jié)果為:100021001500340056004000nums=[]foriinrange(1,11):
num=i**2
nums.append(num)print(nums)運(yùn)行結(jié)果為:[1,4,9,16,25,36,49,64,81,100]小測驗(yàn)1、下面代碼的輸出結(jié)果是(
)ls=list(range(1,4))print(ls)A、{0,1,2,3} B、[1,2,3] C、{1,2,3} D、[0,1,2,3]2、下面代碼的輸出結(jié)果是(
)vlist=list(range(5))print(vlist)A、1234 B、0,1,2,3,4, C、0;1;2;3;4; D、[0,1,2,3,4]3、下面代碼的輸出結(jié)果是(
)s=["seashell","gold","pink","brown","purple","tomato"]print(s[4:])A、['purple']B、['seashell','gold','pink','brown']C、['gold','pink','brown','purple','tomato']D、['purple','tomato']72BDD小測驗(yàn)4、ls=[3.5,"Python",[10,"LIST"],3.6],ls[2][-1][1]的運(yùn)行結(jié)果是()A、I B、P C、Y D、L5、下面代碼的輸出結(jié)果是(
)
s=["seashell","gold","pink","brown","purple","tomato"]print(s[1:4:2])A、['gold','pink','brown']B、['gold','pink']C、['gold','pink','brown','purple','tomato']D、['gold','brown']73AD2.4變量及數(shù)據(jù)的使用742.4.6字典字典的定義字典(dict)是由一系列鍵值對組合而成的數(shù)據(jù)結(jié)構(gòu)。用方括號({})來表示字典。例如,下面是一個(gè)簡單的字典,它存儲了一個(gè)用戶的姓名、年齡和所在城市信息:75>>>user={'name':'WangLin','Age':18,'Location':'Wuhan'}“鍵值對”是組織數(shù)據(jù)的一種重要方式,廣泛應(yīng)用在Web系統(tǒng)中。例如:用戶畫像。京東、淘寶等網(wǎng)站一般會在后臺收集用戶數(shù)據(jù),根據(jù)用戶社會屬性、生活習(xí)慣和消費(fèi)行為等信息而抽象出的一個(gè)標(biāo)簽化的用戶模型,簡稱用戶畫像。2.4.6字典鍵值對的基本思想是將“值”信息關(guān)聯(lián)一個(gè)“鍵”信息,進(jìn)而通過鍵信息查找對應(yīng)值信息,這個(gè)過程叫映射。Python通過字典類型實(shí)現(xiàn)映射。鍵值對通過冒號:相互關(guān)聯(lián)起來,可以通過鍵的信息來訪問值的信息。語法格式:dict[key]如下面例子所示:76>>>user={'name':'WangLin','Age':18,'Location':'Wuhan'}>>>user['name']'WangLin'>>>user['Age']18>>>user['Location']'Wuhan'2.4.6字典772.4.6字典1、字典的構(gòu)建。直接使用{}
定義字典。2、添加字典元素。通過dict[new_key]=new_value為字典添加鍵值對。下面代碼是給user字典變量添加preference和occupation屬性,并設(shè)置屬性值分別為sports和student。78>>>user['preference']='sports'>>>user['occupation']='student'>>>user{'name':'WangLin','Age':18,'Location':'Wuhan','preference':'sports','occupation':'student'}user0={}user={'name':'WangLin','Age':18,'Location':'Wuhan'}2.4.6字典3、修改字典元素。字典的鍵不能修改,只能修改鍵對應(yīng)的值信息。通過dict[key]=new_value來修改鍵key對應(yīng)的值為new_value。4、刪除字典元素。對于不再需要的鍵值對,可以通過deldict[key]來刪除,下面代碼為刪除user字典變量的occupation屬性:79>>>user['Age']=user['Age']+1>>>user{'name':'WangLin','Age':19,'Location':'Wuhan','preference':'sports','occupation':'student'}>>>deluser['occupation']>>>user{'name':'WangLin','Age':19,'Location':'Wuhan','preference':'sports'}2.4.6字典5、遍歷字典元素for循環(huán)語句。字典的常用操作方法。80操作方法描述d.keys()返回字典d的所有鍵信息d.values()返回字典d的所有值信息d.items()返回字典d的所有鍵值對d.get(key,default)如果字典d存在鍵key,則返回鍵key對應(yīng)的值d[key],否則返回默認(rèn)值defaultd.clear()刪除字典d的所有鍵值對2.4.6字典常見的遍歷字典的三種方法:(1)依次訪問字典中的所有鍵值對信息。例如:(2)依次訪問字典的所有鍵信息。例如:(3)依次訪問字典的所有值信息。例如:81user={'name':'WangLin','Age':18,'Location':'Wuhan'}forkey,valueinuser.items():print(key,':',value)運(yùn)行結(jié)果為:name:WangLinAge:18Location:Wuhanforkeyinuser.keys():
print(key)forvalueinuser.values():
print(value)運(yùn)行結(jié)果為:nameAgeLocation運(yùn)行結(jié)果為:WangLin18Wuhan2.4.6字典重要方法:d.get(key,default):如果字典d存在鍵key,則返回鍵key對應(yīng)的值d[key],否則返回默認(rèn)值default。例:下面代碼所示為通過字典來統(tǒng)計(jì)英文字符串的詞頻情況。82>>>S="aanatheanAnAA">>>words=S.lower().split()>>>words['a','an','a','the','an','an','a','a']>>>counts={}>>>forwordinwords:counts[word]=counts.get(word,0)+1
>>>counts{'a':4,'an':3,'the':1}其中counts.get(word,0)表示如果字典counts中存在鍵word,則返回對應(yīng)的值counts[word],否則返回默認(rèn)值0。當(dāng)不存在鍵word時(shí),子語句為:counts[word]=0+12.4.6字典d.get(key,default):如果鍵存在,則返回相應(yīng)值,否則返回默認(rèn)值。83
>>>counts#已知counts={'a':4,'an':3,'the':1}{'a':4,'an':3,'the':1}>>>counts.get('an',0)3>>>counts.get('one',0)0>>>counts{'a':4,'an':3,'the':1}>>>counts[‘one’]=counts.get(‘one’,0)+1#給’one’的值增加1>>>counts{'a':4,'an':3,'the':1,'one':1}小測驗(yàn)1、以下關(guān)于字典的描述,錯(cuò)誤的是:(
)A、字典中元素以鍵信息為索引訪問B、字典長度是可變的C、字典是鍵值對的集合D、字典中的鍵可以對應(yīng)多個(gè)值信息2、以下程序的輸出結(jié)果是()Da={"北美洲":"北極兔","南美洲":"托哥巨嘴鳥","亞洲":"大熊貓","非洲":"單峰駝","南極洲":"帝企鵝"}Da["非洲"]="大猩猩"print(Da)A、('北美洲':'北極兔','南美洲':'托哥巨嘴鳥','亞洲':'大熊貓','非洲':'大猩猩','南極洲':'帝企鵝')B、['北美洲':'北極兔','南美洲':'托哥巨嘴鳥','亞洲':'大熊貓','非洲':'大猩猩','南極洲':'帝企鵝']C、{"北美洲":"北極兔","南美洲":"托哥巨嘴鳥","亞洲":"大熊貓","非洲":"單峰駝","南極洲":"帝企鵝"}D、{'北美洲':'北極兔','南美洲':'托哥巨嘴鳥','亞洲':'大熊貓','非洲':'大猩猩','南極洲':'帝企鵝'}84DD小測驗(yàn)3、以下程序的輸出結(jié)果是:(
)d={"zhang":"China","Jone":"America","Natan":"Japan"}forkind:print(k,end="")A、ChinaAmericaJapanB、zhang:ChinaJone:AmericaNatan:JapanC、"zhang""Jone""Natan"D、zhangJoneNatan4、給出如下代碼:DictColor={"seashell":"海貝色","gold":"金色","pink":"粉紅色","brown":"棕色","purple":"紫色","tomato":"西紅柿色"}以下選項(xiàng)中能輸出"海貝色"的是(
)A、print(DictColor.keys())B、print(DictColor["海貝色"])C、print(DictColor.values())D、print(DictColor["seashell"])85DD2.5python程序的輸入輸出862.5Python程序的輸入輸出872.5.1Python程序的輸入1、使用input()函數(shù)輸入數(shù)據(jù)<變量>=input(<提示性文字>)88>>>name=input("What'syourname?")What'syourname?>>>name'Lily'>>>input()3'3'>>>a=input("請輸入一個(gè)整數(shù):")請輸入一個(gè)整數(shù):10>>>a'10'>>>type(a)<class'str'>Lilyinput()函數(shù)從控制臺獲得用戶的一行輸入,input()函數(shù)里面的字符串只是起提示作用,提示用戶此時(shí)需要輸入什么樣的數(shù)據(jù)信息。input()函數(shù)從控制臺獲得用戶的一行輸入,無論用戶輸入什么內(nèi)容,input()函數(shù)都以字符串類型返回結(jié)果。2.5.1Python程序的輸入如何將input()函數(shù)輸入的字符串?dāng)?shù)據(jù)轉(zhuǎn)換為數(shù)字類型?方法一:用int()進(jìn)行強(qiáng)制類型轉(zhuǎn)換,如方法二:用eval()函數(shù)去掉字符串最外層的引號,并按照Python語句方式執(zhí)行去掉引號后的字符內(nèi)容。<變量>=eval(<字符串>)>>>a=input("請輸入一個(gè)整數(shù):")請輸入一個(gè)整數(shù):10>>>a=int(a)>>>a10>>>eval("print('Helloworld!')")Helloworld!>>>eval("1+1")2>>>eval(input())1+23小測驗(yàn)1、Python中,以下表達(dá)式輸出結(jié)果為11的選項(xiàng)是:(
)A、print("1+1")B、print(1+1)C、print(eval("1+1"))D、print(eval("1"+"1"))2、運(yùn)行以下程序,x=eval(input())y=eval(input())print(x+y)從鍵盤輸入1+2與
4,則輸出結(jié)果是:()A、1+24B、25C、7D、12490DC2.5.1Python程序的輸入2、從文件讀入相關(guān)的數(shù)據(jù)從文件中讀取數(shù)據(jù)包括以下幾個(gè)步驟:(1)根據(jù)文件名和路徑,用open()函數(shù)打開文件。(2)用read()方法將文件內(nèi)容全部讀入到一個(gè)變量中。(3)文件數(shù)據(jù)都存放在變量中,通過變量來處理文件數(shù)據(jù)。(4)關(guān)閉文件例:已知一個(gè)文本文件“movie.txt”內(nèi)容如下所示,訪問該文件的py程序文件“read_file.py”如下所示:91file_object=open(‘movie.txt’,'r',encoding='utf-8')contents=file_object.read()print(contents)file_object.close()2.5.1Python程序的輸入讀文件時(shí)要注意如下幾點(diǎn):(1)因?yàn)椤皉ead_file.py”和“movie.txt”都在一個(gè)文件夾下面,所以讀取文件時(shí),并沒有指定路徑,當(dāng)這兩個(gè)文件不在同一個(gè)文件夾下面時(shí),需要為“movie.txt”文件指定路徑。(2)read()方法一次性將文本文件所有的內(nèi)容全部讀入到contents變量中,這也是我們讀取文件常用的方法,如果要一行一行的讀取,可以使用file_object文件對象的readline()方法。如果要每一行都讀取出來,可以用如下for循環(huán):92file_object=open('C:/python/movie.txt')file_object=open('C:/python/movie.txt')contents=file_object.readline()print(contents)file_object=open('C:/python/movie.txt')forlineinfile_object:print(line)2.5.2Python程序的輸出1、使用print()函數(shù)輸出數(shù)據(jù)使用print()函數(shù)進(jìn)行數(shù)據(jù)輸出時(shí),經(jīng)常會用到字符串的for
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年重慶醫(yī)科大學(xué)馬克思主義基本原理概論期末考試模擬題帶答案解析
- 2025年青海師范大學(xué)馬克思主義基本原理概論期末考試模擬題帶答案解析(奪冠)
- 2025年駐馬店農(nóng)業(yè)工程職業(yè)學(xué)院馬克思主義基本原理概論期末考試模擬題帶答案解析
- 2026年合肥幼兒師范高等專科學(xué)校單招職業(yè)適應(yīng)性考試題庫附答案解析
- 2026年時(shí)事政治測試題庫附答案(奪分金卷)
- 餐飲公司培訓(xùn)部著裝制度
- 美容店衛(wèi)生培訓(xùn)制度
- 民航培訓(xùn)教員管理制度
- 肺結(jié)核病培訓(xùn)制度
- 民辦非企培訓(xùn)制度
- 大索道竣工結(jié)算決算復(fù)審報(bào)告審核報(bào)告模板
- 化學(xué)●廣西卷丨2024年廣西普通高中學(xué)業(yè)水平選擇性考試高考化學(xué)真題試卷及答案
- 人衛(wèi)基礎(chǔ)護(hù)理學(xué)第七版試題及答案
- 煙草物流寄遞管理制度
- 被打和解協(xié)議書范本
- 《糖尿病合并高血壓患者管理指南(2025版)》解讀
- 養(yǎng)老院敬老院流動資產(chǎn)管理制度
- 工程施工計(jì)劃與資源配置
- 監(jiān)理掛靠合同協(xié)議
- 機(jī)械密封安裝及維護(hù)培訓(xùn)
- 噴粉廠噴粉施工方案
評論
0/150
提交評論