本書旨在幫助沒有編程基礎(chǔ)的讀者在較短時(shí)間內(nèi)自學(xué)Python編程。
本書特色
本書內(nèi)容力求簡(jiǎn)單易懂,重點(diǎn)在于程序案例的編寫和調(diào)試。書中精選了50個(gè)典型程序案例,希望通過案例模仿改進(jìn)創(chuàng)新的模式,使沒有編程基礎(chǔ)的讀者在短時(shí)間內(nèi)掌握Python程序設(shè)計(jì)。
考慮到讀者的學(xué)習(xí)時(shí)間有限,本書按一例一課一練習(xí)的原則編寫,最大限度地壓縮了程序設(shè)計(jì)語法的理論。讀者的學(xué)習(xí)重點(diǎn)應(yīng)當(dāng)集中在程序案例。
主要內(nèi)容
第1~9章是程序設(shè)計(jì)基礎(chǔ),按由淺到深的原則編寫,介紹了程序設(shè)計(jì)的基本概念。書中的示例程序(如【例xx】)說明程序設(shè)計(jì)的語法和基本方法,不要求讀者進(jìn)行程序編寫和調(diào)試;而書中的案例程序(如案例x:…)要求讀者編寫程序并上機(jī)實(shí)踐。
第1、2章是本書的難點(diǎn)。第1章主講實(shí)踐操作; 第2章偏重編程概念。第1章的內(nèi)容是建立一個(gè)編程的基本環(huán)境,初學(xué)者可通過掃描書中二維碼觀看視頻講解和動(dòng)畫演示來學(xué)習(xí)第1章的內(nèi)容。第2章介紹編程的基本概念和語法規(guī)范,讀者可先觀其大略,后續(xù)章節(jié)中會(huì)反復(fù)討論和應(yīng)用。
第10~18章按Python的應(yīng)用領(lǐng)域編寫,讀者可以選擇性學(xué)習(xí),以達(dá)到鞏固和熟練掌握程序設(shè)計(jì)方法的目的。
書中課程擴(kuò)展的內(nèi)容是介紹一些更加深入的知識(shí),以擴(kuò)大讀者的知識(shí)面。
本書雖然遵循簡(jiǎn)單易懂的寫作原則,但是并沒有回避一些常用專業(yè)術(shù)語和專業(yè)概念,這些術(shù)語和概念也是一個(gè)完整的程序設(shè)計(jì)的組成部分。當(dāng)然,書中也盡量用通俗化的語言和案例來解釋這些基本概念和術(shù)語。學(xué)習(xí)編程語言雖然比學(xué)習(xí)一門外語簡(jiǎn)單,但是學(xué)習(xí)畢竟不是一個(gè)輕松愉快的過程,需要讀者付出一定的時(shí)間和精力。
學(xué)習(xí)建議
程序設(shè)計(jì)和寫作文非常相似,它們都屬于思維創(chuàng)作,作品都是一種固化的思維。作文和編程都需要進(jìn)行閱讀和寫作兩項(xiàng)專業(yè)訓(xùn)練。哈佛大學(xué)語言學(xué)家斯蒂芬·平克(Steven Pinker)指出:寫作之難,在于把網(wǎng)狀的思考用樹狀結(jié)構(gòu)體現(xiàn)在線性展開的語句里。因此,學(xué)習(xí)程序設(shè)計(jì)要多閱讀優(yōu)秀的源程序,多練習(xí)編寫程序,多思考如何用程序去解決實(shí)際問題。
學(xué)習(xí)編程是一個(gè)實(shí)踐性很強(qiáng)的過程,讀者如果只看書,不動(dòng)手編寫和調(diào)試程序,是不可能學(xué)會(huì)編程的。本書案例1~案例23的代碼量大約為500行,這500行基礎(chǔ)代碼需要讀者動(dòng)手輸入和調(diào)試運(yùn)行,這是掌握Python程序設(shè)計(jì)最簡(jiǎn)單和最快捷的方法。根據(jù)作者的經(jīng)驗(yàn),通過這500行左右的代碼訓(xùn)練,讀者可以理解程序的基本概念、掌握編程的基本方法。案例24~案例50為選擇性加強(qiáng)練習(xí),代碼量大約為1100行,讀者可以選擇其中一些案例進(jìn)行編程練習(xí)。如果讀者的代碼練 量達(dá)到1000行,就可以接近熟練掌握程序設(shè)計(jì)的程度。本書的50個(gè)案例代碼約1600行,涉及Python應(yīng)用的大部分領(lǐng)域。讀者可以參照和修改這些程序案例,嘗試用這些案例解決實(shí)際問題。
代碼約定
(1) 讀者在編寫和調(diào)試書中案例程序時(shí),不必輸入程序案例中的注釋。
(2) 程序注釋中,凡有導(dǎo)入標(biāo)準(zhǔn)模塊的,說明模塊由Python自帶,不需要安裝軟件包;凡注釋有導(dǎo)入第三方包的,需要按照書中說明安裝相應(yīng)的軟件包。
(3) 本書部分程序案例調(diào)用了一些數(shù)據(jù)資源(如文件、圖片、數(shù)據(jù)集等),這些程序運(yùn)行前,需要在清華大學(xué)出版社官方網(wǎng)站下載本書提供的例題素材文件,下載后解壓縮文件,然后將得到的所有文件復(fù)制到硬盤D:\test目錄中。讀者也可自行準(zhǔn)備與案例素材大致相同的數(shù)據(jù)資源。
(4) 為了區(qū)分程序語句與程序輸出信息,本書對(duì)程序行和語法規(guī)則都標(biāo)注了行號(hào),而程序輸出信息則未標(biāo)注行號(hào),以示區(qū)別。
(5) 書中對(duì)案例程序都給出了主要英文單詞或縮寫字符的中文釋義,目的是便于初學(xué)者更好地理解程序,但是部分英文單詞在程序中的語義與日常語義有所差異。
(6) 本書案例程序均在以下環(huán)境中調(diào)試通過: 操作系統(tǒng)為中文簡(jiǎn)體Windows 10(64位); Python版本為3.1264位版; 程序編輯和調(diào)試環(huán)境為Python IDLE。
讀者反饋
非常歡迎讀者的反饋意見,它有助于我們編寫出對(duì)讀者真正有幫助的書籍。如果您對(duì)書中某個(gè)問題存有疑問或不解,請(qǐng)聯(lián)系我們,我們會(huì)盡力為您做出解答。您的反饋可以發(fā)送郵件到清華大學(xué)出版社客服郵箱: cservice@tup.tsinghua.edu.cn。
本書配套資源包括程序單詞說明、動(dòng)畫視頻、例題素材、習(xí)題代碼、Python程序運(yùn)行演示、Python漢化包、Python軟件包、程序280例、共享代碼、共享軟件、官方指南、數(shù)據(jù)資源、圖片資源、文本編碼、音頻資源等。讀者可以登錄清華大學(xué)出版社官方網(wǎng)站下載。
致謝
本書由易建勛(長沙理工大學(xué))、何斯鑠(湖南農(nóng)業(yè)大學(xué))編著。盡管我們非常認(rèn)真和努力,但由于水平有限,書中難免有疏漏之處,懇請(qǐng)各位讀者給予批評(píng)指正。
易建勛
2025年1月20日
第1章編程環(huán)境
1.1程序語言Python語言特點(diǎn)
1.2常用名詞編程的基本概念
1.3編程環(huán)境創(chuàng)建文件目錄
1.4編程環(huán)境安裝Python軟件包
1.5編程環(huán)境創(chuàng)建快捷圖標(biāo)
1.6編程環(huán)境Python shell
1.7編程環(huán)境Python IDLE
1.8編程環(huán)境Windows shell
1.9編程環(huán)境第三方軟件安裝
1.10程序異常跟蹤出錯(cuò)的程序
第2章基本語法
2.1語法程序語句書寫格式
2.2變量保存計(jì)算的中間值
2.3表達(dá)式運(yùn)算的基本元素
2.4運(yùn)算類型方法多多益善
2.5標(biāo)準(zhǔn)函數(shù)簡(jiǎn)化程序設(shè)計(jì)
案例1: 程序結(jié)構(gòu)和縮進(jìn)規(guī)范
第3章數(shù)據(jù)類型
3.1數(shù)據(jù)類型主要類型和特征
3.2數(shù)值整數(shù)和浮點(diǎn)數(shù)的運(yùn)算
3.3字符串最常用的數(shù)據(jù)類型
3.4列表功能強(qiáng)大的數(shù)據(jù)類型
3.5元組不可修改的數(shù)據(jù)類型
3.6字典鍵值對(duì)數(shù)據(jù)類型
第4章程序結(jié)構(gòu): 順序執(zhí)行
4.1導(dǎo)入語句軟件包加載
4.2賦值語句變量的賦值
4.3輸入語句從鍵盤讀取數(shù)據(jù)
4.4輸出語句信息打印到屏幕
案例2: 符號(hào)計(jì)算代數(shù)式計(jì)算
案例3: 應(yīng)用圖形二維碼生成
第5章程序結(jié)構(gòu): 選擇執(zhí)行
5.1選擇條件執(zhí)行語句
5.2選擇三元條件選擇
案例4: 雙條件選擇一元二次方程求根
案例5: 多條件選擇BMI指數(shù)計(jì)算
第6章程序結(jié)構(gòu): 循環(huán)執(zhí)行
6.1用循環(huán)處理重復(fù)性操作
6.2序列循環(huán)列表循環(huán)的執(zhí)行
6.3序列循環(huán)用函數(shù)生成序列
6.4條件循環(huán)循環(huán)中斷和退出
6.5永真循環(huán)退出不確定循環(huán)
6.6列表推導(dǎo)式簡(jiǎn)化循環(huán)結(jié)構(gòu)
案例6: 序列循環(huán)表格數(shù)據(jù)的計(jì)算
案例7: 循環(huán)嵌套打印九九乘法表
案例8: 循環(huán)嵌套打印楊輝三角數(shù)
案例9: 永真循環(huán)囚徒困境的博弈
第7章標(biāo)準(zhǔn)函數(shù)
7.1函數(shù)的類型和調(diào)用方法
7.2標(biāo)準(zhǔn)模塊隨機(jī)數(shù)函數(shù)
案例10: 轉(zhuǎn)換函數(shù)字符串轉(zhuǎn)程序
案例11: 序列打包計(jì)算銷售利潤
案例12: 隨機(jī)數(shù)用唐詩生成姓名
案例13: 隨機(jī)數(shù)蒙特卡洛法求值
第8章自定義函數(shù)
8.1函數(shù)的定義和調(diào)用
8.2函數(shù)的形參和實(shí)參
8.3全局變量和局部變量
8.4匿名函數(shù)函數(shù)的簡(jiǎn)化
案例14: 定義函數(shù)計(jì)算圓柱體體積
案例15: 可變參數(shù)多個(gè)數(shù)據(jù)累加
案例16: 遞歸函數(shù)階乘遞歸計(jì)算
案例17: 創(chuàng)建軟件包模塊的調(diào)用
案例18: 異常處理預(yù)防程序出錯(cuò)
案例19: 程序優(yōu)化精確計(jì)算圓周率
第9章文件讀寫
9.1文件目錄和路徑
9.2TXT文件讀寫模式
9.3CSV文件格式規(guī)范
案例20: TXT文件內(nèi)容讀取
案例21: TXT文件內(nèi)容寫入
案例22: CSV文件內(nèi)容讀寫
案例23: 文件內(nèi)容打印輸出
第10章圖形繪制案例
案例24: 圓和多邊形繪制
案例25: 太極圖的繪制
案例26: 愛心和花繪制
案例27: 動(dòng)態(tài)文字繪制
案例28: 繪制科赫雪花
第11章面向?qū)ο蟪绦蛟O(shè)計(jì)
11.1面向?qū)ο蟮幕靖拍?/p>
11.2構(gòu)造類和類方法
11.3創(chuàng)建對(duì)象和方法
11.4面向?qū)ο筇卣鞣庋b
11.5面向?qū)ο筇卣骼^承
11.6面向?qū)ο筇卣鞫鄳B(tài)
第12章文本處理案例
案例29: 《全唐詩》字?jǐn)?shù)和行數(shù)統(tǒng)計(jì)
案例30: 《紅樓夢(mèng)》人物出場(chǎng)數(shù)統(tǒng)計(jì)
案例31: 《全宋詞》關(guān)鍵字提取
案例32: 漢字拼音和筆畫排序
案例33: 古代詩歌的平仄標(biāo)注
第13章GUI程序案例
13.1GUI程序基本概念
13.2GUI基本設(shè)計(jì)步驟
案例34: 登錄窗口的布局
案例35: 健康指數(shù)的計(jì)算
案例36: 石頭剪刀布游戲
案例37: 簡(jiǎn)單計(jì)算器設(shè)計(jì)
第14章網(wǎng)絡(luò)爬蟲案例
案例38: 網(wǎng)頁簡(jiǎn)單爬取方法
案例39: 網(wǎng)頁復(fù)雜爬取方法
案例40: 藝術(shù)簽名網(wǎng)頁爬取
第15章語音合成案例
案例41: 文本語音朗讀
案例42: 語音天氣預(yù)報(bào)
第16章人工智能案例
案例43: 判斷古詩的作者
案例44: 人臉識(shí)別和跟蹤
第17章可視化案例
案例45: 氣溫變化圖
案例46: 餅圖的繪制
案例47: 遮罩詞云圖
案例48: 動(dòng)態(tài)條形圖
第18章游戲程序案例
18.1游戲的基本概念
18.2軟件包常用函數(shù)
案例49: 貪吃蛇
案例50: 河塘抓魚
參考文獻(xiàn)
附錄APython 3.12保留字
附錄BPython規(guī)定語法符號(hào)
附錄CPython規(guī)定運(yùn)算符號(hào)
附錄DPython常用標(biāo)準(zhǔn)函數(shù)
附錄EPython編程環(huán)境漢化
附錄FPython程序運(yùn)行過程
附錄G案例程序代碼行數(shù)
附錄HPython編程常用網(wǎng)站
附錄IPython學(xué)習(xí)資源說明
編程原則: Python之禪
編程學(xué)習(xí): 問與答