1. 程式人生 > >python基礎學習(一)--資料型別

python基礎學習(一)--資料型別

Python一個 高階語言    

    2017-09-19

1.1  Python背景簡介(感謝偉大的廖雪峰大佬帶我們走上一條光頭路,嘿嘿)

寫了大半年Python程式碼,感覺收穫不是很大,都是現學現賣,沒有系統的瞭解過這個語言究竟是什麼樣的,從頭學一遍

提升一下。

Python的來源

     Python是著名的“龜叔”Guido van Rossum在1989年聖誕節期間,為了打發無聊的聖誕節而編寫的一個程式語言。 

Python適用物件

  c語言與Python對比:

    c比較適合編寫操縱系統等追求記憶體使用,能充分發揮硬體效能要要求高的程式;

    Python 適合編寫應用程式,web,爬蟲,sdn等敏捷開發的需求(例如YouTube、Instagram,還有國內的豆瓣。很多大公司,

      包括Google、Yahoo等,甚至NASA(美國航空航天局)都大量地使用Python。);

python的缺點

(一)、Python是解釋性語言,執行之前需要cpu進行解釋執行,c和Java在編譯後直接執行機器碼就好;

(二)、Python發版不能加密,這也是由於它是解釋性語言

    Python直譯器: 官方直譯器->cpython 在安裝Python後就擁有cpython直譯器,它由c編寫完成,在命令列輸入Python後就調

用cpython直譯器,我們所有程式碼豆油cPython解釋執行;Python直譯器分為多種,我們用到的基本都是cpython。

1.2 Python中的變數:

  Python是動態語言,可以將任意資料型別值賦給變數,可多次賦值

  1.2.1 記憶體機制:

    建立一個變數 

a=1

 

           Python直譯器將在 : 1、記憶體中建立一個名為a的變數,

             2、記憶體中建立一個變數 1 。

               3、將a指向1

   

    也可以把一個變數a賦值給另一個變數b,這個操作實際上是把變數b指向變數a所指向的資料,例如下面的程式碼:

    
a = 'ABC'
b = a
a = 'XYZ'
print(b)

 

    最後一行打印出變數b的內容到底是'ABC'呢還是'XYZ'?如果從數學意義上理解,就會錯誤地得出ba相同,也應該是'XYZ',但實際上b的值是'ABC',讓我們一行一行地執行程式碼,就可以看到到底發生了什麼事:

    執行a = 'ABC',直譯器建立了字串'ABC'和變數a,並把a指向'ABC'

    py-var-code-1

    執行b = a,直譯器建立了變數b,並把b指向a指向的字串'ABC'

    py-var-code-2

    執行a = 'XYZ',直譯器建立了字串'XYZ',並把a的指向改為'XYZ',但b並沒有更改:

    py-var-code-3

    所以,最後列印變數b的結果自然是'ABC'了。

Python支援多種資料型別,在計算機內部,可以把任何資料都看成一個“物件”,而變數就是在程式中用來指向這些資料物件的,對變數賦值就是把資料和變數給關聯起來。

Python有五個標準的資料型別:

  • Numbers(數字)
  • String(字串)
  • List(列表)
  • Tuple(元組)
  • Dictionary(字典)

其中屬於集合型別的資料型別有 列表、元組及字典

2.1 Python字串

  在Python3中,字串以Unicode為編碼格式,所以Python支援多語言。

  對於單個字元的編碼,Python提供了ord()函式獲取字元的整數表示,chr()函式把編碼轉換為對應的字元:

>>> ord('A')
65
>>> ord('')
20013
>>> chr(66)
'B'
>>> chr(25991)
''

 

 

 3、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']]

 

4、Python的is 和 ==的區別 

  is 比較記憶體地址 == 比較值