




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
林子雨副教授數(shù)字素養(yǎng)通識(shí)教程廈門(mén)大學(xué)教材簡(jiǎn)介本PPT是以下教材的配套講義林子雨編著《數(shù)字素養(yǎng)通識(shí)教程——大數(shù)據(jù)與人工智能時(shí)代的計(jì)算機(jī)通識(shí)教育》人民郵電出版社,2025年1月ISBN:978-7-115-65946-0
定價(jià):59.8元教材官網(wǎng):/post/digital-literacy/教材官網(wǎng)提供講義PPT、MOOC視頻、案例視頻、上機(jī)實(shí)驗(yàn)、教學(xué)大綱、課程思政案例、開(kāi)學(xué)第一課講座PPT等豐富的教學(xué)資源掃一掃訪(fǎng)問(wèn)教材官網(wǎng)主講教師和作者林子雨簡(jiǎn)介廈門(mén)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系副教授以第一作者編著出版13本大數(shù)據(jù)系列教材被國(guó)內(nèi)1000余所高校采用榮獲“2022年福建省高等教育教學(xué)成果獎(jiǎng)特等獎(jiǎng)(個(gè)人排名第一)”入選“2021年高校計(jì)算機(jī)專(zhuān)業(yè)優(yōu)秀教師獎(jiǎng)勵(lì)計(jì)劃”2018年國(guó)家精品在線(xiàn)開(kāi)放課程(獨(dú)立主講)2020年國(guó)家級(jí)線(xiàn)上一流本科課程(獨(dú)立主講)2021年國(guó)家級(jí)線(xiàn)上一流本科課程(獨(dú)立主講)入選“2023年教育部國(guó)家智慧教育公共服務(wù)平臺(tái)應(yīng)用典型案例”第2章計(jì)算機(jī)程序設(shè)計(jì)01問(wèn)題求解與程序設(shè)計(jì)目錄02計(jì)算機(jī)語(yǔ)言03Python簡(jiǎn)介04搭建Python開(kāi)發(fā)環(huán)境05Python規(guī)范06Python基礎(chǔ)語(yǔ)法知識(shí)07Python程序設(shè)計(jì)綜合實(shí)例08使用Python繪制圖像01問(wèn)題求解與程序設(shè)計(jì)Partone2.1問(wèn)題求解與程序設(shè)計(jì)計(jì)算機(jī)求解問(wèn)題的基本過(guò)程算法程序與程序設(shè)計(jì)2.1.1計(jì)算機(jī)求解問(wèn)題的基本過(guò)程計(jì)算機(jī)求解問(wèn)題的基本過(guò)程包括確定問(wèn)題、?設(shè)計(jì)算法和?編寫(xiě)程序。?首先需要明確要解決的問(wèn)題是什么確定問(wèn)題?根據(jù)設(shè)計(jì)的算法,?編寫(xiě)相應(yīng)的程序?qū)崿F(xiàn)解決問(wèn)題的步驟編寫(xiě)程序?在明確問(wèn)題后,?需要設(shè)計(jì)一個(gè)算法來(lái)解決它設(shè)計(jì)算法2.1.2算法什么是算法算法,簡(jiǎn)單來(lái)說(shuō),就是解決問(wèn)題的操作步驟或方法。它是對(duì)解題方案的準(zhǔn)確而完整的描述,包含了一系列清晰定義的指令,用于指導(dǎo)計(jì)算機(jī)或其他計(jì)算設(shè)備完成特定的任務(wù)。算法不同于程序,程序是算法的具體實(shí)現(xiàn),即用某種編程語(yǔ)言編寫(xiě)的代碼,而算法本身不依賴(lài)于特定的編程語(yǔ)言,它是跨語(yǔ)言的,可以用不同的編程語(yǔ)言來(lái)實(shí)現(xiàn)某個(gè)算法。算法的基本特性算法具有以下基本特性:有窮性確切性輸入項(xiàng)輸出項(xiàng)可行性2.1.2算法算法實(shí)例【算法2-1】找出數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)專(zhuān)業(yè)錄取的新生中高考總分的最高分。這個(gè)問(wèn)題等價(jià)于求有限整數(shù)序列中最大值的算法,可采取以下步驟:將序列中第一個(gè)整數(shù)設(shè)為臨時(shí)最大值(max)將序列中下一個(gè)整數(shù)與臨時(shí)最大值比較,如果這個(gè)數(shù)大于臨時(shí)最大值,臨時(shí)最大值更新為這個(gè)整數(shù)重復(fù)第(2)步,一直比較到序列中最后一個(gè)數(shù)時(shí)停止。此時(shí),臨時(shí)最大值就是序列中的最大整數(shù)2.1.2算法算法的表示算法可以用自然語(yǔ)言、?程序框圖、?N-S圖、?偽代碼、?計(jì)算機(jī)語(yǔ)言等表示,具體如下:??使用日常語(yǔ)言來(lái)描述算法的步驟,?雖然通俗易懂,?但文字冗長(zhǎng),?易出現(xiàn)歧義自然語(yǔ)言?又稱(chēng)流程圖,它?通過(guò)一些規(guī)定的圖形、?流程線(xiàn)和文字說(shuō)明來(lái)直觀描述算法程序框圖?也稱(chēng)為盒圖,?是一種沒(méi)有流程線(xiàn)的流程圖。?它將整個(gè)程序?qū)懺谝粋€(gè)大框內(nèi),?由若干個(gè)小的基本框圖構(gòu)成N-S圖?一種非正式的、?簡(jiǎn)化的編程語(yǔ)言,?用于描述算法的邏輯結(jié)構(gòu),?不依賴(lài)于任何特定的編程語(yǔ)言語(yǔ)法偽代碼?直接使用某種編程語(yǔ)言來(lái)實(shí)現(xiàn)算法,?包括高級(jí)語(yǔ)言、?匯編語(yǔ)言和機(jī)器語(yǔ)言等計(jì)算機(jī)語(yǔ)言2.1.2算法程序框圖使用一些規(guī)定的圖形、流程線(xiàn)和文字說(shuō)明來(lái)直觀地描述算法。程序框名稱(chēng)功能
起止框表示一個(gè)算法的起始和結(jié)束
輸入、輸出框表示一個(gè)算法的輸入和輸出信息
執(zhí)行框賦值、計(jì)算
判斷框判斷某一條件是否成立,成立時(shí)在出口處標(biāo)明“是”或“Y”,不成立時(shí)標(biāo)明“否”或“N”2.1.2算法算法2-1對(duì)應(yīng)的流程圖如圖所示2.1.3程序與程序設(shè)計(jì)程序設(shè)計(jì)程序程序作為計(jì)算機(jī)科學(xué)的基石,是連接人類(lèi)思維與機(jī)器行為的橋梁。程序是由一系列精心編排的指令構(gòu)成的集合,這些指令使用計(jì)算機(jī)語(yǔ)言(比如高級(jí)編程語(yǔ)言Python)編寫(xiě),旨在指導(dǎo)計(jì)算機(jī)完成特定的任務(wù)或解決復(fù)雜的問(wèn)題。程序設(shè)計(jì)是將算法轉(zhuǎn)化為計(jì)算機(jī)可執(zhí)行的指令序列的過(guò)程,即把算法轉(zhuǎn)化為程序。這一過(guò)程要求開(kāi)發(fā)者熟悉編程語(yǔ)言、算法設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)以及計(jì)算機(jī)系統(tǒng)的基本原理。通過(guò)程序設(shè)計(jì),開(kāi)發(fā)者能夠創(chuàng)造出各種應(yīng)用軟件、操作系統(tǒng)、游戲等,以滿(mǎn)足用戶(hù)的不同需求。02計(jì)算機(jī)語(yǔ)言Parttwo2.2計(jì)算機(jī)語(yǔ)言計(jì)算機(jī)語(yǔ)言的種類(lèi)編程語(yǔ)言的選擇2.2.1計(jì)算機(jī)語(yǔ)言的種類(lèi)計(jì)算機(jī)語(yǔ)言的種類(lèi)很多,按照其發(fā)展過(guò)程可以分為機(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言。機(jī)器語(yǔ)言機(jī)器語(yǔ)言是最低級(jí)的語(yǔ)言,是用二進(jìn)制代碼表示的計(jì)算機(jī)能直接識(shí)別和執(zhí)行的一種機(jī)器指令的集合內(nèi)涵機(jī)器語(yǔ)言具有靈活、可直接執(zhí)行和速度快等特點(diǎn)。不同的計(jì)算機(jī)都有各自不同的機(jī)器語(yǔ)言,不同型號(hào)的計(jì)算機(jī)的機(jī)器語(yǔ)言是不相通的特點(diǎn)在計(jì)算機(jī)發(fā)展的早期階段,程序員使用機(jī)器語(yǔ)言來(lái)編寫(xiě)程序應(yīng)用2.2.1計(jì)算機(jī)語(yǔ)言的種類(lèi)匯編語(yǔ)言匯編語(yǔ)言增強(qiáng)了程序的可讀性,并降低了編程難度匯編語(yǔ)言是用于電子計(jì)算機(jī)、微處理器、微控制器或其他可編程器件的低級(jí)語(yǔ)言0102使用匯編語(yǔ)言編寫(xiě)的程序,不能直接被機(jī)器識(shí)別,還要由匯編程序?qū)⑵滢D(zhuǎn)換成機(jī)器指令03匯編語(yǔ)言目標(biāo)代碼簡(jiǎn)短,占用內(nèi)存少,執(zhí)行速度快,是高效的程序設(shè)計(jì)語(yǔ)言042.2.1計(jì)算機(jī)語(yǔ)言的種類(lèi)高級(jí)語(yǔ)言和匯編語(yǔ)言相比,高級(jí)語(yǔ)言不但將許多相關(guān)的機(jī)器指令合成為單條指令,并且去掉了與具體操作有關(guān)但與完成工作無(wú)關(guān)的細(xì)節(jié),這樣就大大簡(jiǎn)化了程序中的指令01由于省略了很多細(xì)節(jié),編程者也就不需要有太多的專(zhuān)業(yè)知識(shí),經(jīng)過(guò)一定的學(xué)習(xí)之后都可以編程02高級(jí)語(yǔ)言主要是相對(duì)于低級(jí)語(yǔ)言而言的,它并不是特指某一種具體的語(yǔ)言,而是包括了很多種編程語(yǔ)言,如流行的Java、C、C++、C#、Pascal、Python、Scala、PHP等03高級(jí)語(yǔ)言編寫(xiě)的程序不能直接被計(jì)算機(jī)識(shí)別,必須經(jīng)過(guò)轉(zhuǎn)換才能被執(zhí)行042.2.2編程語(yǔ)言的選擇目前,各大高校越來(lái)越重視Python教學(xué),Python已經(jīng)成為最受高校歡迎的程序設(shè)計(jì)語(yǔ)言之一以前,大部分高校采用的編程語(yǔ)言往往是C、C++或Java,最近幾年,Python憑借其獨(dú)特的優(yōu)勢(shì)逐漸嶄露頭角Python語(yǔ)言廣泛用于計(jì)算機(jī)程序設(shè)計(jì)教學(xué)、系統(tǒng)管理編程、科學(xué)計(jì)算等,特別適用于快速的應(yīng)用程序開(kāi)發(fā)030102與傳統(tǒng)編程語(yǔ)言的復(fù)雜開(kāi)發(fā)過(guò)程不同,Python在操作上非常方便、快捷,學(xué)習(xí)者容易掌握,可以提升學(xué)習(xí)者的編程效率,并增強(qiáng)其學(xué)習(xí)信心042.2.2編程語(yǔ)言的選擇Python的主要優(yōu)勢(shì)如下:學(xué)習(xí)入門(mén)容易功能強(qiáng)大應(yīng)用領(lǐng)域非常廣泛高校采用Python作為編程語(yǔ)言的必要性:從計(jì)算思維培養(yǎng)角度來(lái)說(shuō),傳統(tǒng)的C、Java和VB等語(yǔ)言過(guò)分強(qiáng)調(diào)語(yǔ)法,并不適合非計(jì)算機(jī)專(zhuān)業(yè)的學(xué)生01而Python語(yǔ)言作為“輕語(yǔ)法”程序設(shè)計(jì)語(yǔ)言,相比其他語(yǔ)言而言具有更高的使用價(jià)值0203Python簡(jiǎn)介Partthree2.3Python簡(jiǎn)介
什么是PythonPython語(yǔ)言的特點(diǎn)Python語(yǔ)言的應(yīng)用2.3.1
什么是Python發(fā)展到今天,Python已經(jīng)成為最受歡迎的程序設(shè)計(jì)語(yǔ)言之一Python的設(shè)計(jì)哲學(xué)是“優(yōu)雅”“明確”“簡(jiǎn)單”P(pán)ython(發(fā)音[?pa?θ?n])是1989年由荷蘭人吉多·范羅蘇姆(GuidovanRossum)發(fā)明的一種面向?qū)ο蟮慕忉屝透呒?jí)編程語(yǔ)言0103Python的第一個(gè)公開(kāi)發(fā)行版于
1991
年發(fā)行,在
2004
年以后,Python
的使用率呈線(xiàn)性增長(zhǎng),并獲得“2021年TIOBE最佳年度語(yǔ)言”稱(chēng)號(hào)0502Python常被稱(chēng)為“膠水語(yǔ)言”,能夠把用其他語(yǔ)言(尤其是C/C++)制作的各種模塊很輕松地連接在一起042.3.2Python語(yǔ)言的特點(diǎn)Python語(yǔ)言的優(yōu)點(diǎn)(1)語(yǔ)言簡(jiǎn)單(2)開(kāi)源、免費(fèi)(3)面向?qū)ο螅?)跨平臺(tái)(5)強(qiáng)大的生態(tài)系統(tǒng)Python語(yǔ)言的缺點(diǎn)(1)運(yùn)行速度慢(2)存在多線(xiàn)程性能瓶頸(3)代碼不能加密2.3.3Python語(yǔ)言的應(yīng)用數(shù)據(jù)科學(xué)使用第三方庫(kù)Scrapy編寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)程序采集網(wǎng)頁(yè)數(shù)據(jù)數(shù)據(jù)采集使用第三方庫(kù)pandas清洗數(shù)據(jù)、排序數(shù)據(jù)數(shù)據(jù)清洗第三方庫(kù)NumPy和SciPy提供了豐富的科學(xué)計(jì)算和數(shù)據(jù)分析功能數(shù)據(jù)處理分析第三方庫(kù)Matplotlib提供了豐富的數(shù)據(jù)可視化圖表數(shù)據(jù)可視化人工智能有許多基于Python的第三方庫(kù),如scikit-learn、Keras和NLTK等深度學(xué)習(xí)框架Tensorflow、Caffe等,都是用Python實(shí)現(xiàn)的2.3.3Python語(yǔ)言的應(yīng)用Python具有Django、Flask、Pyramid、Bottle、Tornado、web2py等框架網(wǎng)站開(kāi)發(fā)著名的開(kāi)源云計(jì)算平臺(tái)OpenStack就是使用Python語(yǔ)言開(kāi)發(fā)的Ansible、Salt等自動(dòng)化部署工具,也是使用Python語(yǔ)言開(kāi)發(fā)的系統(tǒng)管理04搭建Python開(kāi)發(fā)環(huán)境Partfour2.4搭建Python開(kāi)發(fā)環(huán)境安裝Python設(shè)置當(dāng)前工作目錄使用交互式執(zhí)行環(huán)境運(yùn)行代碼文件使用IDLE編寫(xiě)代碼2.4.1
安裝Python請(qǐng)到Python官方網(wǎng)站下載與自己計(jì)算機(jī)操作系統(tǒng)匹配的安裝包python-3.12.2-amd64.exe運(yùn)行安裝包開(kāi)始安裝,在安裝過(guò)程中,要注意選中“Addpython.exetoPATH”復(fù)選框2.4.1
安裝Python點(diǎn)擊“Customizeinstallation”繼續(xù)安裝,在選擇安裝路徑時(shí),可以自定義安裝路徑,比如設(shè)置為“C:\python312”,并在“AdvancedOptions”下方選中“InstallPython3.12forallusers”2.4.1
安裝Python安裝完成以后,需要檢測(cè)是否安裝成功。可以打開(kāi)Windows操作系統(tǒng)的cmd命令界面,然后執(zhí)行如下命令打開(kāi)Python解釋器:>cdC:\python312>python如果出現(xiàn)圖2-5所示信息,則說(shuō)明Python已經(jīng)安裝成功:2.4.2設(shè)置當(dāng)前工作目錄Python的當(dāng)前工作目錄是指Python解釋器當(dāng)前正在使用的目錄。當(dāng)我們?cè)赾md命令界面中使用“python”命令打開(kāi)Python解釋器時(shí),在哪個(gè)目錄下執(zhí)行“python”命令,該目錄就會(huì)成為Python的當(dāng)前工作目錄,比如,在cmd命令界面中執(zhí)行如下命令:>cdC:\>python這時(shí),進(jìn)入Python解釋器以后,當(dāng)前工作目錄就是“C:\”。再比如,在cmd命令界面中執(zhí)行如下命令:>cdC:\python312>python這時(shí),進(jìn)入Python解釋器以后,當(dāng)前工作目錄就是“C:\python312”。2.4.2設(shè)置當(dāng)前工作目錄進(jìn)入Python解釋器以后,可以使用Python的os模塊來(lái)查看當(dāng)前工作目錄:>>>importos>>>print(os.getcwd())C:\python312雖然Python的當(dāng)前工作目錄在大多數(shù)情況下都是有用的,但在編寫(xiě)可移植和可維護(hù)的代碼時(shí),最好使用絕對(duì)路徑或相對(duì)于某個(gè)固定點(diǎn)的相對(duì)路徑來(lái)引用文件,而不是依賴(lài)于當(dāng)前工作目錄。2.4.3使用交互式執(zhí)行環(huán)境>>>print("HelloWorld")HelloWorld>>>1+23>>>2*(3+4)14上圖呈現(xiàn)的界面就是一個(gè)交互式執(zhí)行環(huán)境(或稱(chēng)為“解釋器”),可以在Python命令提示符“>>>”后面輸入各種Python代碼,回車(chē)后就會(huì)立即看到執(zhí)行結(jié)果,比如:2.4.4運(yùn)行代碼文件假設(shè)在Windows操作系統(tǒng)的Python安裝目錄下已經(jīng)存在一個(gè)代碼文件hello.py,該文件里面只有如下一行代碼:print("HelloWorld")現(xiàn)在我們要運(yùn)行這個(gè)代碼文件。可以打開(kāi)Windows操作系統(tǒng)的cmd命令界面,并在命令提示符后面輸入如下語(yǔ)句:>pythonC:\python312\hello.py執(zhí)行結(jié)果如圖所示。2.4.5使用IDLE編寫(xiě)代碼Python安裝成功以后,會(huì)自帶一個(gè)集成式開(kāi)發(fā)環(huán)境IDLE,它是一個(gè)PythonShell,程序開(kāi)發(fā)人員可以利用PythonShell與Python交互在Windows操作系統(tǒng)的“開(kāi)始”菜單中找到“IDLE(Python3.12
64-bit)”,單擊進(jìn)入IDLE主窗口,如圖所示,窗口左側(cè)會(huì)顯示Python命令提示符“>>>”,在提示符后面輸入Python代碼,回車(chē)后就會(huì)立即執(zhí)行并返回結(jié)果2.4.5使用IDLE編寫(xiě)代碼如果要?jiǎng)?chuàng)建一個(gè)代碼文件,可以在IDLE主窗口的頂部菜單欄中選擇“File→NewFile”然后就會(huì)彈出圖所示的文件窗口,可以在里面輸入Python代碼,最后,在頂部菜單欄中選擇“File→SaveAs…”,把文件保存為hello.py2.4.5使用IDLE編寫(xiě)代碼如果要運(yùn)行代碼文件hello.py,可以在IDLE的文件窗口的頂部菜單欄中選擇“Run→RunModule”(或者直接使用快捷鍵“F5”),這時(shí)就會(huì)開(kāi)始運(yùn)行程序。程序運(yùn)行結(jié)束后,會(huì)在IDLEShell窗口顯示執(zhí)行結(jié)果,如圖所示需要注意的是,除了Python自帶的IDLE以外,我們還可以選擇第三方開(kāi)發(fā)工具進(jìn)行Python編程,比如PyCharm、Eclipse、JupyterNotebook、IntelliJIDEA等。05Python規(guī)范Partfive2.5Python規(guī)范注釋規(guī)則代碼縮進(jìn)2.5.1注釋規(guī)則單行注釋Python中使用“#”表示單行注釋。單行注釋可以作為單獨(dú)的一行放在被注釋代碼行之上,或者也可以放在語(yǔ)句或表達(dá)式之后。【例2-1】單行注釋作為單獨(dú)的一行放在被注釋代碼行之上。pi=3.14r=2#使用面積公式求出圓的面積area=pi*r*rprint(area)當(dāng)單行注釋作為單獨(dú)的一行放在被注釋代碼行之上時(shí),為了保證代碼的可讀性,建議在“#”后面添加一個(gè)空格,再添加注釋內(nèi)容。2.5.1注釋規(guī)則單行注釋【例2-2】單行注釋放在語(yǔ)句或表達(dá)式之后。length=3#矩形的長(zhǎng)width=5#矩形的寬area=length*width#求出矩形的面積print(area)當(dāng)單行注釋放在語(yǔ)句或表達(dá)式之后時(shí),同樣為了保證代碼的可讀性,建議注釋和語(yǔ)句(或注釋和表達(dá)式)之間至少要有兩個(gè)空格。2.5.1注釋規(guī)則多行注釋當(dāng)注釋內(nèi)容過(guò)多,導(dǎo)致一行無(wú)法顯示時(shí),就可以使用多行注釋。Python中使用三個(gè)單引號(hào)或三個(gè)雙引號(hào)表示多行注釋。【例2-3】使用三個(gè)單引號(hào)的多行注釋。'''文件名:area.py用途:用于求解矩形的面積創(chuàng)建日期:2024年8月1日創(chuàng)建人:XMU'''2.4.2代碼縮進(jìn)Python和其他編程語(yǔ)言(比如C和Java)很不一樣的地方在于,Python采用代碼縮進(jìn)和冒號(hào)來(lái)區(qū)分代碼之間的層次,而Java和C語(yǔ)言則采用大括號(hào)來(lái)分隔代碼塊01如果我們有其他語(yǔ)言(如C或者Java)的編程經(jīng)驗(yàn),那么Python的強(qiáng)制縮進(jìn)一開(kāi)始會(huì)讓我們很不習(xí)慣。但是,如果習(xí)慣了Python的縮進(jìn)語(yǔ)法,就會(huì)覺(jué)得它非常優(yōu)雅02縮進(jìn)可以使用空格或者Tab鍵來(lái)實(shí)現(xiàn)(建議使用空格作為縮進(jìn))。當(dāng)使用空格作為縮進(jìn)時(shí),建議使用4個(gè)空格作為一個(gè)縮進(jìn)量032.4.2代碼縮進(jìn)【例2-4】Python的縮進(jìn)語(yǔ)法。length=3#矩形的長(zhǎng)width=5#矩形的寬area=length*width#矩形的面積ifarea>10:print("大矩形")常用的集成式開(kāi)發(fā)環(huán)境(比如IDLE、PyCharm、Eclipse等)都具有自動(dòng)縮進(jìn)的機(jī)制,比如輸入“:”號(hào)之后,按“回車(chē)”會(huì)自動(dòng)進(jìn)行縮進(jìn)。06Python基礎(chǔ)語(yǔ)法知識(shí)Partsix2.6Python基礎(chǔ)語(yǔ)法知識(shí)基本數(shù)據(jù)類(lèi)型組合數(shù)據(jù)類(lèi)型控制結(jié)構(gòu)函數(shù)2.6.1基本數(shù)據(jù)類(lèi)型數(shù)字在Python中,數(shù)字類(lèi)型包括整數(shù)(int)、浮點(diǎn)數(shù)(float)、布爾類(lèi)型(bool)和復(fù)數(shù)(complex),而且,數(shù)字類(lèi)型變量可以表示任意大的數(shù)值。整數(shù)整數(shù)類(lèi)型用來(lái)存儲(chǔ)整數(shù)數(shù)值。在Python中,整數(shù)包括正整數(shù)、負(fù)整數(shù)和0。按照進(jìn)制的不同,整數(shù)類(lèi)型還可以劃分為十進(jìn)制整數(shù)、八進(jìn)制整數(shù)、十六進(jìn)制整數(shù)和二進(jìn)制整數(shù)布爾類(lèi)型Python中的布爾類(lèi)型主要用來(lái)表示“真”或“假”的值,每個(gè)對(duì)象天生具有布爾類(lèi)型的True或False值??諏?duì)象、值為零的任何數(shù)字或者對(duì)象None的布爾值都是False。在Python3.x中,布爾值是作為整數(shù)的子類(lèi)實(shí)現(xiàn)的,布爾值可以轉(zhuǎn)換為數(shù)值,True的值為1,F(xiàn)alse的值為0,可以進(jìn)行數(shù)值運(yùn)算浮點(diǎn)數(shù)浮點(diǎn)數(shù)也稱(chēng)為“小數(shù)”,由整數(shù)部分和小數(shù)部分構(gòu)成,比如3.14、0.2、-1.648、5.8726849267842等。浮點(diǎn)數(shù)也可以用科學(xué)計(jì)數(shù)法表示,比如1.3e4、-0.35e3、2.36e-3等復(fù)數(shù)復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成,可以用a+bj或者complex(a,b)表示,復(fù)數(shù)的實(shí)部a和虛部b都是浮點(diǎn)型。例如,一個(gè)復(fù)數(shù)的實(shí)部為2.38,虛部為18.2j,則這個(gè)復(fù)數(shù)為2.38+18.2j2.6.1基本數(shù)據(jù)類(lèi)型字符串字符串是Python中最常用的數(shù)據(jù)類(lèi)型,它是連續(xù)的字符序列,一般使用單引號(hào)('')、雙引號(hào)("
")或三引號(hào)('''
'''或"""""")進(jìn)行界定。其中,單引號(hào)和雙引號(hào)中的字符序列必須在一行上,而三引號(hào)內(nèi)的字符序列可以分布在連續(xù)的多行上,從而可以支持格式較為復(fù)雜的字符串。例如,'xyz'、'123'、'廈門(mén)'、"hadoop"、'''spark'''、"""flink"""都是合法字符串,空字符串可以表示為''、"
"或'''
'''。定義要點(diǎn)舉例2.6.2組合數(shù)據(jù)類(lèi)型列表列表是最常用的Python數(shù)據(jù)類(lèi)型,列表的數(shù)據(jù)項(xiàng)不需要具有相同的類(lèi)型。在形式上,只要把逗號(hào)分隔的不同的數(shù)據(jù)項(xiàng)使用方括號(hào)括起來(lái),就可以構(gòu)成一個(gè)列表,例如:['hadoop','spark',2021,2010][1,2,3,4,5]["a","b","c","d"]['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']2.6.2組合數(shù)據(jù)類(lèi)型列表同其他類(lèi)型的Python變量一樣,在創(chuàng)建列表時(shí),也可以直接使用賦值運(yùn)算符“=”將一個(gè)列表賦值給變量。例如,以下都是合法的列表定義:student=['小明','男',2010,10]num=[1,2,3,4,5]motto=["自強(qiáng)不息","止于至善"]list=['hadoop',
'年度暢銷(xiāo)書(shū)',[2020,12000]]可以看出,列表里面的元素仍然可以是列表。需要注意的是,盡管一個(gè)列表中可以放入不同類(lèi)型的數(shù)據(jù),但是,為了提高程序的可讀性,一般建議在一個(gè)列表中只出現(xiàn)一種數(shù)據(jù)類(lèi)型。2.6.2組合數(shù)據(jù)類(lèi)型元組Python中的列表適合存儲(chǔ)在程序運(yùn)行時(shí)變化的數(shù)據(jù)集。列表是可以修改的,這對(duì)要存儲(chǔ)一些要變化的數(shù)據(jù)而言至關(guān)重要。但是,也不是任何數(shù)據(jù)都要在程序運(yùn)行期間進(jìn)行修改,有時(shí)候需要?jiǎng)?chuàng)建一組不可修改的元素,此時(shí)可以使用元組。元組的創(chuàng)建和列表的創(chuàng)建很相似,不同之處在于,創(chuàng)建列表時(shí)使用的是方括號(hào),而創(chuàng)建元組時(shí)則需要使用圓括號(hào)。元組的創(chuàng)建方法很簡(jiǎn)單,只需要在圓括號(hào)中添加元素,并使用逗號(hào)隔開(kāi)即可,具體實(shí)例如下:>>>tuple1=('hadoop','spark',2008,2009)>>>tuple2=(1,2,3,4,5)>>>tuple3=('hadoop',2008,("大數(shù)據(jù)","分布式計(jì)算"),["spark","flink","storm"])2.6.2組合數(shù)據(jù)類(lèi)型字典字典也是Python提供的一種常用的數(shù)據(jù)結(jié)構(gòu),它用于存放具有映射關(guān)系的數(shù)據(jù)。字典相當(dāng)于保存了兩組數(shù)據(jù),其中一組數(shù)據(jù)是關(guān)鍵數(shù)據(jù),被稱(chēng)為“鍵”(key);另一組數(shù)據(jù)可通過(guò)鍵來(lái)訪(fǎng)問(wèn),被稱(chēng)為“值”(value)。字典具有如下特性:字典是無(wú)序的對(duì)象集合,列表是有序的對(duì)象集合,兩者之間的區(qū)別在于,字典當(dāng)中的元素是通過(guò)鍵來(lái)存取的,而不是通過(guò)偏移量存取字典的元素是“鍵值對(duì)”,由于字典中的鍵是非常關(guān)鍵的數(shù)據(jù),而且程序需要通過(guò)鍵來(lái)訪(fǎng)問(wèn)值,因此字典中的鍵不允許重復(fù),必須是唯一值,而且鍵必須不可變字典不支持索引和切片,但可以通過(guò)“鍵”查詢(xún)“值”030102字典是可變的,并且可以任意嵌套042.6.2組合數(shù)據(jù)類(lèi)型字典字典用大括號(hào){}標(biāo)識(shí)。在使用大括號(hào)語(yǔ)法創(chuàng)建字典時(shí),大括號(hào)中應(yīng)包含多個(gè)“鍵值對(duì)”,鍵與值之間用英文冒號(hào)隔開(kāi),多個(gè)鍵值對(duì)之間用英文逗號(hào)隔開(kāi)。具體實(shí)例如下:>>>grade={"語(yǔ)文":67,"數(shù)學(xué)":91,"英語(yǔ)":78}
#鍵是字符串>>>grade{'語(yǔ)文':67,'數(shù)學(xué)':91,'英語(yǔ)':78}2.6.2組合數(shù)據(jù)類(lèi)型集合集合(set)是一個(gè)無(wú)序的不重復(fù)元素序列。集合中的元素必須是不可變類(lèi)型。在形式上,集合的所有元素都放在一對(duì)大括號(hào)“{}”中,兩個(gè)相鄰的元素之間使用逗號(hào)分隔??梢灾苯邮褂么罄ㄌ?hào){}創(chuàng)建集合,實(shí)例如下:>>>dayset={'Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'}>>>dayset{'Tuesday','Monday','Wednesday','Saturday','Thursday','Sunday','Friday'}在創(chuàng)建集合時(shí),如果存在重復(fù)元素,Python只會(huì)自動(dòng)保留一個(gè),實(shí)例如下:>>>numset={2,5,7,8,5,9}>>>numset{2,5,7,8,9}2.6.3控制結(jié)構(gòu)結(jié)構(gòu)化程序設(shè)計(jì)的概念最早由艾茲格·迪科斯徹(E.W.Dijkstra)在1965年提出。該概念的提出是軟件發(fā)展的一個(gè)重要里程碑,它的主要觀點(diǎn)是采用“自頂向下、逐步求精”及模塊化的程序設(shè)計(jì)方法。在結(jié)構(gòu)化程序設(shè)計(jì)中,主要使用3種基本控制結(jié)構(gòu)來(lái)構(gòu)造程序,即順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。使用結(jié)構(gòu)化程序設(shè)計(jì)方法編寫(xiě)出來(lái)的程序在結(jié)構(gòu)上具有以下特點(diǎn):以控制結(jié)構(gòu)為單位,每個(gè)模塊只有一個(gè)入口和一個(gè)出口01能夠以控制結(jié)構(gòu)為單位,從上到下順序地閱讀程序文本02由于程序的靜態(tài)描述與執(zhí)行時(shí)的控制流程容易對(duì)應(yīng),所以閱讀者能夠方便、正確地理解程序的動(dòng)作032.6.3控制結(jié)構(gòu)Python程序的控制結(jié)構(gòu)Python程序具有三種典型的控制結(jié)構(gòu):2.6.3控制結(jié)構(gòu)選擇語(yǔ)句選擇語(yǔ)句也稱(chēng)為“條件語(yǔ)句”,就是對(duì)語(yǔ)句中不同條件的值進(jìn)行判斷,從而根據(jù)不同的條件執(zhí)行不同的語(yǔ)句。選擇語(yǔ)句可以分為以下3種形式:簡(jiǎn)單的if語(yǔ)句if…else語(yǔ)句if…elif…else多分支語(yǔ)句0201032.6.3控制結(jié)構(gòu)選擇語(yǔ)句【例2-5】使用if語(yǔ)句求出兩個(gè)數(shù)的較小值。01
#two_number.py02
a,b,c=4,5,003
ifa>b:04
c=b05
ifa<b:06
c=a07
print("兩個(gè)數(shù)的較小值是:",c)【例2-6】判斷一個(gè)數(shù)是奇數(shù)還是偶數(shù)。01
#odd_even.py02
a=503
ifa%2==0:04
print("這是一個(gè)偶數(shù)。")05
else:06
print("這是一個(gè)奇數(shù)。")2.6.3控制結(jié)構(gòu)選擇語(yǔ)句【例2-7】判斷每天上課的內(nèi)容。01
#lesson.py02
day=int(input("請(qǐng)輸入第幾天課程:"))03
ifday==1:04
print("第1天上數(shù)學(xué)課")05
elifday==2:06
print("第2天上語(yǔ)文課")07
else:08
print("其他時(shí)間上計(jì)算機(jī)課")2.6.3控制結(jié)構(gòu)循環(huán)語(yǔ)句循環(huán)語(yǔ)句就是重復(fù)執(zhí)行某段程序代碼,直到滿(mǎn)足特定條件為止。在Python語(yǔ)言中,循環(huán)語(yǔ)句有以下兩種形式:for循環(huán)語(yǔ)句02while循環(huán)語(yǔ)句012.6.3控制結(jié)構(gòu)循環(huán)語(yǔ)句【例2-8】用while循環(huán)實(shí)現(xiàn)計(jì)算1~99的整數(shù)和。01
#int_sum.py02
n=103
sum=004
while(n<=99):05
sum+=n06
n+=107
print("1~99的整數(shù)和是:",sum)【例2-9】用for循環(huán)實(shí)現(xiàn)計(jì)算1~99的整數(shù)和。01
#int_sum_for.py02
sum=003
forninrange(1,100):#range(1,100)用于生成1到100(不包括100)的整數(shù)04
sum+=n05
print("1到99的整數(shù)和是:",sum)2.6.4函數(shù)函數(shù)是可以重復(fù)使用的用于實(shí)現(xiàn)某種功能的代碼塊。與其他語(yǔ)言類(lèi)似,在Python中,函數(shù)的優(yōu)點(diǎn)也是提高程序的模塊性和代碼復(fù)用性。【例2-10】定義一個(gè)帶有參數(shù)的函數(shù)。01#i_like.py02#定義帶有參數(shù)的函數(shù)03deflike(language):04'''打印喜歡的編程語(yǔ)言!'''05print("我喜歡{}語(yǔ)言!".format(language))06return07#調(diào)用函數(shù)08like("C")09like("C#")10like("Python")上面代碼的執(zhí)行結(jié)果如下:我喜歡C語(yǔ)言!我喜歡C#語(yǔ)言!我喜歡Python語(yǔ)言!07Python程序設(shè)計(jì)綜合實(shí)例Partseven2.7Python程序設(shè)計(jì)綜合實(shí)例【例2-11】利用蒙特卡羅方法計(jì)算圓周率。如左下圖所示,假設(shè)有一個(gè)正方形的邊長(zhǎng)是2r,內(nèi)部有一個(gè)與之相切的圓,圓的半徑為r,則它們的面積之比是π/4,即用圓的面積(πr2)除以正方形的面積(4r2)現(xiàn)在,如右下圖所示,在這個(gè)正方形內(nèi)部,隨機(jī)產(chǎn)生10000個(gè)點(diǎn)(即10000個(gè)坐標(biāo)對(duì)(x,y)),計(jì)算它們與中心點(diǎn)的距離,從而判斷它們是否落在圓的內(nèi)部。如果這些點(diǎn)均勻分布,那么圓內(nèi)的點(diǎn)應(yīng)該占到所有點(diǎn)的π/4,因此,將這個(gè)比值乘以4,就是π的值2.7Python程序設(shè)計(jì)綜合實(shí)例#pi.pyfromrandomimportrandom
#導(dǎo)入模塊n=10000N=0foriinrange(1,n):
x,y=random(),random()
#
random()函數(shù)用于生成一個(gè)0到1之間的隨機(jī)數(shù)
dis=pow(x**2+y**2,0.5)
#
pow(a,b)函數(shù)返回a的b次冪
ifdis<=1:
N=N+1pi=4*N/nprint("圓周率為{}".format(pi))2.7Python程序設(shè)計(jì)綜合實(shí)例【例2-12】實(shí)現(xiàn)一個(gè)斐波那契數(shù)列。斐波那契數(shù)列(FibonacciSequence),又稱(chēng)黃金分割數(shù)列,因數(shù)學(xué)家萊昂納多·斐波那契(LeonardoFibonacci)以兔子繁殖為例子而引入,故又稱(chēng)為“兔子數(shù)列”,指的是這樣一個(gè)數(shù)列:0,1,1,2,3,5,8,13,21,34,…在數(shù)學(xué)上,斐波那契數(shù)列以如下遞歸的方法定義:實(shí)現(xiàn)一個(gè)斐波那契數(shù)列的程序代碼如下:#fibonacci.pyi,j=0,1whilei<10000:
print(i)
i,j=j,i+j2.7Python程序設(shè)計(jì)綜合實(shí)例【例2-13】求出100~200的所有素?cái)?shù)(素?cái)?shù)只能被1和該數(shù)本身整除)。#prime_all.pyimportmathi=0forninrange(100,201):
prime=1
k=int(math.sqrt(n))
#sqrt(n)方法返回?cái)?shù)字n的平方根
foriinrange(2,k+1):
ifn%i==0:
prime=0
ifprime==1:
print("%d是素?cái)?shù)"%n)2.7Python程序設(shè)計(jì)綜合實(shí)例【例2-14】打印出如下效果的實(shí)心三角形:#triangle1.pynum=int(input("請(qǐng)輸入打印行數(shù):"))foriinrange(num):
tab=False
#
控制是否換行
forjinrange(i+1):
print('*',end='')
#
打印星號(hào),不換行
ifj==i:
tab=True
#
控制是否換行
iftab:
print('\n',end='')
#
換行2.7Python程序設(shè)計(jì)綜合實(shí)例【例2-15】打印出如下效果的空心三角形:#triangle2.pynum=int(input("請(qǐng)輸入打印行數(shù):"))foriinrange(num):tab=False#控制是否換行forjinrange(i+1):#判斷是否最后一行ifi!=num-1:#循環(huán)完成,修改換行標(biāo)識(shí)符ifj==i:tab=True#判斷打印空格還是星號(hào)if(i==jorj==0):print('*',end='')#打印星號(hào),不換行else:print('',end='')#打印空格,不換行#最后一行,全部打印星號(hào)else:print('*',end='')#打印星號(hào),不換行iftab:print('\n',end='')#換行2.7Python程序設(shè)計(jì)綜合實(shí)例【例2-16】將一張面值為100元的人民幣等值換成10元、5元和1元的零鈔,有哪些組合?#money.pyforiinrange(100//1+1):
forjinrange((100-i*1)//5+1):
forkinrange((100-i*1-
j*5)//10+1):
ifi*1+j*5+k*10==100:
print("1元%d張,5元%d張,10元%d張"%(i,j,k))【例2-17】求100以?xún)?nèi)能被3和7整除的數(shù)。#devide.pyforiinrange(1,101):
ifi%3==0andi%7==0:
print(i)08使用Python繪制圖像Parteight2.8使用Python繪制圖像Turtle庫(kù)是Python中的一個(gè)標(biāo)準(zhǔn)繪圖庫(kù),主要用于繪制圖形和動(dòng)畫(huà)。其功能包括通過(guò)簡(jiǎn)單的命令控制一個(gè)“海龜”繪制各種形狀和圖案,如直線(xiàn)、圓形、多邊形等,并支持顏色填充和畫(huà)筆控制。Turtle庫(kù)還提供了一種直觀、可視化的編程方式,適合初學(xué)者學(xué)習(xí)編程概念和算法,如循環(huán)、條件判斷等。此外,它還能用于制作簡(jiǎn)單的動(dòng)畫(huà)和游戲。引用turtle庫(kù)的方式有如下三種:使用importturtle,函數(shù)調(diào)用時(shí)使用的語(yǔ)句格式是turtle.circle(10)方式1使用fromturtleimport*,函數(shù)調(diào)用時(shí)使用的語(yǔ)句格式是circle(10)方式2使用importturtleast,函數(shù)調(diào)用時(shí)使用的語(yǔ)句格式是t.circle(10)方式32.8使用Python繪制圖像turtle的常用函數(shù)繪圖實(shí)例2.8.1turtle的常用函數(shù)設(shè)置畫(huà)布設(shè)置畫(huà)布的函數(shù)如下:turtle.screensize(canvwidth=None,canvheight=None,bg=None)這個(gè)函數(shù)中的參數(shù)分別為畫(huà)布的寬(單位是像素)、高、背景顏色,比如:turtle.screensize(800,600,"green")或者也可以使用如下函數(shù):turtle.setup(width=0.5,height=0.75,startx=None,starty=None)在這個(gè)函數(shù)中,width、height表示寬和高,如果輸入的值為整數(shù),則表示像素,如果輸入的值為小數(shù),則表示占據(jù)電腦屏幕的比例。(startx,starty)這一坐標(biāo)表示矩形窗口左上角頂點(diǎn)的位置,如果為空,則窗口位于屏幕中心。下面是兩個(gè)實(shí)例:turtle.setup(width=0.6,height=0.6)turtle.setup(width=800,height=800,startx=100,starty=100)2.8.1turtle的常用函數(shù)設(shè)置畫(huà)筆可以設(shè)置畫(huà)筆顏色、畫(huà)線(xiàn)的寬度、畫(huà)筆的移動(dòng)速度,具體如下:turtle.pensize():設(shè)置畫(huà)筆的寬度turtle.pencolor():如果沒(méi)有參數(shù)傳入,則返回當(dāng)前畫(huà)筆顏色,如果有傳入?yún)?shù),則設(shè)置畫(huà)筆顏色,傳入?yún)?shù)可以是字符串,比如"green"、"red",也可以是RGB三元組turtle.speed(speed):設(shè)置畫(huà)筆移動(dòng)速度,畫(huà)筆繪制的速度范圍是[0,10]的整數(shù),數(shù)字越大速度越快2.8.1turtle的常用函數(shù)繪圖函數(shù)下表給出了常用的畫(huà)筆運(yùn)動(dòng)函數(shù)、畫(huà)筆控制函數(shù)和其他函數(shù)。函數(shù)說(shuō)明turtle.forward(distance)向當(dāng)前畫(huà)筆方向移動(dòng)distance像素長(zhǎng)度turtle.backward(distance)向當(dāng)前畫(huà)筆相反方向移動(dòng)distance像素長(zhǎng)度turtle.right(degree)順時(shí)針移動(dòng)degree°turtle.left(degree)逆時(shí)針移動(dòng)degree°turtle.pendown()移動(dòng)時(shí)繪制圖形turtle.goto(x,y)將畫(huà)筆移動(dòng)到坐標(biāo)為x,y的位置turtle.penup()提起筆移動(dòng),不繪制圖形,用于另起一個(gè)地方繪制turtle.circle()畫(huà)圓,半徑為正(負(fù)),表示圓心在畫(huà)筆的左邊(右邊)畫(huà)圓turtle.setheading()設(shè)置畫(huà)筆當(dāng)前行進(jìn)方向的角度(角度坐標(biāo)體系中的絕對(duì)角度)畫(huà)筆運(yùn)動(dòng)函數(shù)2.8.1turtle的常用函數(shù)繪圖函數(shù)畫(huà)筆控制函數(shù)函數(shù)說(shuō)明turtle.fillcolor(colorstring)繪制圖形的填充顏色urtle.color(color1,color2)同時(shí)設(shè)置pencolor=color1,fillcolor=color2turtle.filling()返回當(dāng)前是否在填充狀態(tài)turtle.begin_fill()準(zhǔn)備開(kāi)始填充圖形turtle.end_fill()填充完成turtle.hideturtle()隱藏畫(huà)筆的turtle形狀turtle.showturtle()顯示畫(huà)筆的turtle形狀函數(shù)說(shuō)明turtle.mainloop()或turtle.done()啟動(dòng)事件循環(huán),調(diào)用Tkinter的mainloop函數(shù)turtle.delay(delay=None)設(shè)置或返回以毫秒為單位的繪圖延遲其他函數(shù)2.8.2繪圖實(shí)例繪制五角星#five-pointed-star.pyfromturtleimportTurtlep=Turtle()p.speed(3)p.pensize(5)p.color("black","red")p.begin_fill()foriinrange(5):p.forward(200)#將箭頭移到某一指定坐標(biāo)p.right(144)#當(dāng)前方向上向右轉(zhuǎn)動(dòng)角度p.end_fill()2.8.2繪圖實(shí)例繪制太陽(yáng)花#sun-flower.pyimportturtleturtle.color("red","yellow")turtle.begin_fill()foriinrange(50):turtle.forward(200)turtle.left(170)turtle.end_fill()turtle.mainloop()2.8.2繪圖實(shí)例繪制七段數(shù)碼管數(shù)碼管是一種價(jià)格便宜、使用簡(jiǎn)單的發(fā)光電子器件,廣泛應(yīng)用在價(jià)格較低的電子類(lèi)產(chǎn)品中,其中,七段數(shù)碼管最為常用。七段數(shù)碼管由7條線(xiàn)組成,以下圖所標(biāo)識(shí)的畫(huà)圖順序?yàn)闇?zhǔn)進(jìn)行程序設(shè)計(jì)。七段數(shù)碼管能夠形成128種不同狀態(tài),其中,部分狀態(tài)能夠顯示易于人們理解的數(shù)字或字母含義,因此,被廣泛使用。七段數(shù)碼管的畫(huà)圖順序2.8.2繪圖實(shí)例這里介紹使用turtle庫(kù)繪制七段數(shù)碼管的具體方法。首先導(dǎo)入turtle庫(kù)并將其重命名為t。importturtleast定義函數(shù)drawGap()用于繪制間隙,通過(guò)將畫(huà)筆抬起,并向前移動(dòng)5個(gè)單位,來(lái)實(shí)現(xiàn)間隙的繪制。defdrawGap():#繪制間隙t.penup()t.fd(5)#設(shè)置間隙大小2.8.2繪圖實(shí)例定義函數(shù)drawLine(draw)用于繪制線(xiàn)段,通過(guò)判斷參數(shù)draw的布爾值,決定是否下筆繪制線(xiàn)段。如果布爾值為T(mén)rue,則將畫(huà)筆放下,向前移動(dòng)40個(gè)單位;如果布爾值為False,則將畫(huà)筆抬起,向前移動(dòng)40個(gè)單位。然后調(diào)用drawGap()函數(shù)繪制間隙,并將畫(huà)筆右轉(zhuǎn)90度,準(zhǔn)備繪制下一段線(xiàn)。defdrawLine(draw):#繪制數(shù)碼管中的一段線(xiàn)drawGap()t.pendown()ifdrawelset.penup()t.fd(40)drawGap()t.right(90)2.8.2繪圖實(shí)例之后,我們根據(jù)所要繪制的數(shù)字和字母定義函數(shù)drawDight(s),下圖是數(shù)字和字母的七段數(shù)碼管顯示效果圖。2.8.2繪圖實(shí)例以1號(hào)線(xiàn)段為例,數(shù)字中包含它的有2、3、4、5、6、8、9,字母中包含它的有a、b、d、e、f、h、k、n、o、p、q、s、t、w、x、y、z。然后定義drawDight(s)函數(shù),根據(jù)字符s繪制七段數(shù)碼管。根據(jù)不同的字符,調(diào)用drawLine()函數(shù)繪制對(duì)應(yīng)的線(xiàn)段。通過(guò)判斷字符s的值,決定繪制哪些線(xiàn)段。每繪制完一組線(xiàn)段,將畫(huà)筆左轉(zhuǎn)90度,準(zhǔn)備繪制下一組線(xiàn)段。defdrawDight(s):#根據(jù)字符繪制七段數(shù)碼管
#繪制1號(hào)線(xiàn)段
drawLine(True)ifsin['2','3','4','5','6','8','9','a','b','d','e', 'f','h','k','n','o','p','q','s','t','w','x','y','z']elsedrawLine(False)
#繪制2號(hào)線(xiàn)段
drawLine(True)ifsin['0','1','3','4','5','6','7','8','9','a','b', 'd','g','h','i','j','k','m','n','o','q','u','v','w','x','y']elsedrawLine(False)#繪制3號(hào)線(xiàn)段drawLine(True)ifsin['0','2','3','5','6','8','9','b','c','d','e', 'g','i','j','l','o','s','t','u','v','w','y','z']elsedrawLine(False)2.8.2繪圖實(shí)例#繪制4號(hào)線(xiàn)段
drawLine(True)ifsin['0','2','6','8','a','b','c','d','e','f','g', 'h','k','l','m','n','o','p','r','t','u','v','w','z']elsedrawLine(False)
t.left(90)
#繪制5號(hào)線(xiàn)段
drawLine(True)ifsin['0','4','5','6','8','9','a','b','c','e', 'f','g','h','k','l','m','p','q','r','t','u','w','x','y']elsedrawLine(False)
#繪制6號(hào)線(xiàn)段
drawLine(True)ifsin['0','2','3','5','6','7','8','9','a','c','e', 'f','g','i','k','m','p','q','r','s']elsedrawLine(False)
#繪制7號(hào)線(xiàn)段
drawLine(True)ifsin['0','1','2','3','4','7','8','9','a','d','h', 'i','j','m','p','q','u','w','y','z']elsedrawLine(False)
t.right(180)
t.penup()
t.fd(30)2.8.2繪圖實(shí)例定義drawStr(Str)函數(shù),用于依次繪制輸入的字符串中的每個(gè)字符,通過(guò)遍歷字符串中的每個(gè)字符,調(diào)用drawDight()函數(shù)進(jìn)行繪制。defdrawStr(Str):
forxinStr:
drawDight(x)定義main()函數(shù),用于設(shè)置全局參數(shù)和執(zhí)行繪制操作。在函數(shù)中,首先通過(guò)input()函數(shù)獲取用戶(hù)輸入的一段字符,并將其賦值給變量a然后設(shè)置畫(huà)筆顏色為紅色,設(shè)置窗口大小為1280x720,隱藏畫(huà)筆,設(shè)置繪圖速度為0,即最快速度,將畫(huà)筆抬起并向后移動(dòng)400個(gè)單位(設(shè)置繪圖起點(diǎn)),設(shè)置畫(huà)筆大小為5接著調(diào)用drawStr(a)函數(shù)來(lái)繪制用戶(hù)輸入的字符。最后調(diào)用t.done()表示繪制完成2.8.2繪圖實(shí)例defmain():#全局設(shè)置a=input('請(qǐng)輸入一段字符:')t.pencolor('red')#設(shè)置畫(huà)筆的顏色t.setup(1280,720)#設(shè)置窗口的大小t.hideturtle()#隱藏畫(huà)筆t.speed(0)#設(shè)置畫(huà)圖速度t.penup()t.fd(-400)#設(shè)置繪圖起點(diǎn)t.pensize(5)#設(shè)置畫(huà)筆大小drawStr(a)t.done()最后調(diào)用main()函數(shù)來(lái)執(zhí)行整個(gè)繪制過(guò)程。main()2.8.2繪圖實(shí)例運(yùn)行代碼文件draw_seven_seg_display.py,輸入“hellopython”,就可以繪制得到如圖所示的七段數(shù)碼管效果圖本章小結(jié)計(jì)算機(jī)程序設(shè)計(jì)是構(gòu)建計(jì)算機(jī)應(yīng)用程序的過(guò)程,它涉及使用編程語(yǔ)言來(lái)編寫(xiě)指令集,這些指令告訴計(jì)算機(jī)如何執(zhí)行特定的任務(wù)或解決問(wèn)題。程序員通過(guò)邏輯思維和創(chuàng)新方法,將復(fù)雜的算法和數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化為高效的代碼,實(shí)現(xiàn)軟件功能01計(jì)算機(jī)程序設(shè)計(jì)需要借助于計(jì)算機(jī)語(yǔ)言,比如高級(jí)編程語(yǔ)言C、C++、Java、Python等。近年來(lái),Python的受歡迎程度越來(lái)越高,Python的簡(jiǎn)單語(yǔ)法以及解釋型語(yǔ)言的本質(zhì),使它成為多數(shù)平臺(tái)上寫(xiě)腳本和快速開(kāi)發(fā)應(yīng)用的首選編程語(yǔ)言02本章詳細(xì)介紹了Python語(yǔ)言的基礎(chǔ)知識(shí),通過(guò)這些內(nèi)容,讀者可以開(kāi)展基礎(chǔ)的Python程序設(shè)計(jì)林子雨副教授謝謝觀看!廈門(mén)大學(xué)附錄A:主講教師林子雨簡(jiǎn)介單位:廈門(mén)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系E-mail:ziyulin@個(gè)人網(wǎng)頁(yè):/post/linziyu數(shù)據(jù)庫(kù)實(shí)驗(yàn)室網(wǎng)站:主講教師:林子雨林子雨,男,1978年出生,博士(畢業(yè)于北京大學(xué)),全國(guó)高校知名大數(shù)據(jù)教師,入選“2021年高校計(jì)算機(jī)專(zhuān)業(yè)優(yōu)秀教師獎(jiǎng)勵(lì)計(jì)劃”。現(xiàn)為廈門(mén)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系副教授,廈門(mén)大學(xué)信息學(xué)院實(shí)驗(yàn)教學(xué)中心主任,曾任廈門(mén)大學(xué)信息科學(xué)與技術(shù)學(xué)院院長(zhǎng)助理、晉江市發(fā)展和改革局副局長(zhǎng)。中國(guó)計(jì)算機(jī)學(xué)會(huì)數(shù)據(jù)庫(kù)專(zhuān)業(yè)委員會(huì)執(zhí)行委員,中國(guó)計(jì)算機(jī)學(xué)會(huì)信息系統(tǒng)專(zhuān)業(yè)委員會(huì)執(zhí)行委員。國(guó)內(nèi)高校首個(gè)“數(shù)字教師”提出者和建設(shè)者,廈門(mén)大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)室負(fù)責(zé)人,廈門(mén)大學(xué)云計(jì)算與大數(shù)據(jù)研究中心主要建設(shè)者和骨干成員,2013年度、2017年度、2020年度和2023年度廈門(mén)大學(xué)教學(xué)類(lèi)獎(jiǎng)教金獲得者,榮獲2024年福建省高等教育教學(xué)成果獎(jiǎng)特等獎(jiǎng)(個(gè)人排名第七)、2022年福建省高等教育教學(xué)成果獎(jiǎng)特等獎(jiǎng)(個(gè)人排名第一)、2018年福建省高等教育教學(xué)成果獎(jiǎng)二等獎(jiǎng)(個(gè)人排名第一)、2018年國(guó)家精品在線(xiàn)開(kāi)放課程、2021年國(guó)家級(jí)線(xiàn)上一流本科課程、2020年國(guó)家級(jí)線(xiàn)上一流本科課程。主要研究方向?yàn)閿?shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)挖掘、大數(shù)據(jù)、云計(jì)算和物聯(lián)網(wǎng),并以第一作者身份在《軟件學(xué)報(bào)》《計(jì)算機(jī)學(xué)報(bào)》和《計(jì)算機(jī)研究與發(fā)展》等國(guó)家重點(diǎn)期刊以及國(guó)際學(xué)術(shù)會(huì)議上發(fā)表多篇學(xué)術(shù)論文。作為項(xiàng)目負(fù)責(zé)人主持的科研項(xiàng)目包括1項(xiàng)國(guó)家自然科學(xué)青年基金項(xiàng)目(No.61303004)、1項(xiàng)福建省自然科學(xué)青年基金項(xiàng)目(No.2013J05099)和1項(xiàng)中央高?;究蒲袠I(yè)務(wù)費(fèi)項(xiàng)目(No.2011121049),主持的教改課題包括1項(xiàng)2016年福建省教改課題、1項(xiàng)2016年教育部產(chǎn)學(xué)協(xié)作育人項(xiàng)目、1項(xiàng)2024年教育部產(chǎn)學(xué)協(xié)作育人項(xiàng)目。編著出版了《大數(shù)據(jù)技術(shù)原理與應(yīng)用》等13本大數(shù)據(jù)系列教材,被國(guó)內(nèi)1000多所高校采用;建設(shè)了國(guó)內(nèi)高校首個(gè)大數(shù)據(jù)課程公共服務(wù)平臺(tái),為教師教學(xué)和學(xué)生學(xué)習(xí)大數(shù)據(jù)課程提供全方位、一站式服務(wù),年訪(fǎng)問(wèn)量超過(guò)400萬(wàn)次,累計(jì)訪(fǎng)問(wèn)量超過(guò)2500萬(wàn)次。大數(shù)據(jù)系列MOOC課程入選“2023年教育部國(guó)家智慧教育公共服務(wù)平臺(tái)應(yīng)用典型案例”。附錄B:大數(shù)據(jù)學(xué)習(xí)路線(xiàn)圖大數(shù)據(jù)學(xué)習(xí)路線(xiàn)圖訪(fǎng)問(wèn)地址:/post/10164/附錄C:林子雨大數(shù)據(jù)系列教材了解全部教材信息:/post/bigdatabook/附錄D:《數(shù)字素養(yǎng)通識(shí)教程》林子雨編著《數(shù)字素養(yǎng)通識(shí)教程——大數(shù)據(jù)與人工智能時(shí)代的計(jì)算機(jī)通識(shí)教育》人民郵電出版社ISBN:978-7-115-65946-02025年1月第1版,定價(jià):59.8元
教材官網(wǎng):/post/digital-literacy/15年計(jì)算機(jī)教學(xué)生涯感悟升華,15本計(jì)算機(jī)暢銷(xiāo)教材知識(shí)凝練數(shù)字時(shí)代的大學(xué)計(jì)算機(jī)公共課教材,重構(gòu)大學(xué)計(jì)算機(jī)公共課知識(shí)體系深刻變革傳統(tǒng)大學(xué)計(jì)算機(jī)通識(shí)教育,培養(yǎng)學(xué)生計(jì)算思維、數(shù)據(jù)思維和AI思維附錄E:《大數(shù)據(jù)導(dǎo)論(通識(shí)課版,第2版)》教材高等教育出版社
2024年7月第2版ISBN:978-7-04-062466-3定價(jià):39.50元
教材官方網(wǎng)站:/post/bigdataintroduction2/0503020104引導(dǎo)學(xué)生步入大數(shù)據(jù)時(shí)代,積極投身大數(shù)據(jù)的變革浪潮之中了解大數(shù)據(jù)概念,培養(yǎng)大數(shù)據(jù)思維,養(yǎng)成數(shù)據(jù)安全意識(shí)認(rèn)識(shí)大數(shù)據(jù)倫理,努力使自己的行為符合大數(shù)據(jù)倫理規(guī)范要求熟悉大數(shù)據(jù)應(yīng)用,探尋大數(shù)據(jù)與自己專(zhuān)業(yè)的應(yīng)用結(jié)合點(diǎn)激發(fā)學(xué)生基于大數(shù)據(jù)的創(chuàng)新創(chuàng)業(yè)熱情開(kāi)設(shè)全校公共選修課的優(yōu)質(zhì)教材,本課程旨在實(shí)現(xiàn)以下幾個(gè)培養(yǎng)目標(biāo):附錄F:《大數(shù)據(jù)與人工智能導(dǎo)論(通識(shí)課版)》《大數(shù)據(jù)與人工智能導(dǎo)論(通識(shí)課版)》版次:2025年1月第1版林子雨
編著,人民郵電出版社
ISBN:978-7-115-65696-4定價(jià):59.8元
教材官網(wǎng):/post/bigdata-ai-introduction/本書(shū)詳細(xì)闡述了培養(yǎng)具有數(shù)字素養(yǎng)的綜合型人才所需要的相關(guān)知識(shí)儲(chǔ)備。作為通識(shí)類(lèi)課程教材,本書(shū)在確定知識(shí)布局時(shí),緊緊圍繞通識(shí)教育核心理念,系統(tǒng)介紹大數(shù)據(jù)、云計(jì)算、物聯(lián)網(wǎng)、人工智能、區(qū)塊鏈、元宇宙等技術(shù)的相關(guān)知識(shí),努力培養(yǎng)學(xué)生的數(shù)字素養(yǎng)。全書(shū)共9章,內(nèi)容包括大數(shù)據(jù)概述、大數(shù)據(jù)技術(shù)、大數(shù)據(jù)應(yīng)用、大數(shù)據(jù)基礎(chǔ)知識(shí)、人工智能、大模型:人工智能的前沿、AIGC應(yīng)用與實(shí)踐、新興數(shù)字技術(shù)、新興數(shù)字技術(shù)的倫理問(wèn)題。為了避免陷入空洞的理論介紹,本書(shū)在很多章節(jié)都融入了豐富的案例,這些案例就發(fā)生在我們生活的數(shù)字時(shí)代,很具有代表性和說(shuō)服力,能夠讓學(xué)生直觀感受相應(yīng)理論的具體內(nèi)涵。附錄G:《大數(shù)據(jù)導(dǎo)論(第2版)》教材林子雨編著《大數(shù)據(jù)導(dǎo)論(第2版)》人民郵電出版社
ISBN:978-7-115-64185-4定價(jià):59.80元2024年7月教材官方網(wǎng)站:/post/bigdata-introduction2/開(kāi)設(shè)大數(shù)據(jù)專(zhuān)業(yè)導(dǎo)論課的優(yōu)質(zhì)教材,本書(shū)詳細(xì)闡述了培養(yǎng)復(fù)合型大數(shù)據(jù)專(zhuān)業(yè)人才所需要的大數(shù)據(jù)相關(guān)知識(shí)。全書(shū)共10章,內(nèi)容包括:大數(shù)據(jù)概述大數(shù)據(jù)與其他新興技術(shù)的關(guān)系大數(shù)據(jù)基礎(chǔ)知識(shí)大數(shù)據(jù)應(yīng)用大數(shù)據(jù)硬件環(huán)境數(shù)據(jù)采集與預(yù)處理數(shù)據(jù)存儲(chǔ)與管理數(shù)據(jù)處理與分析數(shù)據(jù)可視化大數(shù)據(jù)分析綜合案例在大數(shù)據(jù)基礎(chǔ)知識(shí)部分,本書(shū)詳細(xì)介紹了與培養(yǎng)學(xué)生的數(shù)據(jù)素養(yǎng)相關(guān)的知識(shí),包括大數(shù)據(jù)安全、大數(shù)據(jù)思維、大數(shù)據(jù)倫理、數(shù)據(jù)共享、數(shù)據(jù)開(kāi)放和大數(shù)據(jù)交易。附錄H:《大數(shù)據(jù)技術(shù)原理與應(yīng)用(第4版)》教材《大數(shù)據(jù)技術(shù)原理與應(yīng)用——概念、存儲(chǔ)、處理、分析與應(yīng)用(第4版)》林子雨編著,人民郵電出版社
ISBN:978-7-115-64181-6定價(jià):65元2024年8月教材官方網(wǎng)站:/post/bigdata4國(guó)內(nèi)高校第一本系統(tǒng)介紹大數(shù)據(jù)知識(shí)的專(zhuān)業(yè)教材,本書(shū)系統(tǒng)介紹大數(shù)據(jù)的相關(guān)知識(shí),分為大數(shù)據(jù)基礎(chǔ)篇、大數(shù)據(jù)存儲(chǔ)與管理篇、大數(shù)據(jù)處理與分析篇、大數(shù)據(jù)應(yīng)用篇。全書(shū)共14章,內(nèi)容包含:本書(shū)在Hadoop、HDFS、HBase、MapReduce、Hive、Spark和Flink等相關(guān)章安排了入門(mén)級(jí)的實(shí)驗(yàn),以便讀者能更好地學(xué)習(xí)和掌握大數(shù)據(jù)的關(guān)鍵技術(shù)。大數(shù)據(jù)概述大數(shù)據(jù)處理架構(gòu)Hadoop分布式文件系統(tǒng)HDFS分布式數(shù)據(jù)庫(kù)HBaseNoSQL數(shù)據(jù)庫(kù)云數(shù)據(jù)庫(kù)MapReduceHadoop再探討數(shù)據(jù)倉(cāng)庫(kù)HiveSpark流計(jì)算Flink圖計(jì)算大數(shù)據(jù)應(yīng)用附錄I:《大數(shù)據(jù)基礎(chǔ)編程、實(shí)驗(yàn)和案例教程(第3版)》與《大數(shù)據(jù)技術(shù)原理與應(yīng)用(第4版)》教材配套的唯一指定實(shí)驗(yàn)指導(dǎo)書(shū)林子雨編著,清華大學(xué)出版社
ISBN:978-7-302-66922-7
定價(jià):69元
2024年8月第3版《大數(shù)據(jù)基礎(chǔ)編程、實(shí)驗(yàn)和案例教程(第3版)》深入淺出,去粗取精,豐富的代碼實(shí)例幫助快速掌握大數(shù)據(jù)基礎(chǔ)編程方法步步引導(dǎo),循序漸進(jìn),詳盡的安裝指南為順利搭建大數(shù)據(jù)實(shí)驗(yàn)環(huán)境鋪平道路0102精心設(shè)計(jì),巧妙融合,八套大數(shù)據(jù)實(shí)驗(yàn)題目促進(jìn)理論與編程知識(shí)的消化和吸收03結(jié)合理論,聯(lián)系實(shí)際,大數(shù)據(jù)課程綜合實(shí)驗(yàn)案例精彩呈現(xiàn)大數(shù)據(jù)分析全流程04附錄J:《數(shù)據(jù)采集與預(yù)處理(第2版)》詳細(xì)闡述了大數(shù)據(jù)領(lǐng)域數(shù)據(jù)采集與預(yù)處理的相關(guān)理論和技術(shù)林子雨編著,人民郵電出版社2025年1月
978-7-115-65728-2
定價(jià):69.80元教材官網(wǎng):/post/data-collection2/全書(shū)共8章,內(nèi)容包括:概述大數(shù)據(jù)實(shí)驗(yàn)環(huán)境搭建網(wǎng)絡(luò)數(shù)據(jù)采集分布式消息系統(tǒng)Kafka日志采集系統(tǒng)Flume數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)集成ETL工具Kettle使用pandas進(jìn)行數(shù)據(jù)清洗本書(shū)在網(wǎng)絡(luò)數(shù)據(jù)采集、Kafka、Flume、Kettle、pandas等重要章節(jié)安排了豐富的實(shí)踐操作,以便讀者更好地學(xué)習(xí)和掌握數(shù)據(jù)采集與預(yù)處理的關(guān)鍵技術(shù)。附錄K:《Python程序設(shè)計(jì)基礎(chǔ)教程(微課版)》教材:林子雨,趙江聲,陶繼平.《Python程序設(shè)計(jì)基礎(chǔ)教程(微課版)》人民郵電出版社,2022年2月.教材官網(wǎng)(獲取講義PPT、代碼等):
/post/python/
實(shí)驗(yàn)手冊(cè):林子雨,鄭海山.《Python程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題解答》.人民郵電出版社,2022年4月.實(shí)驗(yàn)手冊(cè)官網(wǎng)(獲取代碼等):/post/python-experiment/附錄L:《Spark編程基礎(chǔ)(Scal
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025科目一考試的真題及答案
- 湖南音樂(lè)考試題目及答案
- 體育學(xué)專(zhuān)業(yè)課考試題目及答案
- 急診搶救工作制度考試題及答案
- 永州市適應(yīng)性高考試題及答案
- 傳統(tǒng)陶瓷與新型材料衛(wèi)浴生產(chǎn)及海外企業(yè)布局試題附答案
- 智能溫控節(jié)能算法-洞察與解讀
- 2025年病理學(xué)問(wèn)答題及病案分析(附答案)
- 幼教行業(yè)合作協(xié)議
- 2025年事業(yè)單位招聘考試綜合類(lèi)無(wú)領(lǐng)導(dǎo)小組討論面試真題模擬試卷:面試考前押題卷
- 外研版(三年級(jí)起)小學(xué)英語(yǔ)單詞總表
- 2025屆四川省瀘州市高三一模語(yǔ)文試題
- 公司基本管理制度模版(3篇)
- 第五屆應(yīng)急管理普法知識(shí)競(jìng)賽考試題庫(kù)500題(含答案)
- 2024年醫(yī)療器械經(jīng)營(yíng)質(zhì)量管理規(guī)范培訓(xùn)課件
- 電氣工程及其自動(dòng)化職業(yè)規(guī)劃課件
- 2024年專(zhuān)升本考試-專(zhuān)升本考試(醫(yī)學(xué)綜合)考試近5年真題集錦(頻考類(lèi)試題)帶答案
- GB/T 4706.23-2024家用和類(lèi)似用途電器的安全第23部分:室內(nèi)加熱器的特殊要求
- CommVault備份軟件操作手冊(cè)3
- DL∕T 5863-2023 水電工程地下建筑物安全監(jiān)測(cè)技術(shù)規(guī)范
- 水質(zhì) 濁度的測(cè)定 濁度計(jì)法HJ 1075-2019方法驗(yàn)證報(bào)告
評(píng)論
0/150
提交評(píng)論