多年以前,編程可能還只是少數(shù)人掌握的一項(xiàng)技能。但是隨著計(jì)算機(jī)的普及和人工智能的流行,編程已經(jīng)成為一項(xiàng)男女老幼皆可學(xué)習(xí)的技術(shù)。Python是一種面向?qū)ο蟮慕忉屝统绦蛟O(shè)計(jì)語(yǔ)言,也是2017年很受歡迎的人工智能編程語(yǔ)言。
本書通過一個(gè)個(gè)有趣的程序清單,幫助讀者掌握Python編程的基礎(chǔ)知識(shí)。本書內(nèi)容分為9章:D1章介紹了在不同的操作系統(tǒng)上如何安裝Python軟件,后面章節(jié)用實(shí)例對(duì)Python編程語(yǔ)言的知識(shí)點(diǎn)進(jìn)行剖析,zui后一章展示了4個(gè)綜合性應(yīng)用案例,幫助讀者對(duì)所學(xué)進(jìn)行總結(jié)鞏固。
本書非常適合對(duì)計(jì)算機(jī)編程的基礎(chǔ)知識(shí)感興趣的青少年及初學(xué)者使用。全書程序清單的原代碼文件可以通過掃描封底上的二維碼獲取。
什么是Python?為什么它很重要?為什么它越來越流行?你心中是不是也同樣充滿了疑惑,也許這本全面的指南將給你一個(gè)wan美的答案。在這個(gè)網(wǎng)絡(luò)時(shí)代,計(jì)算機(jī)編程迅猛發(fā)展,幾乎所有的高科技都要使用編程。學(xué)習(xí)這門語(yǔ)言,你會(huì)更清楚機(jī)器人的腦回路,對(duì)人工智能、自動(dòng)駕駛等高新科技也會(huì)有更深入的理解。
2008 年,編程一詞還帶有很多負(fù)面含義。大部分人認(rèn)為程序員是住在小隔間里的薪奴,每天 8 小時(shí)盯著屏幕,艱苦地制作著令人費(fèi)解的文章。那么,以編程為愛好的人是什么樣子呢?應(yīng)該是沉迷于《龍與地下城》、胡子拉碴的極客們吧。今天,如果仍沿用以前的認(rèn)知,那就大錯(cuò)特錯(cuò)了,編程(編碼、設(shè)計(jì),或者你想用的任何詞)已經(jīng)變得很酷。人們認(rèn)識(shí)到,它并不是一種魔法,不是常人完全無(wú)法理解的東西。小孩子們?cè)诰幊,家庭主婦們?cè)诰幊蹋诵堇先艘苍诰幊踢@是一項(xiàng)迷人的工作。程序員驕傲地談?wù)撟约旱穆殬I(yè)或者愛好,而不再怕被人貼上極客的標(biāo)簽。但是,為什么會(huì)有這樣的變化,是什么促使人們的觀念有了如此大的轉(zhuǎn)變?這里有 3 個(gè)關(guān)鍵因素。首先,一些政府機(jī)構(gòu)開始意識(shí)到編程在教育中的重要性。在 20 世紀(jì) 80 年代和 90 年代初,本書作者還在英國(guó)上學(xué)時(shí),當(dāng)時(shí)計(jì)算機(jī)編程完全是選修課,很少有孩子選擇它(如前所述,選擇計(jì)算機(jī)編程的孩子立刻就被貼上極客的標(biāo)簽)。今天,英國(guó)政府鼓勵(lì)孩子們盡早學(xué)習(xí)編程并正確認(rèn)識(shí)編程,消除了與之相關(guān)的負(fù)面信息。課外編程俱樂部已經(jīng)獲得了巨大成功。
這就引出了編程越來越受歡迎的第二個(gè)原因:人們意識(shí)到這門學(xué)科傳授的是寶貴的實(shí)用技能。當(dāng)你學(xué)習(xí)編程時(shí),學(xué)到的不僅是一堆古怪的單詞和符號(hào),你將學(xué)會(huì)更富有邏輯地思考問題,區(qū)分不同事物并合理進(jìn)行分解,積極尋找解決問題的新方法。這樣學(xué)習(xí)編程的同時(shí),你還能更有效地處理許多日常的難題。最后,一種信用卡大小的計(jì)算機(jī)(樹莓派)為編程的流行起到了驚人的作用。樹莓派在全球已經(jīng)售出數(shù)百萬(wàn)套,它們可用于形形色色的任務(wù),也特別適合于學(xué)習(xí)編程。這種計(jì)算機(jī)便宜、簡(jiǎn)單,可以接入電視,并自帶現(xiàn)成的Python 編程語(yǔ)言這也是本書的主題。
是什么讓 Python 如此特別?為什么在編程語(yǔ)言如此多樣的情況下,我們要選擇它作為本書的主題?簡(jiǎn)而言之,Python 包羅萬(wàn)象。和那些看上去神秘甚至可怕的語(yǔ)言相比,Python 的代碼更容易理解,近似于自然語(yǔ)言。如果你以前嘗試過編程,受阻于一些語(yǔ)言使用的古怪符號(hào)和結(jié)構(gòu),那么在這里你就會(huì)覺得輕松多了。與此同時(shí),Python 并不是僅適合于入門開發(fā)者的語(yǔ)言。它已經(jīng)發(fā)展了數(shù)十年,經(jīng)過不斷精煉和改進(jìn),得到了大量實(shí)際應(yīng)用的支持。Python 可用于各種任務(wù),從分類文本文件的小腳本到大的圖形應(yīng)用程序均可滿足。雖然這種語(yǔ)言的核心很簡(jiǎn)單,但是通過使用許多附加模塊可以寫出更通用、強(qiáng)大的程序,我們將在本書的最后幾個(gè)章節(jié)進(jìn)行介紹。在編程學(xué)習(xí)中,很好的一件事是編程中真正與具體語(yǔ)言相關(guān)的東西很少。當(dāng)然,不同的編程語(yǔ)言有不同的特點(diǎn)和方法,但是最終它們都是要告訴 CPU計(jì)算機(jī)的中央處理器該做什么。你在通讀本書,成為高效、博學(xué)的 Python 能手之后,就能輕松地應(yīng)對(duì)其他語(yǔ)言學(xué)習(xí)其他編程語(yǔ)言也確實(shí)是成為更好的程序員的絕佳途徑。
邁克?桑德斯是一名關(guān)注計(jì)算機(jī)領(lǐng)域發(fā)展的記者、編程培訓(xùn)師和軟件開發(fā)員。他在軟件開發(fā)和各種編程語(yǔ)言的使用方面具有20多年的實(shí)踐經(jīng)驗(yàn)。他喜愛Python語(yǔ)言,并定期使用它完成小任務(wù)和大工程。此外,他還為計(jì)算機(jī)雜志撰寫了大量關(guān)于Python的文章。
第 1章 安 裝
1.1 如何安裝Python 3
1.1.1 在Windows上安裝 3
1.1.2 在MacOS上安裝 5
1.1.3 在Linux上安裝 5
1.1.4 在樹莓派上安裝 8
1.2 編寫和運(yùn)行程序 8
1.2.1 在Windows上使用 8
1.2.2 在MacOS上使用 10
1.2.3 在Linux(包括樹莓派)上使用 11
1.3 錯(cuò)誤信息的含義 12
第 2章 Python基礎(chǔ)知識(shí)
2.1 在屏幕上打印文本 15
2.2 什么是變量? 17
2.3 簡(jiǎn)單數(shù)學(xué)運(yùn)算 21
2.4 取得輸入 23
2.4.1 字符串和數(shù)值 25
2.4.2 函數(shù)中的函數(shù) 27
第3章 改變程序流程
3.1 Python的如果和但是 32
3.1.1 我們的第 一個(gè)代碼塊 33
3.1.2 多重比較 34
3.1.3 大于、小于、等于還是不等于? 35
3.2 更多條件語(yǔ)句 37
3.3 循環(huán) 41
3.3.1 while循環(huán) 42
3.3.2 循環(huán)內(nèi)部的檢查和循環(huán) 44
3.3.3 無(wú)限循環(huán)和跳出 44
3.3.4 for循環(huán) 45
第4章 用函數(shù)節(jié)約時(shí)間
4.1 創(chuàng)建簡(jiǎn)單函數(shù) 50
4.2 傳遞參數(shù) 54
4.2.1 變量和多個(gè)參數(shù) 55
4.2.2 取回?cái)?shù)據(jù) 57
4.3 變量的作用域 59
4.4 有趣的內(nèi)建函數(shù) 62
4.4.1 exec在一個(gè)程序的內(nèi)部運(yùn)行另一個(gè)程序 62
4.4.2 chr顯示復(fù)雜的字符 64
4.4.3 len獲得字符串的長(zhǎng)度 65
4.4.4 pow和round額外的數(shù)學(xué)函數(shù) 66
第5章 處理數(shù)據(jù)
5.1 什么是數(shù)據(jù)結(jié)構(gòu)? 69
5.2 元組的魔力 70
5.3 列表和字典 76
5.3.1 實(shí)時(shí)改變?cè)亍?8
5.3.2 排序、增加和刪除元素 80
5.3.3 字典 84
5.3.4 一個(gè)實(shí)例 87
5.4 數(shù)據(jù)和函數(shù) 89
第6章 保存結(jié)果
6.1 將數(shù)據(jù)保存到文件 95
6.2 讀取文本和二進(jìn)制文件 99
6.2.1 處理結(jié)構(gòu)化數(shù)據(jù) 101
6.2.2 讀取二進(jìn)制文件 103
6.3 在文件中搜索 107
6.4 處理Python數(shù)據(jù) 112
第7章 用模塊做更多的事
7.1 什么是模塊? 121
7.2 和Python捆綁的模塊 124
7.2.1 os模塊 124
7.2.2 time模塊 126
7.2.3 math和random模塊 127
7.2.4 socket模塊 130
7.3 其他實(shí)用的模塊 133
7.3.1 用Pillow操縱圖像 134
7.3.2 用Pygame編寫游戲 137
7.3.3 用Tkinter開發(fā)圖形應(yīng)用 141
第8章 自成一類
8.1 什么是類? 148
8.2 取值方法、賦值方法和邏輯 152
8.3 繼承 157
8.4 使用槽 159
第9章 示例程序
9.1 擊球游戲 163
9.2 員工目錄 166
9.3 文本編輯器 170
9.4 新聞標(biāo)題 173
附錄 挑戰(zhàn)自我的答案