時至今日,Python問世至今,從無人知曉到風靡全球之間經歷了近30年。前端
在這期間,Python究竟是怎麼樣火起來的呢?今天和你們一塊兒來看看。vue
點燃Python的第一把火node
你可能第一次對Python產生好奇心理的是由於這句話——人生苦短,我用Pythonpython
這句話來自於ANSI C++協會成員之一的Bruce Eckel,原話爲「Life is short, you need Python」react
相信不少C++、Java開發者都看過這位大牛的書,他的話是絕對具有權威的。他只是簡單的說出了內心話,今後這句話被傳遍大江南北。git
而這僅僅是點燃Python的第一把火。github
點燃Python的第二把火面試
在2012年以前,Python就已經悄悄的走進了中國,當時有一部分中國的互聯網企業用它來構建部分Web接口,不只如此,在美國一些知名的企業也採用Python做爲開發Web的首選語言,例如YouTube和Google算法
固然,這一部分功勞也歸功於大名鼎鼎的Django和Flask框架。編程
而這把火還不夠,此時Python尚未走進公衆視線。
第三把火,雲計算的崛起
2012年到2015年是雲計算、大數據、虛擬這三大技術最火的時候,也就是那時候開始,Python正式進入公衆視野。
點起這三把火的角色分別是OpenStack雲架構,Hadoop分佈式大數據架構、Vmware vSphere/Xen/Kvm虛擬機服務。
而更重要的是,這三個角色的官方都推薦用Python語言進行開發和配置。
與此同時,你們都發現Python確實簡單好用,各大企業也紛紛要求工程師們應該掌握Python,而不只僅運維工程師,甚至要求DBA都要求掌握Python。
不得不說,Python在Linux上正在慢慢的代替傳統的Perl和Shell,而這也並不是偶然。
第四把火——人工智能
人工智能大概是在2016年開始火的,原由僅僅是由於Google團隊開發出的AlphaGo(阿爾法圍棋),AlphaGo是史上第一個戰勝職業圍棋選手的AI算法,算法原理是機器學習。
而Python是機器學習的首選語言,有關AI人工智能,Python有着至關豐富的框架包,例如AIMA/pyDatalog/SimpleAI框架,PyBrain/PyML/MDP-Toolkit能夠進行機器學習,Requests/Scrapy、Selenium能夠進行數據獲取,NLTK/NumPy/Pandas/Sklearn能夠進行數據處理等等
第五把火——Visual Studio2017
多是微軟的工程師們也看不下去了,微軟的Visual Studio2017正式支持Python語言。
能獲得微軟的認同真不是件簡單的事,在Windows龐大的用戶羣面前,Python想不火也難啊。
因爲這5把火,python愈加紅火。因而有不少開源python教程誕生,駱昊老師的《Python - 100天重新手到大師》講得很是詳細。
教程內容以下:
Day01~15 - Python語言基礎
Day01 - 初識Python
- Python簡介 - Python的歷史 / Python的優缺點 / Python的應用領域
- 搭建編程環境 - Windows環境 / Linux環境 / MacOS環境
- 從終端運行Python程序 - Hello, world / print函數 / 運行程序
- 使用IDLE - 交互式環境(REPL) / 編寫多行代碼 / 運行程序 / 退出IDLE
- 註釋 - 註釋的做用 / 單行註釋 / 多行註釋
Day02 - 語言元素
- 程序和進制 - 指令和程序 / 馮諾依曼機 / 二進制和十進制 / 八進制和十六進制
- 變量和類型 - 變量的命名 / 變量的使用 / input函數 / 檢查變量類型 / 類型轉換
- 數字和字符串 - 整數 / 浮點數 / 複數 / 字符串 / 字符串基本操做 / 字符編碼
- 運算符 - 數學運算符 / 賦值運算符 / 比較運算符 / 邏輯運算符 / 身份運算符 / 運算符的優先級
- 應用案例 - 華氏溫度轉換成攝氏溫度 / 輸入圓的半徑計算周長和麪積 / 輸入年份判斷是不是閏年
Day03 - 分支結構
- 分支結構的應用場景 - 條件 / 縮進 / 代碼塊 / 流程圖
- if語句 - 簡單的if / if-else結構 / if-elif-else結構 / 嵌套的if
- 應用案例 - 用戶身份驗證 / 英制單位與公制單位互換 / 擲骰子決定作什麼 / 百分制成績轉等級制 / 分段函數求值 / 輸入三條邊的長度若是能構成三角形就計算周長和麪積
Day04 - 循環結構
- 循環結構的應用場景 - 條件 / 縮進 / 代碼塊 / 流程圖
- while循環 - 基本結構 / break語句 / continue語句
- for循環 - 基本結構 / range類型 / 循環中的分支結構 / 嵌套的循環 / 提早結束程序
- 應用案例 - 1~100求和 / 判斷素數 / 猜數字遊戲 / 打印九九表 / 打印三角形圖案 / 猴子吃桃 / 百錢百雞
Day05 - 構造程序邏輯
- 基礎練習 - 水仙花數 / 完美數 / 五人分魚 / Fibonacci數列 / 迴文素數
- 綜合練習 - Craps賭博遊戲
Day06 - 函數和模塊的使用
- 函數的做用 - 代碼的壞味道 / 用函數封裝功能模塊
- 定義函數 - def語句 / 函數名 / 參數列表 / return語句 / 調用自定義函數
- 調用函數 - Python內置函數 / 導入模塊和函數
- 函數的參數 - 默認參數 / 可變參數 / 關鍵字參數 / 命名關鍵字參數
- 函數的返回值 - 沒有返回值 / 返回單個值 / 返回多個值
- 做用域問題 - 局部做用域 / 嵌套做用域 / 全局做用域 / 內置做用域 / 和做用域相關的關鍵字
- 用模塊管理函數 - 模塊的概念 / 用自定義模塊管理函數 / 命名衝突的時候會怎樣(同一個模塊和不一樣的模塊)
Day07 - 字符串和經常使用數據結構
- 字符串的使用 - 計算長度 / 下標運算 / 切片 / 經常使用方法
- 列表基本用法 - 定義列表 / 用下表訪問元素 / 下標越界 / 添加元素 / 刪除元素 / 修改元素 / 切片 / 循環遍歷
- 列表經常使用操做 - 鏈接 / 複製(複製元素和複製數組) / 長度 / 排序 / 倒轉 / 查找
- 生成列表 - 使用range建立數字列表 / 生成表達式 / 生成器
- 元組的使用 - 定義元組 / 使用元組中的值 / 修改元組變量 / 元組和列表轉換
- 集合基本用法 - 集合和列表的區別 / 建立集合 / 添加元素 / 刪除元素 / 清空
- 集合經常使用操做 - 交集 / 並集 / 差集 / 對稱差 / 子集 / 超集
- 字典的基本用法 - 字典的特色 / 建立字典 / 添加元素 / 刪除元素 / 取值 / 清空
- 字典經常使用操做 - keys()方法 / values()方法 / items()方法 / setdefault()方法
- 基礎練習 - 跑馬燈效果 / 列表找最大元素 / 統計考試成績的平均分 / Fibonacci數列 / 楊輝三角
- 綜合案例 - 雙色球選號 / 井字棋
Day08 - 面向對象編程基礎
- 類和對象 - 什麼是類 / 什麼是對象 / 面向對象其餘相關概念
- 定義類 - 基本結構 / 屬性和方法 / 構造器 / 析構器 / __str__方法
- 使用對象 - 建立對象 / 給對象發消息
- 面向對象的四大支柱 - 抽象 / 封裝 / 繼承 / 多態
- 基礎練習 - 定義學生類 / 定義時鐘類 / 定義圖形類 / 定義汽車類
Day09 - 面向對象進階
- 屬性 - 類屬性 / 實例屬性 / 屬性訪問器 / 屬性修改器 / 屬性刪除器 / 使用__slots__
- 類中的方法 - 實例方法 / 類方法 / 靜態方法
- 運算符重載 - add / sub / or /getitem / setitem / len / repr / gt / lt / le / ge / eq / ne / contains
- 類(的對象)之間的關係 - 關聯 / 繼承 / 依賴
- 繼承和多態 - 什麼是繼承 / 繼承的語法 / 調用父類方法 / 方法重寫 / 類型斷定 / 多重繼承 / 菱形繼承(鑽石繼承)和C3算法
- 綜合案例 - 工資結算系統 / 圖書自動折扣系統 / 自定義分數類
Day10 - 圖形用戶界面和遊戲開發
- 使用tkinter開發GUI
- 使用pygame三方庫開發遊戲應用
- 「大球吃小球」遊戲
更多內容請自行到github查看
github.com/jackfrued/P…
經典前端面試題每日更新,歡迎參與討論,地址:github.com/daily-inter…
更多angular1/2/4/五、ionic1/2/三、react、vue、微信小程序、nodejs等技術文章、視頻教程和開源項目,請關注微信公衆號——全棧弄潮兒。