Python小白學習之路(十六)—【內建函式一】
阿新 • • 發佈:2018-11-09
將68個內建函式按照其功能分為了10類,分別是:
- 數學運算(7個)
- abs() divmod() max() min() pow() round() sum()
- 型別轉換(24個)
- bool() int() float() complex() str() bytearray()
- bytes() memoryview() ord() chr() bin() oct() hex()
- tuple() list() dict() set() frozenset( ) enumerate()
- range() iter() slice() supper() object()
- 序列操作(8個)
- all() any() filter() map() next() reversed() sorted() zip()
- 物件操作(7個)
- help() dir() id() hash() type() len() ascii() format() vars()
- 反射操作(8個)
- _import__() isinstance() issubclass() hasattr() getattr() setattr() delattr() callable()
- 變數操作(2個)
- globals() locals()
- 互動操作(2個)
- print() input()
- 檔案操作(1個)
- open()
- 編譯執行(4個)
- compile() eval() exec() repr()
- 裝飾器(3個)
- property() classmethod() staticmethod()
一、數學運算類(7個)
abs()
- Return the absolute value of the argument.取絕對值
print(abs(-1)) #執行結果 1
divmod()
- divmod(x, y) -> Return the tuple (x//y, x%y).返回商和餘數
print(divmod(5, 2)) #執行結果 (2, 1)
max()
- 返回最大值
- 處理的物件為可迭代物件
- (相當於一個for迴圈取出每一個元素進行比較)
- 不同型別之間是不能進行比較的
- 每個元素進行比較時,是從每個元素的第一個位置開始依次比較
- (如果一個位置分出大小,後面的位置可以不用進行比較便可以得出比較結果)
#用法一: num_1 = [1,38,2,0,4,7] print(max(num_1)) #用法二:傳入物件為字典,預設比較的是字典的key age_dic={'age1':14, 'age2':3, 'age3':45, 'age1':18} print(max(age_dic)) print(max(age_dic.values())) # 比較的是字典的values #執行結果 age4 45
用法三:
任務:
將給定名單中年齡最大的找出來
people_list = [ {'name':'xhg','age':18}, {'name':'aaa','age':10}, {'name':'bbb','age':30}, {'name':'ccc','age':14}, ] print(max(people_list, key = lambda dic:dic['age'])) #執行結果 {'name': 'bbb', 'age': 30}
''' #程式分析 #這段程式碼的理解 max(people_list, key = lambda dic:dic['age'],實際上進行了這樣一個操作 ret = [] for item in people_list: ret.append(item['age']) print(max(ret)) '''
min()
- 返回可迭代物件的元素中的最小值或者所有引數的最小值
- 具體用法同max()函式
pow()
- Equivalent to x**y (with two arguments) or x**y % z (with three arguments)
- 兩個引數,做冪運算
- 三個引數,先做冪運算,再取餘
print(pow(2,3)) #執行結果 8 print(pow(2,3,3)) #執行結果 2
round()
- 對浮點數進行四捨五入求值
- 第二個引數為可選引數,如果不填預設取整,引數代表保留的位數
print(round(3.1415926)) print(round(3.1415926, 3)) #執行結果 3 3.142
sum()
- 對可迭代物件中的每個元素求和
- 可迭代物件中的元素型別是數值
print(sum([1, 2, 3, 4, 5])) #執行結果 15
二、型別轉換(24個)
bool()
- 根據傳入的引數的邏輯值建立一個新的布林值
- None '' () {} [] 0 ==>False
- 其餘 ==>True
print(bool(None)) print(bool('xhg')) #執行結果 False True
int()
- 根據傳入的引數建立一個整數
print(int('123')) #將字串轉化為整形 print(int(123.9)) #取整 #執行結果 123 123
float()
根據傳入的引數建立一個新的浮點數 print(float('123.78')) #將字串轉化為浮點型 print(float(123)) #將整形轉換成浮點型 #執行結果 123.78 123.0
complex()
- 根據傳入引數建立一個新的複數
- 有兩個引數:
- 第一個引數是實部;第二個引數是虛部
- 不填引數,預設輸出為 0j
- 只填一個引數 a,則輸出 a + 0j
print(complex()) print(complex(1)) print(complex(1, 2)) #執行結果 0j (1+0j) (1+2j)
str()
- 將目標引數轉化為字串
print(str(123)) print(type(str(123))) print(str([1, 2, 3, 4, 'xhg'])) print(type(str([1, 2, 3, 4, 'xhg']))) #執行結果 123 <class 'str'> [1, 2, 3, 4, 'xhg'] <class 'str'>
bytearray()
- 根據傳入的引數建立一個新的位元組陣列
- 可傳入的引數:
- 字串(使用指定編碼方式編碼);bytearray()然後使用str.encode()將字串轉換為位元組。
- 如果它是一個整數,那麼陣列將具有這個大小,並將用null位元組初始化。
- 如果它是符合緩衝區介面的物件,則將使用物件的只讀緩衝區來初始化位元組陣列。
- 如果它是可迭代的,那麼它必須是range 0 < = x < 256的整數的迭代,它被用作陣列的初始內容
a = bytearray('小夥郭', encoding = 'utf -8' ) #字串需要指定編碼方式 print(a, len(a)) b = bytearray('小夥郭', encoding = 'gbk' ) print(b, len(b)) c = bytearray([1,2,3,255]) #如果元素大於255,將會報錯 print(c, len(c)) #執行結果 bytearray(b'\xe5\xb0\x8f\xe4\xbc\x99\xe9\x83\xad') 9 bytearray(b'\xd0\xa1\xbb\xef\xb9\xf9') 6 bytearray(b'\x01\x02\x03\xff') 4
bytes()
- 根據傳入的引數建立一個新的不可變位元組陣列
- 具體用法及傳入的引數同函式bytearray()
ord()
chr()
- 返回Unicode字元對應的整數
- 返回整數所對應的Unicode字元
print(ord('d')) print(chr(100)) #執行結果 100 d
bin()整數-->2進位制字串
oct()整數-->8進位制數字符串
hex()整數-->16進位制字串
print(bin(5)) print(oct(10)) print(hex(15)) #執行結果 0b101 0o12 0xf
tuple()
- 根據傳入的引數建立一個新的元組
- 傳入的引數為空或者是可迭代物件
print(tuple()) print(tuple('123456')) print(tuple([1, 2, 'a', 'b'])) #執行結果 () ('1', '2', '3', '4', '5', '6') (1, 2, 'a', 'b')
list()
- 根據傳入的引數建立一個新的列表
- 傳入的引數為空或者是可迭代物件
print(list()) print(list('123456')) print(list([1, 2, 'a', 'b'])) #執行結果 [] ['1', '2', '3', '4', '5', '6'] [1, 2, 'a', 'b']
dict()
- 根據傳入的引數建立一個新的字典
- 可以由下列四種方式傳入引數:
- 不傳入引數,建立空字典
- 通過對映函式建立字典
- 通過鍵值對來建立字典
- 通過可迭代物件來建立字典
print(dict()) print(dict(zip(['key1', 'key2'],[1, 2]))) print(dict(key1 = 'a', key2 = 'b')) print(dict([['key1',1], ['key2','b']])) #執行結果 {} {'key1': 1, 'key2': 2} {'key1': 'a', 'key2': 'b'} {'key1': 1, 'key2': 'b'}
set()
- 根據傳入的引數建立一個新的集合
- set() -> new empty set object
- set(iterable) -> new set object
print(set()) print(set('123456')) print(set([1,2,3,'a','b'])) #執行結果 set() {'3', '1', '6', '2', '5', '4'} {1, 2, 3, 'b', 'a'}
frozenset()
- 根據傳入的引數建立一個新的不可變集合
print(frozenset()) print(frozenset('123456')) frozenset() frozenset({'5', '1', '4', '3', '6', '2'})
range()
- 根據傳入的引數建立一個新的range物件
- python3裡面,需要通過for迴圈來建立range()每一個元素
- range(a,b)-->左閉右開
- range(stop) -> range object
- range(start, stop[, step]) -> range object
for item in range(5): print(item) for item in range(10, 15): print(item) for item in range(0, 100, 20): print(item) #執行結果 0 1 2 3 4 10 11 12 13 14 0 20 40 60 80
寫在後面:
內建函式總結好多哦
今天眼睛看電腦時間太長了 累
明天繼續總結吧
今天也就總結了一半的樣子
最近發現之前的知識有些忘記了
需要返回去再看看了
開題報告寫的不是很好 今天老師要求重新寫
好好加油吧
明天就是週末啦 可以粗去吃好吃的 放鬆放鬆
更重要的 雙11 買買買