Python20期-20171202-課堂總結(Python入門)
第1章 編程與編程語言
python是一門編程語言,搞明白三點:
1.1 編程目的?
計算機的發展就是為解放人力,機器是死的,所以人必須找到一種能夠被機器識別的表達方式從而把自己的思想按照這個表達方式傳遞給機器,完成機器可以自發的工作。
1.2 什麽編程語言?
上面所說的表達方式指的就是編程語言。
英語 Python
單詞 關鍵字(if while for and or)
語法 語法
作文 編程
語言是溝通的介質,而編程語言是程序員與計算機溝通的介質。在編程的世界裏,計算機更像是人的奴隸,人類編程的目的就命令奴隸去工作。
1.3 什麽編程?
按照某種編程語言的語法風格寫程序,程序在未執前就是一堆普通文件。
第2章 編程語言的分類:
程序員(奴隸主) 計算機(奴隸)
2.1 機器語言
機器語言:站在奴隸角度說計算機能聽懂的話,直接用二進制編程,直接操作硬件
優點:執行效率快
缺點:學習難度大,開發效率低
2.2 匯編語言
匯編語言:站在奴隸角度說計算機能聽懂的話,用一些英文標簽來代替一串特定的意義的二進制,還是直接操作硬件
優點:執行效率快,不如機器語言快
缺點:學習難度大,開發效率低,比機器語言降一個難度
2.3 高級語言
高級語言:站在人的角度說人話,機器無法理解,所以需要翻譯,按照翻譯方式分為:
2.3.1 編譯型
編譯型(C):相當於百度翻譯,翻譯一次,拿著該翻譯的結果去執行。
優點:執行效率高
缺點:開發效率低
2.3.2 解釋型
解釋型(Python):相當於同聲傳譯,一邊解釋一邊執行。
優點:開發效率高
缺點:執行效率低
2.4 三種語言總結
機器語言
#優點是最底層,執行速度最快
#缺點是最復雜,開發效率最低
匯編語言
#優點是比較底層,執行速度最快
#缺點是復雜,開發效率最低
高級語言
#編譯型語言執行速度快,不依賴語言環境運行,跨平臺差
#解釋型跨平臺好,一份代碼,到處使用,缺點是執行速度慢,依賴解釋器運行
機器語言、匯編語言、高級語言比較
執行效率:從高到低
開發效率:從低到高
學習難度:從難到易
執行效率不是關鍵,開發效率才是王道
第3章 主流編程語言介紹
世界上的編程語言有600多種,但真正大家主流在使用的最多二三十種,不同的語言有自己的特點和擅長領域,隨著計算機的不斷發展,新語言在不斷誕生,也同時有很多老舊的語言慢慢無人用了。有個權威的語言排名網站,可以看到主流的編程語言是哪些
*2017年11月數據(https://www.tiobe.com/tiobe-index/ )
第4章 python介紹
4.1 介紹
python的創始人為吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,Guido開始寫能夠解釋Python語言語法的解釋器。Python這個名字,來自Guido所摯愛的電視劇Monty Python’s Flying Circus。他希望這個新的叫做Python的語言,能符合他的理想:創造一種C和shell之間,功能全面,易學易用,可拓展的語言。
最新的TIOBE排行榜,Python趕超PHP占據第4, Python崇尚優美、清晰、簡單,是一個優秀並廣泛使用的語言。
Python可以應用於眾多領域,如:數據分析、組件集成、網絡服務、圖像處理、數值計算和科學計算等眾多領域。目前業內幾乎所有大中型互聯網企業都在使用Python,如:Youtube、Dropbox、BT、Quora(中國知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、騰訊、汽車之家、美團等。
4.2 目前Python主要應用領域
#1. WEB開發——最火的Python web框架Django, 支持異步高並發的Tornado框架,短小精悍的flask,bottle, Django官方的標語把Django定義為the framework for perfectionist with deadlines(大意是一個為完全主義者開發的高效率web框架)
#2. 網絡編程——支持高並發的Twisted網絡框架, py3引入的asyncio使異步編程變的非常簡單
#3. 爬蟲——爬蟲領域,Python幾乎是霸主地位,Scrapy\Request\BeautifuSoap\urllib等,想爬啥就爬啥
#4. 雲計算——目前最火最知名的雲計算框架就是OpenStack,Python現在的火,很大一部分就是因為雲計算
#5. 人工智能——誰會成為AI 和大數據時代的第一開發語言?這本已是一個不需要爭論的問題。如果說三年前,Matlab、Scala、R、Java 和 Python還各有機會,局面尚且不清楚,那麽三年之後,趨勢已經非常明確了,特別是前兩天 Facebook 開源了 PyTorch 之後,Python 作為 AI 時代頭牌語言的位置基本確立,未來的懸念僅僅是誰能坐穩第二把交椅。
#6. 自動化運維——問問中國的每個運維人員,運維人員必須會的語言是什麽?10個人相信會給你一個相同的答案,它的名字叫Python
#7. 金融分析——我個人之前在金融行業,10年的時候,我們公司寫的好多分析程序、高頻交易軟件就是用的Python,到目前,Python是金融分析、量化交易領域裏用的最多的語言
#8. 科學運算—— 你知道麽,97年開始,NASA就在大量使用Python在進行各種復雜的科學運算,隨著NumPy, SciPy, Matplotlib, Enthought librarys等眾多程序庫的開發,使的Python越來越適合於做科學計算、繪制高質量的2D和3D圖像。和科學計算領域最流行的商業軟件Matlab相比,Python是一門通用的程序設計語言,比Matlab所采用的腳本語言的應用範圍更廣泛
#9. 遊戲開發——在網絡遊戲開發中Python也有很多應用。相比Lua or C++,Python 比 Lua 有更高階的抽象能力,可以用更少的代碼描述遊戲業務邏輯,與 Lua 相比,Python 更適合作為一種 Host 語言,即程序的入口點是在 Python 那一端會比較好,然後用 C/C++ 在非常必要的時候寫一些擴展。Python 非常適合編寫 1 萬行以上的項目,而且能夠很好地把網遊項目的規模控制在 10 萬行代碼以內。另外據我所知,知名的遊戲<文明> 就是用Python寫的。
4.3 Python在一些公司的應用
# 谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬蟲、Google廣告等項目都在大量使用Python開發
# CIA: 美國中情局網站就是用Python開發的
# NASA: 美國航天局(NASA)大量使用Python進行數據分析和運算
# YouTube:世界上最大的視頻網站YouTube就是用Python開發的
# Dropbox:美國最大的在線雲存儲網站,全部用Python實現,每天網站處理10億個文件的上傳和下載
# Instagram:美國最大的圖片分享社交網站,每天超過3千萬張照片被分享,全部用python開發
# Facebook:大量的基礎庫均通過Python實現的
# Redhat: 世界上最流行的Linux發行版本中的yum包管理工具就是用python開發的
# 豆瓣: 公司幾乎所有的業務均是通過Python開發的
# 知乎: 國內最大的問答社區,通過Python開發(國外Quora)
# 春雨醫生:國內知名的在線醫療網站是用Python開發的
# 除上面之外,還有搜狐、金山、騰訊、盛大、網易、百度、阿裏、淘寶 、土豆、新浪、果殼等公司都在使用Python完成各種各樣的任務。
4.4 Python(解釋器)的發展史
# 1989年,Guido開始寫Python語言的編譯器。
# 1991年,第一個Python編譯器誕生。它是用C語言實現的,並能夠調用C語言的庫文件。從一出生,Python已經具有了:類,函數,異常處理,包含表和詞典在內的核心數據類型,以及模塊為基礎的拓展系統。
# Granddaddy of Python web frameworks, Zope 1 was released in 1999
# Python 1.0 - January 1994 增加了 lambda, map, filter and reduce.
# Python 2.0 - October 16, 2000,加入了內存回收機制,構成了現在Python語言框架的基礎
# Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 誕生
# Python 2.5 - September 19, 2006
# Python 2.6 - October 1, 2008
# Python 2.7 - July 3, 2010
# In November 2014, it was announced that Python 2.7 would be supported until 2020, and reaffirmed that there would be no 2.8 release as users were expected to move to Python 3.4+ as soon as possible
# Python 3.0 - December 3, 2008 (這裏要解釋清楚 為什麽08年就出3.0,2010年反而又推出了2.7?是因為3.0不向下兼容2.0,導致大家都拒絕升級3.0,無奈官方只能推出2.7過渡版本)
# Python 3.1 - June 27, 2009
# Python 3.2 - February 20, 2011
# Python 3.3 - September 29, 2012
# Python 3.4 - March 16, 2014
# Python 3.5 - September 13, 2015
# Python 3.6 - 2016-12-23 發布python3.6.0版
4.5 Pyhton的發展前景怎麽樣?
強烈建議看一下https://www.zhihu.com/question/22112542/answer/166053516
第5章 安裝python解釋器
Python目前已支持所有主流操作系統,在Linux,Unix,Mac系統上自帶Python環境,在Windows系統上需要安裝一下,超簡單
打開官網 https://www.python.org/downloads/windows/ 下載中心
#測試安裝是否成功
windows --> 運行 --> 輸入cmd ,然後回車,彈出cmd程序,輸入python,如果能進入交互環境 ,代表安裝成功。
#多版本共存演示
註意:在安裝目錄下找到python.exe,拷貝一份,命名為python2.exe或python3.exe,一定要保留原版,因為pip工具會調用它。
Win10安裝Python3.6和Python2.7視頻教程:
51CTO鏈接:
http://edu.51cto.com/course/10049.html
第6章 寫程序的兩種方式:
交互式環境:#進入解釋器的交互式模式:調試方便,無法永久保存代碼
即時調試
文件的方式:#腳本文件的方式(使用nodpad++演示):永久保存代碼
python3 C:\test.py
強調:python解釋器執行程序是解釋執行,即打開文件讀內容,因此文件的後綴名沒有硬性限制,但通常定義為.py結尾。
第7章 變量
7.1 什麽是變量?
變指的是“變化”,量指的反映某種狀態
7.2 為什麽要有變量?
#程序執行的本質就是一系列狀態的變化,變是程序執行的直接體現,所以我們需要有一種機制能夠反映或者說是保存下來程序執行時狀態以及狀態的變化。
#比如:
英雄的等級為1,打怪升級(變)為10
僵屍的存活狀態True,被植物打死了,於是變為False
人的名字為egon,也可以修改為Egon
7.3 如何定義變量?
#變量名(相當於門牌號,指向值所在的空間),等號,變量值
name=‘Egon‘
sex=‘male‘
age=18
level=10
name=‘egon‘
password=‘egon123‘
7.4 變量名的命名規則?
#1. 變量名只能是 字母、數字或下劃線的任意組合
#2. 變量名的第一個字符不能是數字
#3. 關鍵字不能聲明為變量名[‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘exec‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘not‘, ‘or‘, ‘pass‘, ‘print‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]
7.5 定義的方式:
駝峰式
AgeOfOldboy=53
下劃線(推薦使用)
age_of_oldboy=53
7.6 定義變量名不好的方式
#1. 變量名為中文、拼音
#2. 變量名過長
#3. 變量名詞不達意
定義變量會有:id,type,value
#1 等號比較的是value,
#2 is比較的是id
#強調:
#1. id相同,意味著type和value必定相同
#2. value相同type肯定相同,但id可能不同,如下
>>> x=‘Info Egon:18‘
>>> y=‘Info Egon:18‘
>>> id(x)
>>> id(y)
>>>
>>> x == y
True
>>> x is y
False
第8章 常量
常量即指不變的量,如pai 3.141592653..., 或在程序運行過程中不會改變的量
舉例,假如老男孩老師的年齡會變,那這就是個變量,但在一些情況下,他的年齡不會變了,那就是常量。在Python中沒有一個專門的語法代表常量,程序員約定俗成用變量名全部大寫代表常量
AGE_OF_OLDBOY = 56
#ps:在c語言中有專門的常量定義語法,const int count = 60;一旦定義為常量,更改即會報錯。
Python20期-20171202-課堂總結(Python入門)