Python入門

一、編程與編程語言

  • 編程的目的:

    計算機的發明,是爲了用機器取代/解放人力,而編程的目的則是將人類的思想流程按照某種能夠被計算機識別表達方式傳遞給計算機,從而達到讓計算機能夠像人腦/電腦一樣自動執行的效果

  • 什麼使編程語言?

    上面提及的能夠被計算機所能表達方式即變成語言,語言是溝通的介質,而編程語言是程序員與計算機溝通的介質。在編程的世界裏,計算機更像是人的奴隸,人力編程的目的就是命令奴隸去工作。

  • 什麼使編程?

    編程即程序員根據需求把自己的思想流程按照某種編程語言的語法風格編寫下來,產出的結果就是包含一堆字符的文件。

    強調:程序員在未運行前跟普通文件無異,只有程序在運行時,文件所寫的字符纔有特定的語法意義

二、編程語言分類

機器語言:站在計算機(奴隸)的角度,說計算機能聽懂的語言,那就是直接用二進制編程,直接操作硬件;
彙編語言:站在計算機(奴隸)的角度,簡寫的英文標識符取代二進制去編寫程序,本質仍然是直接操作硬件;
高級語言:站在(奴隸主)的角度,說人話,即用人類的字符去編寫程序,屏蔽了硬件操作。
  • 高級語言更貼近人類語言,因而造成了:它必須被翻譯成計算機能讀懂二進制後,才能被執行,按照翻譯方式分爲:

    1、編譯型(需要編譯器,相當於用谷歌翻譯):如C,執行速度快,調試方便
    2、解釋型(需要解釋器,相當於同聲傳譯):如Python,執行速度慢,調式方便

  • 總結:

機器語言:

優點是最底層,執行速度最快
缺點是最複雜,開發效率最低

彙編語言:

優點是比較底層,執行速度最快
缺點是複雜,開發效率最低

高級語言:

 編譯型語言執行速度快,不依賴語言環境運行,跨平臺差
解釋型跨平臺好,一份代碼,到處使用,缺點是執行速度慢,依賴解釋器運行

==PS:速度不是關鍵(瓶頸理論),開發效率高才是王道==

三、Python介紹

Python的創始人爲吉多·範羅蘇姆(Guido van Rossum)。1989年聖誕節期間,Guido開始鞋能夠解釋Python語言語法的解釋器,Python這個名字,來自Guido所摯愛的電視劇Monty Python’s Flying Circus。他希望這個新的叫做Python的語言,能符合他的理想:創造一種C和Shell之間,功能全面,易學易用,可拓展的語言。
Python可以應用於衆多領域,如:數據分析、組建集成、網絡服務、圖像處理、數值計算和科學計算等衆多領域。
  • 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版

  • Python有那些種類?

    我們現在知道了Python是一門解釋型語言,代碼想運行,必須通過解釋器執行,Python的解釋器本身也可以看作是個程序(翻譯官司是哪國人不重要),這個程序是什麼語言開發的呢? 答案是好幾種語言? what? 因爲Python有好幾種解釋器,分別基於不同語言開發,每個解釋器特點不同,但都能正常運行我們的Python代碼,下面分別來看下:
    CPython:CPython是使用最廣且被的Python解釋器。本教程以CPython爲準。
    當我們從Python官方網站下載並安裝好Python 2.7後,我們就直接獲得了一個官方版本的解釋器:CPython。這個解釋器是用C語言開發的,所以叫CPython。在命令行下運行python就是啓動CPython解釋器。
    IPython
    IPython是基於CPython之上的一個交互式解釋器,也就是說,IPython只是在交互方式上有所增強,但是執行Python代碼的功能和CPython是完全一樣的。好比很多國產瀏覽器雖然外觀不同,但內核其實都是調用了IE。 CPython用>>>作爲提示符,而IPython用In [序號]:作爲提示符。
    PyPy PyPy是另一個Python解釋器,它的目標是執行速度。PyPy採用JIT技術,對Python代碼進行動態編譯(注意不是解釋),所以可以顯著提高Python代碼的執行速度。
    絕大部分Python代碼都可以在PyPy下運行,但是PyPy和CPython有一些是不同的,這就導致相同的Python代碼在兩種解釋器下執行可能會有不同的結果。如果你的代碼要放到PyPy下執行,就需要了解PyPy和CPython的不同點。
    Jython
    Jython是運行在Java平臺上的Python解釋器,可以直接把Python代碼編譯成Java字節碼執行。
    IronPython
    IronPython和Jython類似,只不過IronPython是運行在微軟.Net平臺上的Python解釋器,可以直接把Python代碼編譯成.Net的字節碼。

四、變量

  • 什麼是變量

    變量即變化的量,核心“變”與“量”二字,變即變化,量即衡量狀態。

  • 爲什麼要有變量

    程序執行的本質就是一系列狀態的變化,變是程序執行的直接體現,所以我們需要由一種機制能夠反映或者說是保存下來程序執行是狀態的變化。

  • 變量的定義規範

    變量名只能是字母、數字或下環線的任意組合
    變量名的第一個字符不能是數字
    以下關鍵字不能聲明爲變量名['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']

  • 定義方式:

    駝峯體
    AgeOfOldboy = 20
    下劃線(推薦使用)
    age_of_oldboy = 20

  • 定義變量名不好的方式

    1、變量名爲中文、拼音
    2、變量名過長
    3、變量名詞不達意

  • 定義變量會有:id、type、value

    1、等號比較的是value,
    2、is比較的是id

    強調:
    1、id相同,意味着type和value必定相同
    2、value相同type肯定相同,但id可能不同,如下:

    >> a="help:20"
    >> b="help:20"
    >> id(a)
    4330224472
    >> id(b)
    4330224528
    >> a == b
    True
    >> a is b
    False
    >>

  • 常量

    常量即指不變的量

五、用戶與程序交互

  • 在Python3中

    input:用戶輸入任何值,都存成字符串類型
    在Python2中

    input:用戶輸入類型,就存成什麼類型
    raw_input:等於Python3的input

  • 註釋

    單行註釋用#
    多行註釋用''' '''或""" """

六、基本數據類型

  • int整型

    用於標識:年齡,等級×××號,QQ號,個數
    在32位機器上,整數的位數爲32位,取值範圍爲-231~231-1,即-2147483648~2147483647
    在64位系統上,整數的位數爲64位,取值範圍爲-263~263-1,即-9223372036854775808~

  • float浮點數

    用於標識:工資,身高,體重

  • long(長整型)#(瞭解部分)

    跟C語言不同,Python的長整數沒有指定位寬,即:Python沒有限制長整數數值的大小,但實際上由於機器內存有限,我們使用的長整數數值不可能無限大。
    注意,自從Python2.2起,如果整數發生溢出,Python會自動將整數數據轉換爲長整數,所以如今在長整數數據後面不加字母L也不會導致嚴重後果了。
    注意:在Python3裏不再有long類型了,全都是int

  • complex複數型(瞭解即可)

  • 字符串

    在Python中,加了引號的字符就是字符串類型,Python並沒有字符類型
    定義:name='user' #name=str('user')

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章