Python - Learn Note (2)
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 運算的一條重要法則:短路計算
- 在計算
a and b
時,如果 a 是 False,則根據與運算法則,整個結果必定為 False,因此返回 a;如果 a 是 True,則整個計算結果必定取決與 b,因此返回 b。 - 在計算
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的第一個特點是查找速度快,無論dict有10個元素還是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)