1. 程式人生 > >python筆記(11.30-2.0-2.4)

python筆記(11.30-2.0-2.4)

2.0-2.4 內建函式
一個函式可以說是一個邏輯或者功能.
使用ipython檢視python的內建函式
builtin. 顯示一共有137個內建函式
也可以登入https://docs.python.org/2/library 官網去查詢

•返回數字的絕對值
abs() abs(-10) 返回的是10

•取列表最大最小值max() min() 括號內的引數一般是序列或者字串序列或者元組
max([1,2,3,4,5]) 返回最大值5

•len() 取序列或者字串長度,也可以統計字典和元組有幾個元素
•divmod() divmod(x,y) 返回2個數的商和餘數
•pow() 接受3個引數,第三個引數可選,如果是2個引數則返回 xy pow()
如果是3個引數,則返回x

y % z
•round() round(12) 返回一個浮點數12.0 round(12.123) 返回的是四捨五入的浮點數 round(number,[可選引數]) 可選引數表示保留的小數位個數

callable() 判斷一個物件是否可以被呼叫(類,函式都是可以被呼叫,變數不能被呼叫)

type() 檢視物件是什麼型別的
isinstance() 判斷物件是否是給定的型別的 返回true或false
isinstance(物件,型別) 如果物件屬於第二個引數型別 返回true
l = [1,2,3] isinstance(l,list) l是列表,返回true
第二個引數也可以是個元組,判斷第一個引數物件是否是元組中的
型別

cmp(x,y) 比較兩個物件值,如果x<y 返回-1 如果x>y 返回1 如果x=y 返回0,
還可以比較兩個字串 cmp('hello','hello')--->返回是0
range() 返回的是個數字列表
xrange() 返回的是個物件 效率比range高

常用的型別轉換函式
int() 將數字或者小數轉換成×××,也可以把字串數字轉換成××× 比如int('12') 將返回12
long() 將數字轉換成長×××
float() 轉換成浮點數, 只有一個引數
complex() 轉換成複數

str() 轉換成字串,可以把列表或者字典轉換成字串
list() 返回的是個列表,如果引數為空,則返回是空列表,如果引數是可迭代的物件,返回的是迭代的每個元素
tuple() 返回的是個元組,如果引數為空,返回空的元組,如果引數是可迭代的物件,返回的是迭代的每個元素
hex() 轉換成十六進位制 引數是int或者long 把一個數變成十六進位制的字串
oct() 轉換成8進位制
chr() chr(i) 返回的是一個字元, 這個方法返回的是asc碼對應的字元 chr() 中的引數範圍是0-256
ord() 和chr()相反 引數是字元 返回的是字元所對應的asc碼
eval() 將字串當成有效的表示式來求值 evel('0xa') 將返回10 eval("['a','b',1]") 也可以是列表

字串處理函式(方法)
字串方法 ipython中 str. 按tab就可以檢視字串可以使用的所有方法
help(str.capitalize) 檢視方法的幫助,注意和檢視函式幫助的區別
str.capitalize() 將原字串的首字母大寫後返回新的字串,注意沒有引數In [59]: s
Out[59]: 'hello'
In [60]: s.capitalize()
Out[60]: 'Hello'
str.replace() S.replace(old, new[, count]) -> string 將old替換成new字串, count表示替換次數
str.split() S.split([sep [,maxsplit]]) -> list of strings 引數可選,不加引數返回的是字串列表 預設使用空格切分 str.split() 可以在裡面指定分割符,split方法比較常用
s.join() S.join(iterable) -> string 將可迭代的物件變成字串 將列表的每個元素連結成字串

string模組
使用時 import string
string.lowercase 列印所有小寫字母 string.uppercase 列印所有大寫字母
string.captalize(s) 和 captalize()用法一致
string.replace(old) 和replace()內建函式使用一致

序列處理函式:
filter() 過濾 filter(function or None, sequence) -> list, tuple, or string filter函式有2個引數,第一個引數是一個函式或者none,第二個引數是個序列 返回的是列表,元組或者字串,如果第一個引數是none,則不對sequence進行處理,如果第一個引數是個函式,則sequence中的每一個元素被這個函式處理
def f(x):
if x%2==0:
return True
filter(f,range(1,10)) f函式對range(1,10)元素進行處理
[0, 2, 4, 6, 8] 返回列表

zip() 把一個或多個序列組成一個大的列表,列表的每一個元素都是一個元組
l1 = [1,2,3]
l2=['a','n','c']
zip(l1,l2)
[(1, 'a'), (2, 'n'), (3, 'c')] 每個列表各取一個元素組成元組,再存放到一個新的列表中去
dict(zip(l2,l1)) 還可以通過這種方法創造一個字典

map() map(function, sequence[, sequence, ...]) -> list 第一個引數是可以函式,也可以是None,後面的引數是sequence 返回一個list
map(None,l1,l2,l3)

reduce()
filter(),map(),reduce() 中第一個引數函式可以使用lambda匿名函式來寫
In [131]: filter(lambda x: x%2==0,range(10))
Out[131]: [0, 2, 4, 6, 8]
•filter(lambda x:x %2 ==0, range(10))
[0, 2, 4, 6, 8]
•map(lambda x,y:x*y, range(5),range(5)) 每個序列相應的元素相乘
[0, 1, 4, 9, 16]
•reduce(lambda x,y:x+y, range(1,101))
5050