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