Python是一種解釋型,面向?qū)ο?,動態(tài)數(shù)據(jù)類型的高級語言
基礎(chǔ)語法
單行注釋 #
多行注釋 '''...''',"""..."""
縮進(jìn) 同個代碼塊的語句必須包含相同的縮進(jìn)空格數(shù)
多行語句 \,[] {} ()多行不需要反斜杠
input()等待輸入 ,print()打印
import/from ... import導(dǎo)入模塊
變量
變量不需要申明,在使用前必須賦值,賦值后變量才會創(chuàng)建
變量沒有類型,“類型”是變量所指內(nèi)存中對象的類型
多個變量賦值
a = b = 1 或 a, b = 1, 2
運(yùn)算符
算術(shù)運(yùn)算符
** 冪,% 取余,// 取整除
邏輯運(yùn)算符
and,or,not
標(biāo)準(zhǔn)數(shù)據(jù)類型
不可變數(shù)據(jù):Number(數(shù)字),String(字符串),List(列表)
可變數(shù)據(jù):Tuple(元組),Set(集合),Dictionary(字典)
數(shù)字
int/bool/float/complex
字符串
單雙引號完全相同,三引號可以指定多行字符串
列表
截取拼接
l[-2]
l[1:]
l = [1,2,3]
l.append()
l.count()
l.extend()
l.reverse()
l.clear()
l.copy()
max(l)/min(l)
元組
使用小括號,元組數(shù)據(jù)不能修改
除了修改元素,列表其他功能元組都有
字典
鍵必須唯一,值不必
值可取任何數(shù)據(jù)類型,鍵必須不可變(數(shù)字,字符串,元組)
創(chuàng)建空字典用
dict()或者{}訪問不存在的key會報錯
del()刪除,str(dict)以字符串表示字典
d = {'Name':'Tom', 'Age':10}
d.clear()
d.items()
d.keys() # 返回迭代器,list()轉(zhuǎn)換為列表
d.values()
集合
無序,不重復(fù)
使用
{}或者set()創(chuàng)建集合,創(chuàng)建空集合用set(),{}默認(rèn)創(chuàng)建空字典
s = {1,2,3}
s.add() # 添加元素是數(shù)字,字符串,元組或者布爾類型,不能是列表,字典,集合
s.update() # 添加元素可以是列表,字典
s.remove() # 不存在會報錯
s.discard() # 不存在不會報錯
s.clear()
s.pop() # 隨機(jī)移除
s.union() # 返回并集
s.difference() # 返回差集
控制語句
if xxx:
xxx
elif xxx:
xxx
else:
xxx
while xxx:
xxx
for i in range(5):
xxx
函數(shù)
- 不帶return相當(dāng)返回None
- 不可變類型,類似c++的值傳遞
- 可變類型,類型c++的引用傳遞
def 函數(shù)名(參數(shù)列表):
函數(shù)體
參數(shù)類型
必須參數(shù)
關(guān)鍵字參數(shù)
默認(rèn)參數(shù)
不定長參數(shù)
def test(*vartuple) # 元組形式導(dǎo)入
def test(**vardict) # 字典形式導(dǎo)入
模塊
搜索路徑,sys.path,空串代表當(dāng)前目錄
面向?qū)ο?/h2>
構(gòu)造函數(shù)__init__
類變量/成員變量,成員變量比類變量優(yōu)先級更高
pass,不想在類里添加任何屬性或方法,使用pass
super(),不用使用父類的名稱,自動從父類繼承方法和屬性
super(Child,c).XXX,用子類對象調(diào)用父類已被覆蓋的方法
錯誤和異常
try/except
ZeroDivisionError, NameError, TypeError
try:
except:
else:
finally:
-
else子句在try子句沒有發(fā)生任何異常時執(zhí)行 -
finally無論是否發(fā)生異常都會執(zhí)行 -
raise拋出異常
自定義異常繼承自Exception類
迭代器
可以記住遍歷位置
迭代器對象從集合的第一個元素開始訪問,直到所有元素都被訪問結(jié)束,只能前進(jìn),不能后退
iter()/next()
字符串,列表,元組都可以創(chuàng)建迭代器
list = [1, 2, 3, 4]
it = iter(list)
for x in it:
print()