1. 程式人生 > >Python - Learn Note (2)

Python - Learn Note (2)

由於 art 賦值語句 不存在 定義 內容 變量 set 空格

Python基本數據類型

整數、浮點數(浮點數也就是小數,之所以稱為浮點數,是因為按照科學記數法表示時,一個浮點數的小數點位置是可變的)、字符串(字符串是以‘‘""括起來的任意文本)、布爾值、空值(空值是Python裏一個特殊的值,用None表示)

print語句

print語句也可以跟上多個字符串,用逗號“,”隔開,就可以連成一串輸出,遇到逗號“,”會輸出一個空格;使用“+”拼接不會產生空格

Python註釋

Python的註釋以#開頭,後面的文字直到行尾都算註釋

Python變量

變量是用一個變量名表示,變量名必須是大小寫英文、數字和下劃線(_)的組合,且不能用數字開頭;

在Python中,等號=

是賦值語句,可以把任意數據類型賦值給變量,同一個變量可以反復賦值,而且可以是不同類型的變量;這種變量本身類型不固定的語言稱之為動態語言;

示例  a = 123     # a是整數    
     a = ‘imooc‘   # a變為字符串

Python中raw字符串與多行字符串

在字符串前面加個前綴 r ,表示這是一個 raw 字符串,裏面的字符就不需要轉義了。

但是r‘...‘表示法不能表示多行字符串,也不能表示包含"的字符串

多行字符串,可以用‘‘‘...‘‘‘表示:

‘‘‘Line 1
Line 2
Line 3‘‘‘

在多行字符串前面添加 r ,把這個多行字符串也變成一個raw字符串

Python中Unicode字符串

字符串的編碼問題:因為計算機只能處理數字,如果要處理文本,就必須先把文本轉換為數字才能處理(字節編碼表)。
以Unicode表示的字符串用u‘...‘表示,比如:print u‘中文‘

Unicode字符串除了多了一個 u 之外,與普通字符串沒啥區別,轉義字符、raw字符串和多行表示法仍然有效;

如果中文字符串在Python環境下遇到 UnicodeDecodeError,這是因為.py文件保存的格式有問題。可以在第一行添加註釋 # -*- coding: utf-8 -*-

目的是告訴Python解釋器,用UTF-8編碼讀取源代碼。

Python中布爾類型

布爾類型運算:與運算(and:只有兩個布爾值都為 True 時,計算結果才為 True。

或運算(or):只要有一個布爾值為 True,計算結果就是 True。

非運算(not:把True變為False,或者把False變為True。

布爾類型還可以與其他數據類型做 and、or和not運算,Python把0空字符串‘‘None看成 False,其他數值和非空字符串都看成True;

and or 運算的一條重要法則:短路計算

  1. 在計算 a and b 時,如果 a 是 False,則根據與運算法則,整個結果必定為 False,因此返回 a;如果 a 是 True,則整個計算結果必定取決與 b,因此返回 b。
  2. 在計算 a or b 時,如果 a 是 True,則根據或運算法則,整個計算結果必定為 True,因此返回 a;如果 a 是 False,則整個計算結果必定取決於 b,因此返回 b。

Python列表:list

list是一種有序的集合(元素是按照順序排列),可以隨時添加和刪除其中的元素。

直接用 [ ] 把list的所有元素都括起來,就是一個list對象。
由於Python是動態語言,所以list中包含的元素並不要求都必須是同一種數據類型,我們完全可以在list中包含各種數據:L = [‘Michael‘, 100, True]
通過索引來獲取list中的指定元素。如:L[0]
倒序索引: 我們可以用 -1 這個索引來表示最後一個元素:L[-1]

添加新的元素: 第一個辦法是用 list 的 append() 方法,把新同學追加到 list 的末尾;

第二個方法是用list的 insert()方法,它接受兩個參數,第一個參數是索引號,第二個參數是待添加的新元素;

pop()方法刪掉list的最後一個元素,pop(index)方法刪掉list中指定索引的元素,並且它還返回這個元素;

對list中的某一個索引賦值,就可以直接用新的元素替換掉原來的元素,list包含的元素個數保持不變。

Python元組:tuple

tuple是另一種有序的列表。tuple和list非常類似,但是,tuple一旦創建完畢,就不能修改。

創建tuple和創建list唯一不同之處是用( )替代了[ ]

定義單元素的tuple: 單元素tuple要多加一個逗號“,”,避免歧義; 
t = (1,) 在打印單元素tuple時,也自動添加了一個“,”,為了更明確地告訴你這是一個tuple。多元素 tuple 加不加這個額外的“,”效果是一樣的:

tuple所謂的不變是說,tuple的每個元素,指向永遠不變。即指向‘a‘,就不能改成指向‘b‘,指向一個list,就不能改成指向其他對象,但指向的這個list本身是可變的!

Python之條件判斷

if 語句後接表達式,然後用:表示代碼塊開始。

if ... else ... 語句,else 後面有個“:”

if ... 多個elif ... else ... 的結構,一次寫完所有的規則;

Python之循環

for 循環就可以依次把list或tuple的每個元素叠代出來:

L = [‘Adam‘, ‘Lisa‘, ‘Bart‘]
for name in L:
    print name

while 循環,while 循環不會叠代 list 或 tuple 的元素,而是根據表達式判斷循環是否結束。

N = 10
x = 0
while x < N:
    print x
    x = x + 1

break語句退出循環

continue跳過後續循環代碼,繼續下一次循環。

Python之dict

花括號 {} 表示這是一個dict,然後按照 key: value, 寫出來即可。最後一個 key: value 的逗號可以省略。使用 d[key] 的形式來查找對應的 value;

判斷key是否存在:用 in 操作符    ‘Paul‘ in d

使用dict本身提供的一個get 方法,在Key不存在的時候,返回None

dict的第一個特點是查找速度快,無論dict10個元素還是10萬個元素,查找速度都一樣。而list的查找速度隨著元素增加而逐漸下降。缺點是占用內存大,還會浪費很多內容

dict的第二個特點就是存儲的key-value序對是沒有順序的;

dict的第三個特點是作為 key 的元素必須不可變,Python的基本類型如字符串、整數、浮

點數都是不可變的,都可以作為 key。但是list是可變的,就不能作為 key。

Python集合之set

創建 set 的方式是調用 set() 並傳入一個 list,list的元素將作為set的元素:

s = set([‘A‘, ‘B‘, ‘C‘])

set內部存儲的元素是無序的。set不能包含重復的元素,會自動去掉重復的元素;

訪問 set中的某個元素實際上就是判斷一個元素是否在set中。(用in操作符判斷);

添加元素時,用set的add()方法:如果添加的元素已經存在於set中,add()不會報錯;

刪除set中的元素時,用set的remove()方法,如果元素不存在set中,remove()會報錯;

Python之函數

定義一個函數要使用 def 語句,依次寫出函數名、括號、括號中的參數和冒號:,然後,在縮進塊中編寫函數體,函數的返回值用 return 語句返回。return None可以簡寫為return。

Python的函數返回多值其實就是返回一個tuple在語法上,返回一個tuple可以省略括號;

讓一個函數能接受任意個參數,我們就可以定義一個可變參數:可變參數的名字前面有個 * 號,我們可以傳入0個、1個或多個參數給可變參數:def fn(*args):

Python - Learn Note (2)