python基礎教程 學習總結
1. 匯入模組
「模組.函式」(優先使用)
importmath
math.sqrt(9)
在確定不會匯入多個同名函式時,可以使用 「from 模組 import 函式」 方式
from math importsqrt
sqrt(9)
還可以使用變數來引用函式
foo=math.sqrt
foo(9)
2. 字串表示 str repr
str() 輸出對使用者比較友好
>>> print str(10000l)10000
repr() 輸出對python直譯器比較友好,該函式得到的字串通常可以用來重新獲得該物件,即 obj == eval(repr(obj))
>>> print repr(10000l)10000l
3. 列表可以修改,元組不能修改。一般來說,在幾乎所有情況下列表都可以替代元組(例外情況是使用元組作為字典的鍵,因為鍵不能修改)。
4. 列表 extend()與連線操作
extend() 修改了被擴充套件的序列。
>>> a=[1,2,3]>>> b=[4,5,6]>>>a.extend(b)>>>a
[1,2,3,4,5,6]
連線+操作則返回乙個全新的列表,不修改原列表。
>>> a=[1,2,3]>>> b=[4,5,6]>>> a+b>>> [1,2,3,4,5,6]>>>a
[1,2,3]
5. 列表排序 sort() 和 sorted()
sort() 用於在原位置對列表進行排序。
>>> x=[4,6,5]>>>x.sort()>>>x
[4,5,6]
>>> y=x.sort()
>>> print y
none
sorted() 不是原地操作
>>> x=[4,6,5]>>> y=sorted(x)>>>x
[4,6,5]>>>y
[4,5,6]
6. 元組表示
乙個元組的值必須加個逗號
>>> 42
>>> (42)42
>>> 42,
(42,)
7. 格式化字串,使用%實現
>>> "%s plus %s equals %s" % (1,2,3)5
>>> phone =
>>> 'his number is %(tom)' % phone
8. 字串常用方法
find(), 查詢子串
split(), 切割字串
join(), 是split()的逆方法
>>> '+'.join(['1','2','3'])1+2+3
replace(), 替換所有匹配的字串
translate(), 與replace()類似,只是translate()只處理單個字元,並可以同時進行多個替換。
>>> from string importmaketrans>>> table = maketrans('ts','kz')>>> 'this is a test'.translate(table)'khiz iz a kezk'
strip(), 去除兩側指定的字元(預設為空格)
9. 字典方法
clear(), 清空字典, 原地操作
copy(), 淺複製 ; deepcopy(), 深複製
get(), 訪問乙個不存在的鍵時不會報異常,返回none
>>> d={}>>> print d['name']
traceback (most recent call last):
file"", line1, in?
keyerror:'name'
>>> print d.get('name')
>>> none
items(), 返回鍵值對的列表形式; iteritems(), 返回鍵值對的迭代器物件, 使用更高效
keys(), 返回鍵的列表形式; iterkeys(), 返回鍵的迭代器物件
10. 序列解包 (將多個值的序列解開,放到變數的序列中)
多個賦值同時進行以及交換
>>> x,y,z = 1,2,3
>>> printx,y,z1,2,3
>>> x,y =y,x
>>> print x,y,z
2,1,3
>>> value = 1,2,3
>>> value
(1,2,3)
>>> x,y,z = value
>>> x
>>> a,b,*rest = [1,2,3,4]
>>> rest
[3,4]
11. x==y 相等性(值相等); x is y 同一性(同乙個物件)
三元運算子 :a if b else c (不用引入臨時變數)
12. 迭代工具
zip 並行迭代
zip可以應付不等長的序列,當最短的序列用完後就會停止
>>> name = ['a','b','c']>>> age = [2,3]>>>zip(name , age)
[('a',2),('b',3)]
enumerate(), 迭代序列中的物件同時獲取當前物件的索引
for index,string inenumerate(strings):if '***' instring:
strings[index]= 'find'
reversed() 非原地翻轉 ; reverse() 原地翻轉
13. 迴圈相關
while true/break 習語
迴圈中的else子句
當迴圈內使用break時,通常是因為找到了某物或某事發生了,但有時候想要在沒有跳出前做些事情。
故在迴圈中沒有呼叫到break時會執行else子句。
for n in range(100):
...if***:
...break
else: #與for迴圈對齊
14. 列表推倒式
>>> [x*x for x in range(10) if x %3 ==0]
[0,9,36,81]>>> [(x,y) for x in range(1) for y in range(2)] #最外層使用圓括號不會得到"元組推導式"
[(0,0),(0,1)]
15. 使用del刪除
>>> x=[2]>>> y =x>>> delx>>>y
[2]刪除x後,y並不會被刪除。del刪除的只是名稱,而不是列表本身。python中是沒有辦法刪除值的,也不需要考慮。當某個值不再使用時,python直譯器會負責記憶體的**。
16. exec(),動態執行乙個字串的語句
>>> exec "print 'hello,world'"
hello,world
eval(),計算以字串形式書寫的python表示式
>>> eval("8+9")17
17. 命令空間(todo)
18.
python面試總結 Python面試題總結
文件 為 從網路收集整理 word 版本可編輯 文件 為 從網路收集整理 word 版本可編輯 1.python 執行緒池原理?我理解為執行緒池是乙個存放很多執行緒的單位,同時還有乙個對應的任務佇列。整個執行過程其實就是使用執行緒池中已有有限的執行緒把任務佇列中的任務做完。這樣做的好處就是你不需要為...
python協議 Python 協議小總
每個程式語言都有自己的最佳實踐.通常你不能套用別的語言來寫出pythonic的 python 是一門初學簡單,越學越難的語言.在python的世界中,萬物皆物件.當我們說某個物件是什麼型別時,在根本上其實指的是 這個物件滿足了該型別的特定介面規範,可以被當成這個型別來使用.如何定義乙個物件的特定介面...
python資料引數 python 的引數總結
一 形參和實參 函式引數的作用是傳遞資料給函式使用 在使用的過程中,引數有兩種形式 形式引數和實際引數 形參 定義函式的引數 實參 呼叫函式時的引數 根據實際引數型別不同,將實際引數傳遞給形參的方式有兩種 值傳遞和引用傳遞 值傳遞 實參為不可變物件,傳遞給形參後,形參的值改變,實參值不變。如 fun...