1. 程式人生 > >內置函數,正在整理中。

內置函數,正在整理中。

obj rec oct 參數類型 屬性 序列 pri 正在 int

Python3中的68個內置函數,我必須要好好總結下。以下是參考文獻及大神的博客和自己理解的總結分類。

內置函數大體分為數學運算,類型轉換,序列操作,對象操作,反射操作,變量操作,交互操作,文件操作,編譯執行,裝飾器。

數學運算(7個)

abs:求數值的絕對值

>>>print(abs(-2))
2

divmod:返回兩個數值的商和余數

>>>ret = divmod(5,2)   ##下面省略賦值打印
>>>print(ret) (
2,1) >>>divmod(5,5,2) (2.0,1.5)

max:返回可叠代對象中的元素中的最大值或者所有參數的最大值

>>> max(1,2,3) # 傳入3個參數 取3個中較大者
>>> max(1234) # 傳入1個可叠代對象,取其最大元素值
4

>>> max(-1,0) # 數值默認去數值較大者
>>> max(-1,0,key = abs) # 傳入了求絕對值函數,則參數都會進行求絕對值後再取較大者
-1

min:返回可叠代對象中的元素中的最小值或者所有參數的最小值

>>> min(1,2,3) # 傳入3個參數 取3個中較小者
>>> min(1234) # 傳入1個可叠代對象,取其最小元素值
1 >>> min(-1,-2) # 數值默認去數值較小者 -2 >>> min(-1,-2,key = abs) # 傳入了求絕對值函數,則參數都會進行求絕對值後再取較小者 -1

pow:返回兩個數值的冪運算值或其與指定整數的模值

>>> pow(2,3)
>>> 2**3

>>> pow(2,3,5)
>>> pow(2,3)%5

round:對浮點數進行四舍五入求值

>>> round(1.1314926,1)
1.1
>>> round(1.1314926,5)
1.13149

sum:對元素類型是數值的可叠代對象中的每個元素求和

# 傳入可叠代對象
>>> sum((1,2,3,4))
# 元素類型必須是數值型
>>> sum((1.5,2.5,3.5,4.5))
12.0
>>> sum((1,2,3,4),-10)
0

類型轉換(24)

bool:根據傳入的參數的邏輯創建一個新的bool值

>>> bool() #未傳入參數
False
>>> bool(0) #數值0、空序列等值為False
False
>>> bool(1)
True

int:根據傳入的參數創建一個新的整數

>>> int() #不傳入參數時,得到結果0。
0
>>> int(3)
3
>>> int(3.6)
3

float:根據傳入的參數創建一個新的浮點數

>>> float() #不提供參數的時候,返回0.0
0.0
>>> float(3)
3.0
>>> float(3)
3.0

complex:根據傳入參數創建一個新的復數

>>> complex() #當兩個參數都不提供時,返回復數 0j。
0j
>>> complex(1+2j) #傳入字符串創建復數
(1+2j)
>>> complex(1,2) #傳入數值創建復數
(1+2j)

str:返回一個對象的字符串表現形式(給用戶)

>>> str()
‘‘
>>> str(None)
None
>>> str(abc)
abc
>>> str(123)
123

bytearray:根據傳入的參數創建一個新的字節數組

>>> bytearray(中文,utf-8)
bytearray(b\xe4\xb8\xad\xe6\x96\x87)

bytes:根據傳入的參數創建一個新的不可變字節數組

>>> bytes(中文,utf-8)
b\xe4\xb8\xad\xe6\x96\x87

menmoryview:根據傳入的參數創建一個新的內存查看對象

>>> v = memoryview(babcefg)
>>> v[1]
98
>>> v[-1]
103

ord:返回Unicode字符對應的整數

>>> ord(a)
97

chr:返回整數所對應的Unicode字符

>>> chr(97) #參數類型為整數
a

bin:將整數轉換成2進制值字符串

>>> bin(3) 
0b11

oct:將整數轉化成8進制字符串

>>> oct(10)
0o12

hex:將整數轉換成16進制字符串

>>> hex(15)
0xf

tuple:根據傳入的參數創建一個新的元組

>>> tuple() #不傳入參數,創建空元組
()
>>> tuple(121) #傳入可叠代對象。使用其元素創建新的元組
(1, 2, 1)

list:根據傳入的參數創建一個新的列表

>>>list() # 不傳入參數,創建空列表
[] 
>>> list(abcd) # 傳入可叠代對象,使用其元素創建新的列表
[a, b, c, d]

dict:根據傳入的參數創建一個新的字典

>>> dict() # 不傳入任何參數時,返回空字典。
{}
>>> dict(a = 1,b = 2) #  可以傳入鍵值對創建字典。
{b: 2, a: 1}
>>> dict(zip([a,b],[1,2])) # 可以傳入映射函數創建字典。
{b: 2, a: 1}
>>> dict(((a,1),(b,2))) # 可以傳入可叠代對象創建字典。
{b: 2, a: 1}

set:根據傳入的參數創建一個新的集合

>>>set() # 不傳入參數,創建空集合
set()
>>> a = set(range(10)) # 傳入可叠代對象,創建集合
>>> a
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

frozenset:根據傳入的參數創建一個新的不可變集合

>>> a = frozenset(range(10))
>>> a
frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})

enumerate:根據可叠代對象創建枚舉對象

>>> seasons = [Spring, Summer, Fall, Winter]
>>> list(enumerate(seasons))
[(0, Spring), (1, Summer), (2, Fall), (3, Winter)]
>>> list(enumerate(seasons, start=1)) #指定起始值
[(1, Spring), (2, Summer), (3, Fall), (4, Winter)]

range:根據傳入的參數創建一個新的range對象

>>> a = range(10)
>>> b = range(1,10)
>>> c = range(1,10,3)
>>> a,b,c # 分別輸出a,b,c
(range(0, 10), range(1, 10), range(1, 10, 3))
>>> list(a),list(b),list(c) # 分別輸出a,b,c的元素
([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 4, 7])
>>>

iter:根據傳入的參數創建一個新的可叠代對象

>>> a = iter(abcd) #字符串序列
>>> a
<str_iterator object at 0x03FB4FB0>
>>> next(a)
a
>>> next(a)
b
>>> next(a)
c
>>> next(a)
d
>>> next(a)
Traceback (most recent call last):
  File "<pyshell#29>", line 1, in <module>
    next(a)
StopIteration

slice:根據傳入的參數創建一個新的切片對象

>>> c1 = slice(5) # 定義c1
>>> c1
slice(None, 5, None)
>>> c2 = slice(2,5) # 定義c2
>>> c2
slice(2, 5, None)
>>> c3 = slice(1,10,3) # 定義c3
>>> c3
slice(1, 10, 3)

super:根據傳入的參數創建一個新的子類和父類關系的代理對象

#定義父類A
>>> class A(object):
    def __init__(self):
        print(A.__init__)

#定義子類B,繼承A
>>> class B(A):
    def __init__(self):
        print(B.__init__)
        super().__init__()

#super調用父類方法
>>> b = B()
B.__init__
A.__init__

object:創建一個新的object對象

>>> a = object()
>>> a.name = kim # 不能設置屬性
Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module>
    a.name = kim
AttributeError: object object has no attribute name

序列操作

內置函數,正在整理中。