函數基礎:內置函數
內置函數:
abs() # 取絕對值
dict() # 把一個數據轉成字典
min() # 取最小值
max() # 取最大值
bool() # 判斷括號裏面的是不是True。bool(0)和bool(False)是False,bool([ ]) #布爾一個空列表也是False。
all() # 判斷括號裏面的iterables所有元素的bool()是不是True(如果這個iterables裏面含有0,那all(iterables)肯定是False)。如果這個iterables是空的,all(iterables)也返回True。
any() # 判斷括號裏面的iterables的元素中,只要有一個元素的bool()是True, any(iterables)就返回True
dir() # 打印程序裏面所有的變量
slice(開始,結束,步長) #設置切片規則
divmod(x,y) # 返回一個元祖,元祖的形式是(x//y ,x%y)
id() # 判斷內存地址
sorted(列表)= 列表.sort() # 另外,sorted()還可以自定義一些排序的規則。(視頻中的示例看的不是很明白)
enumerate() #枚舉
bin() # 轉成2進制
eval() # 將字符串str當成有效的表達式來求值並返回計算結果(只能處理單行代碼)。 可以參考鏈接: http://blog.csdn.net/SeeTheWorld518/article/details/47983511
exec() # 功能和eval()一樣,他們的區別在: 1. exec()可以對多行代碼有效;2. eval()有返回值,但exec()沒有返回值。
如:
情況1: a = ‘1+2+3‘ res1 = eval(a) # eval()有返回值,前面可以把返回值賦給變量 print(‘res:‘,res1) print(a) # 輸出結果: # res: 6 # 1+2+3 #字符串的引號已經沒了 情況2: a = ‘1+2+3‘ res2 = exec(a) # 沒有返回值, print(‘res:‘,res2) print(a) # 輸出結果: # res: None # 由於exec()沒有返回值,賦給了變量也只能輸出None# 1+2+3
ord() # 返回在ASCII碼中的位置 如:ord(‘a‘) 為97
chr() # 跟ord()正好相反 如: chr(97) 為‘a‘
int() # 把其他類型數據轉換成整數
str() # 把其他類型數據轉換成字符串
float() # 轉換成浮點型
sum() #求和
bytearray( ) # 可以將字符串轉換成字節數組(通過這種方式可以修改原字符串)。 其他用法用法可參考: https://www.cnblogs.com/sesshoumaru/p/5979159.html
如: (用處不多)
s = ‘中文‘ s1 = bytearray(s,‘utf-8‘) #轉換字符串的時候必須指明encoding,函數將字符串使用str.encode方法轉換成字節數組 print(s1) # 輸出結果: # bytearray(b‘\xe4\xb8\xad\xe6\x96\x87‘)
map(function,iterables) # 將iterables中的每個元素進行前面的function
如:
print(list(map(lambda x:x*x, [1,2,3,4,5]))) # map完後要把它list一下,要不然打印的是map的內存地址 # 輸出結果: # [1, 4, 9, 16, 25]
filter(function,iterables) # 從iterables中過濾出能使前面函數為True的值。
如:
print(list(filter(lambda x:x>3, [1,2,3,4,5]))) # filter完之後要list一下 # 輸出結果: # [4, 5]
reduce() (2.7Python)
Python3中的reduce移到了functools裏面, 用法: reduce(function, sequence, initial=None) # --> value,
python3官方解釋: Apply a function of two arguments cumulatively to the items of a sequence,from left to right, so as to reduce the sequence to a single value. For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates ((((1+2)+3)+4)+5). If initial is present, it is placed before the itemsof the sequence in the calculation, and serves as a default when the sequence is empty.
如:
import functools print(functools.reduce(lambda x,y:x*y, [1,2,3,4])) #輸出結果: #24 import functools print(functools.reduce(lambda x,y:x*y, [1,2,3,4],10)) #輸出結果: #240 import functools print(functools.reduce(lambda x,y:x*y, [ ],5)) #輸出結果: # 5
pow(x,y) # x的y次方
print(value,......,sep = ‘ 空格 ‘,end= ‘\n‘, file = None) # print的括號裏面默認有一個end=‘\n‘ (換行符),如果你不想print完之後換行,可以在end=‘x‘裏面換成你想以什麽結束打印的符號,什麽都不寫也可以 ;還默認有一個空格,這個空格裏面的內容也可以修改(sep是separate的縮寫)。
如:
print(‘hahaha‘,‘哈哈哈‘, sep=‘-->‘, end=‘|‘) # 打印結果: # hahaha-->哈哈哈|
print也可以把內容直接打印在文件中。如:
msg = ‘又回到最初的起點,加油‘ f = open(‘print測試‘,‘w‘) print(msg,‘記憶中你青澀的臉‘,sep=‘|‘,end=‘‘,file=f) # 裏面的內容都打印在了文件中 # print結果: # msg和“記憶中你青澀的臉” 都寫在了文件‘print測試’裏面了。
tuple() #變成元祖
callable() #判斷是否可調用 (列表、字符串等的結果是False,函數的輸出結果是True。所以可以用這個判斷一個變量是不是函數)
frozenset( ) #是一個集合不可修改
vars() # 打印當前所有的變量名和其對應的值,dir()只能打印變量名
locals() # 通常在函數內部運行,打印函數內部所有的局部變量
globals() # 打印全局變量,不管globals()是在函數內還是函數外運行
zip(list1,list2) # 可以使兩個列表中的值一一對應起來放入一個小元祖內
round(數字,n) # round是約等於(五舍六入),保留小數點後n位;
hash() # 把要哈希的內容變成一個數字
set() # 變成集合
函數基礎:內置函數