《Python趣味編程:從入門到人工智能》是專門為青少年編寫的零基礎(chǔ)Python語言編程入門教材,由淺入深、循序漸進(jìn)地講授Python語言編程知識(shí),以解決問題為導(dǎo)向,培養(yǎng)青少年的編程思維。本書采用單元課程的形式編排內(nèi)容,分為編程基礎(chǔ)、數(shù)學(xué)與算法、游戲編程、人工智能四個(gè)單元,采用符合青少年認(rèn)知水平的趣味案例進(jìn)行教學(xué),指導(dǎo)青少年使用編程的思維方式解決身邊的問題,帶領(lǐng)青少年邁進(jìn)Python編程的奇妙世界。
本書是零起步教材,適合廣大青少年和所有對(duì)編程感興趣的初學(xué)者閱讀,也適合作為學(xué)校編程社團(tuán)和編程培訓(xùn)機(jī)構(gòu)的教材。
《Python趣味編程:從入門到人工智能》從Scratch到Python輕松進(jìn)階,手把手教你學(xué)習(xí)AI編程語言
一學(xué)就會(huì)的零基礎(chǔ)入門書;基于 Python 3.7 版本;從經(jīng)典的hello, world學(xué)起;步步為營掌握Python語言;用Python玩轉(zhuǎn)數(shù)學(xué)和算法;用Pyglet 寫捕魚達(dá)人游戲;用AI把照片變成世界名畫;感受Python編程無限魅力。
近年來,從歐美興起的新一輪青少年編程教育浪潮席卷全球,在中小學(xué)階段推廣和普及編程教育已經(jīng)成為全球各國的共識(shí)。2017年7月,國務(wù)院發(fā)布的《新一代人工智能發(fā)展規(guī)劃》提出,要在中小學(xué)階段設(shè)置人工智能相關(guān)課程,并逐步推廣編程教育。這極大地推動(dòng)了青少年編程教育在國內(nèi)的普及。在眾多的編程語言中,比較適合廣大青少年學(xué)習(xí)的編程語言是Scratch和Python。青少年可以選擇圖形化編程語言Scratch作為第一門編程語言,之后轉(zhuǎn)向具有完整編程特性的Python語言。
Python是一種通用型編程語言,它具有良好的可擴(kuò)展性和適應(yīng)性,易于學(xué)習(xí),被廣泛應(yīng)用于云計(jì)算、人工智能、科學(xué)運(yùn)算、Web開發(fā)、網(wǎng)絡(luò)爬蟲、系統(tǒng)運(yùn)維、圖形GUI、金融量化投資等眾多領(lǐng)域。無論是客戶端、云端,還是物聯(lián)網(wǎng)終端,都能看到Python的身影,可以說,Python的應(yīng)用無處不在。特別是在移動(dòng)互聯(lián)網(wǎng)和人工智能時(shí)代,Python越來越受到編程者的青睞,成為近年來熱度增長最快的編程語言之一。在TIOBE、RedMonk等世界編程語言排行榜中,Python語言名列前茅。因此,學(xué)習(xí)Python語言是一個(gè)非常不錯(cuò)的選擇。
本書特點(diǎn)
(1) 講授最新的Python 3.7版本,更適合零基礎(chǔ)的初學(xué)者。
(2) 采用單元課程的形式編排內(nèi)容,用趣味案例激發(fā)學(xué)生興趣,更適合青少年學(xué)生學(xué)習(xí)。
(3) 以解決問題為導(dǎo)向,注重培養(yǎng)編程思維,讓學(xué)生感受到編程是有用的。同時(shí),講解編程知識(shí)以夠用為原則,帶領(lǐng)初學(xué)者避開技術(shù)陷阱。
(4) 教學(xué)案例豐富多彩,有數(shù)學(xué)計(jì)算、繪畫、游戲和人工智能等,讓學(xué)生體驗(yàn)編程的樂趣。
(5) 每課均有課后練習(xí)題,讓初學(xué)者鞏固所學(xué)知識(shí)。
本書主要內(nèi)容
本書共分為四個(gè)單元。
第1單元是編程基礎(chǔ),安排了16個(gè)課程,講授結(jié)構(gòu)化與面向?qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ)知識(shí)。首先從變量、數(shù)據(jù)類型、運(yùn)算符和表達(dá)式等基本概念講起,通過編寫輸入、處理、〖1〗〖1〗輸出三步曲式的簡單程序以及學(xué)習(xí)小海龜繪圖,逐步熟悉Python開發(fā)環(huán)境和編程方式;然后講授使用順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)等編寫結(jié)構(gòu)化的程序,同時(shí)結(jié)合流程圖描述算法,逐步掌握結(jié)構(gòu)化的編程思想;最后講授利用函數(shù)進(jìn)行模塊化設(shè)計(jì)以及面向?qū)ο蟮木幊讨R(shí)。這個(gè)單元在教學(xué)案例設(shè)計(jì)上講究趣味性和知識(shí)性,通過解決去火星要多久、八十天環(huán)游地球、棋盤麥粒、愷撒加密、莫爾斯碼等問題,讓初學(xué)者感受到編程是有用的,它能夠解決身邊的問題,從而激發(fā)他們學(xué)習(xí)編程的興趣。
第2單元是數(shù)學(xué)與算法,安排了11個(gè)課程,講授基本的算法策略、排序和查找算法、分形圖和數(shù)學(xué)曲線的畫法。其中,4個(gè)課程講授使用枚舉、遞推、模擬等算法策略編程解決方程問題、邏輯推理問題等,案例有隔溝算羊、李白沽酒、水手分椰子等;5個(gè)課程講授冒泡排序、選擇排序、插入排序、快速排序和二分查找等算法;還有2個(gè)課程講授勾股樹分形圖的畫法和利用參數(shù)方程繪制玫瑰曲線圖形,在練習(xí)題中還介紹謝爾賓斯基三角形和六角星雪花分形圖、心形曲線和蝴蝶曲線的畫法。
第3單元是游戲編程,安排了4個(gè)課程,講授使用Pyglet類庫編寫游戲程序。首先是學(xué)習(xí)Pyglet編程基礎(chǔ),然后安排了3個(gè)趣味游戲項(xiàng)目,分別是公主迎圣誕、瘋狂摩托和捕魚達(dá)人。讓初學(xué)者通過編寫游戲程序進(jìn)行編程實(shí)踐,以玩中學(xué)的形式鞏固編程知識(shí)。
第4單元是人工智能,安排了4個(gè)課程,講授使用OpenCV類庫編寫人工智能技術(shù)應(yīng)用項(xiàng)目。首先學(xué)習(xí)OpenCV編程基礎(chǔ),然后安排了3個(gè)體驗(yàn)性質(zhì)的編程項(xiàng)目,分別是人臉識(shí)別、目標(biāo)檢測(cè)和繪畫大師。讓初學(xué)者通過人工智能技術(shù)的應(yīng)用,消除人工智能技術(shù)的神秘感。
推薦學(xué)習(xí)網(wǎng)站
本書以解決問題為導(dǎo)向來設(shè)計(jì)各單元課程,通過趣味案例激發(fā)學(xué)習(xí)者的編程興趣,帶領(lǐng)初學(xué)者循序漸進(jìn)地學(xué)習(xí)Python編程,避開編程中的各種技術(shù)陷阱。這有別于其他說明手冊(cè)式的教材,也是本書的特色所在,更適合初學(xué)者作為入門教材學(xué)習(xí)。限于篇幅,在本書中使用到的各種Python類庫、函數(shù)及其用法等未能作全面講解,僅介紹了其基本的用法。作為本書的一個(gè)補(bǔ)充,建議Python初學(xué)者利用免費(fèi)的學(xué)習(xí)網(wǎng)站runoob.com作為自己的Python學(xué)習(xí)手冊(cè),遇到不清楚的函數(shù)用法、語法規(guī)則等問題,可以隨時(shí)查閱網(wǎng)站中的相關(guān)內(nèi)容。runoob.com網(wǎng)站的Python教程鏈接如下:
http://www.runoob.com/python3
本書學(xué)習(xí)資源
本書中的程序基于Python 3.7版本編寫,所有示例程序均已調(diào)試通過。
讀者可以關(guān)注微信公眾號(hào)小海豚科學(xué)館獲取本書的范例程序文件、游戲素材、數(shù)據(jù)文件、課后練習(xí)題答案等資源,另外還為有需要的讀者提供了Python軟件安裝包、Windows 7 SP1升級(jí)包、AVBin庫安裝包等資源的下載方式。
讀者也可以加入QQ群26356297獲取本書資源包,還能和本書作者及網(wǎng)友在線交流,互相學(xué)習(xí)和分享經(jīng)驗(yàn)。
由于編者水平有限,書中難免有不妥之處,還請(qǐng)讀者朋友不吝賜教。請(qǐng)讀者關(guān)注作者公布的微信公眾號(hào)和QQ群,以便及時(shí)了解本書的最新勘誤信息。
本書適用對(duì)象
本書是零起點(diǎn)教材,適合廣大青少年和所有對(duì)編程感興趣的初學(xué)者閱讀,也適合作為學(xué)校編程社團(tuán)和編程培訓(xùn)機(jī)構(gòu)的教材。
讓我們開始奇妙的Python編程之旅吧!
謝聲濤
2019年3月
謝聲濤,男,38歲,小海豚科學(xué)館創(chuàng)始人,致力于線下和線上推廣青少年科普教育和編程教育。曾在多家互聯(lián)網(wǎng)公司工作,歷任程序員、研發(fā)經(jīng)理、架構(gòu)師、技術(shù)總監(jiān)等職,熟悉大規(guī)模網(wǎng)站架構(gòu)設(shè)計(jì),擅長復(fù)雜應(yīng)用系統(tǒng)開發(fā),在海量數(shù)據(jù)管理、搜索引擎技術(shù)等應(yīng)用方面有著豐富經(jīng)驗(yàn)。出版《編玩邊學(xué):Scratch趣味編程進(jìn)階妙趣橫生的數(shù)學(xué)和算法》,《Scratch編程從入門到精通》。
第1 單元編程基礎(chǔ)
第1課似曾相識(shí)遇見Python3
第2課計(jì)算圓周率神奇計(jì)算器10
第3課編程宣言hello,world14
第4課照貓畫虎剖析Python程序19
第5課去火星要多久變量和表達(dá)式25
第6課八十天環(huán)游地球函數(shù)的使用33
第7課幾何拼貼畫海龜繪圖42
第8課高燒100℃順序結(jié)構(gòu)51
第9課飛向太空選擇結(jié)構(gòu)56
第10課棋盤麥粒循環(huán)結(jié)構(gòu)67
第11課愷撒加密字符串處理78
第12課素?cái)?shù)篩法列表的使用89
第13課莫爾斯碼字典的使用100
第14課數(shù)字黑洞自定義函數(shù)108
第15課圖像轉(zhuǎn)字符畫使用庫編程120
第16課物以類聚面向?qū)ο缶幊?28
第2單元數(shù)學(xué)與算法
第17課隔溝算羊枚舉策略143
第18課李白沽酒遞推策略150
第19課水手分椰子模擬策略155
第20課誰是雷鋒邏輯推理159
第21課向右看齊冒泡排序164
第22課挑選蘋果選擇排序169
第23課整理撲克插入排序174
第24課分而治之快速排序179
第25課猜數(shù)游戲二分查找186
第26課勾股樹分形之美192
第27課玫瑰曲線數(shù)學(xué)之美200
〖1〗〖1〗第3單元游戲編程
第28課Pyglet編程初步209
第29課公主迎圣誕223
第30課瘋狂摩托239
第31課捕魚達(dá)人249
第4單元人工智能
第32課OpenCV編程初步271
第33課人臉識(shí)別279
第34課目標(biāo)檢測(cè)285
第35課繪畫大師291
參考文獻(xiàn)296
附錄A管理Python第三方模塊297
附錄BPython初學(xué)者常見錯(cuò)誤及解決方法300
后記306