2017-09-19php
寫了大半年Python代碼,感受收穫不是很大,都是現學現賣,沒有系統的瞭解過這個語言到底是什麼樣的,從頭學一遍python
提高一下。web
Python的來源編程
Python是著名的「龜叔」Guido van Rossum在1989年聖誕節期間,爲了打發無聊的聖誕節而編寫的一個編程語言。 數組
Python適用對象app
c語言與Python對比:編程語言
c比較適合編寫操縱系統等追求內存使用,能充分發揮硬件性能要要求高的程序;函數
Python 適合編寫應用程序,web,爬蟲,sdn等敏捷開發的需求(例如YouTube、Instagram,還有國內的豆瓣。不少大公司,性能
包括Google、Yahoo等,甚至NASA(美國航空航天局)都大量地使用Python。);ui
python的缺點
(一)、Python是解釋性語言,運行以前須要cpu進行解釋執行,c和Java在編譯後直接運行機器碼就好;
(二)、Python發版不能加密,這也是因爲它是解釋性語言
Python解釋器: 官方解釋器->cpython 在安裝Python後就擁有cpython解釋器,它由c編寫完成,在命令行輸入Python後就調
用cpython解釋器,咱們全部代碼豆油cPython解釋執行;Python解釋器分爲多種,咱們用到的基本都是cpython。
Python是動態語言,能夠將任意數據類型值賦給變量,可屢次賦值
1.2.1 內存機制:
建立一個變量
a=1
Python解釋器將在 : 一、內存中建立一個名爲a的變量,
二、內存中建立一個變量 1 。
三、將a指向1
也能夠把一個變量a
賦值給另外一個變量b
,這個操做其實是把變量b
指向變量a
所指向的數據,例以下面的代碼:
a = 'ABC' b = a a = 'XYZ' print(b)
最後一行打印出變量b
的內容究竟是'ABC'
呢仍是'XYZ'
?若是從數學意義上理解,就會錯誤地得出b
和a
相同,也應該是'XYZ'
,但實際上b
的值是'ABC'
,讓咱們一行一行地執行代碼,就能夠看到到底發生了什麼事:
執行a = 'ABC'
,解釋器建立了字符串'ABC'
和變量a
,並把a
指向'ABC'
:
執行b = a
,解釋器建立了變量b
,並把b
指向a
指向的字符串'ABC'
:
執行a = 'XYZ'
,解釋器建立了字符串'XYZ',並把a
的指向改成'XYZ'
,但b
並無更改:
因此,最後打印變量b
的結果天然是'ABC'
了。
Python支持多種數據類型,在計算機內部,能夠把任何數據都當作一個「對象」,而變量就是在程序中用來指向這些數據對象的,對變量賦值就是把數據和變量給關聯起來。
Python有五個標準的數據類型:
其中屬於集合類型的數據類型有 列表、元組及字典。
在Python3中,字符串以Unicode爲編碼格式,因此Python支持多語言。
對於單個字符的編碼,Python提供了ord()
函數獲取字符的整數表示,chr()
函數把編碼轉換爲對應的字符:
>>> ord('A') 65 >>> ord('中') 20013 >>> chr(66) 'B' >>> chr(25991) '文'
三、python 中的拷貝
引用和copy(),deepcopy()的區別
import copy a = [1, 2, 3, 4, ['a', 'b']] #原始對象 b = a #賦值,傳對象的引用 c = copy.copy(a) #對象拷貝,淺拷貝 d = copy.deepcopy(a) #對象拷貝,深拷貝 a.append(5) #修改對象a a[4].append('c') #修改對象a中的['a', 'b']數組對象 print 'a = ', a print 'b = ', b print 'c = ', c print 'd = ', d 輸出結果: a = [1, 2, 3, 4, ['a', 'b', 'c'], 5] b = [1, 2, 3, 4, ['a', 'b', 'c'], 5] c = [1, 2, 3, 4, ['a', 'b', 'c']] d = [1, 2, 3, 4, ['a', 'b']]
四、Python的is 和 ==的區別
is 比較內存地址 == 比較值