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