1. 程式人生 > >Python-Class___函式與常用內建函式

Python-Class___函式與常用內建函式

一、函式

1.1、定義函式

在Python中,定義一個函式要使用def語句,依次寫出函式名、括號、括號中的引數和冒號“ : ”,然後,在縮排塊中編寫函式體,函式的返回值用return語句返回。

>>def func():
    print("---hello word---")
    return 0
>>func()
---hello word---

函式執行完畢也沒有return語句時,自動return None。 

>>def func():
    print("---hello word---")
    return 0
>>print(func())
---hello word---
0
------------------------------------
>>def func():
    print("---hello word---")
>>print(func())
---hello word---
None

1.2、空函式

def func():
    pass

1.3、函式作用域

country為全域性變數,可以被函式體內呼叫;

函式體內“func_name”和“csdn_name”為區域性變數,無法被其他函式呼叫。


>>country = "China"
>>def func():
    func_name = "FUNC"
    print(country + "_"+func_name)
>>def csdn():
    csdn_name = "CSDN"
    print(country + "_"+csdn_name)
>>func()
>>csdn()
China_FUNC
China_CSDN

二、內建函式

2.1、abs()

返回一個數字的絕對值

>>a = -1
>>b = 2
>>c = 0
print(abs(a))
print(abs(b))
print(abs(c))

2.2、all()

在一個可迭代元素裡,如果有一個元素為假及返回False(如果為空返回True)。

>>print(all([0, -1, 2]))
False
---------------------------
>>print(all([-1, 2]))
True
---------------------------
>>print(all([]))
True

 2.3、any()

在一個可迭代元素裡,如果有一個元素為真及返回True(如果為空返回False)。

>>print(any([0, -1, 2]))
True
---------------------------
>>print(any([-1, 2]))
True
---------------------------
>>print(any([]))
False

2.4、ascii()

返回包含物件的可打印表示的字串,如果物件是非ascii使用\x、\u或\u轉義

>>print(ascii('中國'))
'\u4e2d\u56fd'

2.5、bin()

十進位制轉二進位制

>>print(bin(255))
0b11111111

2.6、 bool()

布林運算,判斷真假

>>print(bool([]))
>>print(bool(()))
>>print(bool(0))
--------------------------------
False
False
False

2.7、callable()

判斷是否能被呼叫

>>def func():
    pass

print(callable(func))

2.8、chr()

返回ascii碼對應表中數字對應的字元

>>print(chr(97))

a

2.9、dict()

生成一個空字典

>>a = dict()
>>print(a)

{}

2.10、dir()

返回物件可呼叫的方法

>>a = dir(dict())

>>for i in a:
    print(i)

__class__
__contains__
__delattr__
__delitem__
__dir__
__doc__
__eq__
__format__
__ge__
__getattribute__
__getitem__
__gt__
__hash__
__init__
__init_subclass__
__iter__
__le__
__len__
__lt__
__ne__
__new__
__reduce__
__reduce_ex__
__repr__
__setattr__
__setitem__
__sizeof__
__str__
__subclasshook__
clear
copy
fromkeys
get
items
keys
pop
popitem
setdefault
update
values

2.11、 divmod()

除法運算,返回商和餘數

>>print(divmod(5, 2))

(2, 1)

2.12、 enumerate()

返回一個包含計數(從開始時預設為0)和迭代獲得的值的元組。

>>a = list(enumerate(["張三", "李四", "王五"]))

>>print(a[0])
>>print(a[0][1])

(0, '張三')
張三

2.13、 eval()

字串變為字典

>>x = 1

>>print(eval("x+1"))

2

2.14、filter()

從一個可迭代元素中,根據一定的規則進行篩選,從而生成一個新的迭代器

>>res = filter(lambda n: n > 5, [0, 2, 3, 6, 8, 10, 23])

>>for i in res:
    print(i)

6
8
10
23

2.15、float()

>>> float('+1.23')
1.23
>>> float('   -12345\n')
-12345.0
>>> float('1e-003')
0.001
>>> float('+1E6')
1000000.0
>>> float('-Infinity')
-inf

2.16、format()

格式化字串

#通過關鍵字
>>print('{名字今天{動作}'.format(名字='陳某某',動作='拍視訊'))

陳某某今天拍視訊

>>grade = {'name' : '陳某某', 'fenshu': '59'}
>>print('{name}電工考了{fenshu}'.format(**grade))

陳某某電工考了59
-----------------------------------------------------------
#通過位置
>>print('{1}今天{0}'.format('拍視訊', '陳某某'))
>>print('{0}今天{1}'.format('陳某某', '拍視訊'))

陳某某今天拍視訊
陳某某今天拍視訊
-----------------------------------------------------------
#通過精度f
>>print('{:.1f}'.format(4.234324525254))
>>print('{:.4f}'.format(4.1))

4.2
4.1000
-----------------------------------------------------------
#填充和對齊^<>分別表示居中、左對齊、右對齊,後面頻寬度
>>print('{:^20}'.format('陳某某'))
>>print('{:>4}'.format('陳某某'))
>>print('{:<10}'.format('陳某某'))
>>print('{:*<14}'.format('陳某某'))
>>print('{:&>14}'.format('陳某某'))

        陳某某         
 陳某某
陳某某       
陳某某***********
&&&&&&&&&&&陳某某
-----------------------------------------------------------
#進位制轉化,b o d x 分別表示二、八、十、十六進位制
>>print('{:b}'.format(250))
>>print('{:o}'.format(250))
>>print('{:d}'.format(250))
>>print('{:x}'.format(250))

11111010
372
250
fa
-----------------------------------------------------------
#千分位分隔符,這種情況只針對與數字
>>print('{:,}'.format(100000000))
>>print('{:,}'.format(235445.234235))

100,000,000
235,445.234235

2.17、frozenset()

建立一個不可編輯的集合

2.18、 gloables()

返回表示當前全域性符號表的字典,對比參照locals()

2.19、hash()

返回物件的雜湊值(如果有)。雜湊值是整數。它們用於在查詢字典時快速比較字典鍵。比較相等的數值具有相同的雜湊值(即使它們屬於不同的型別,如1和1.0)。

>>> a = hash("zzl")

>>> print(a)

-1832558360181557176

2.20、 help()

幫助文件

2.21、 hex()

將一個整數轉換為小寫的十六進位制字串,字首為“0x”。如果x不是Python int物件,則必須定義一個__index__()方法來返回一個整數。

>>> print(hex(255))
'0xff'
>>> print(hex(-42))
'-0x2a'

如果你想把一個整數轉換成大寫或小寫的十六進位制字串加上字首或不帶字首,你可以使用以下兩種方法: 

>>> print("%#x" % 255, "%x" % 255, "%X" % 255)
0xff ff FF

>>> print(format(255, "#x"), format(255, "x"), format(255, "X"))
0xff ff FF

>>> print(f"{255:#x}", f"{255:x}", f"{255:X}")
0xff ff FF

2.22、id()

返回記憶體地址

2.23、input()

輸入函式 

2.24、int()

轉化成整數

2.25、isinstance()

 如果物件引數是classinfo引數的例項,或者它的(直接、間接或虛擬)子類的例項,則返回true。

>>> a = (1, 2, 3)

>>> print(isinstance(a, list))

False

2.26、iter()

返回一個迭代器,引數必須是一個可序列化的

2.27、lens()

返回一個物件的長度,引數可以是序列(如字串、位元組、元組、列表或範圍)或集合(如字典、集合或凍結集)。 

2.28、locals()

更新和返回表示當前本地符號表的字典

>>> def func():
    local_var = 333
    print(locals())
    print(locals().get("local_var"))

>>> func()
>>> print(globals().get("local_var"))

>>> print(locals().get("local_var"))

{'local_var': 333}
333
None
None

2.29、map() 

從一個可迭代元素中,根據一定的規則進行處理,從而生成一個新的迭代器

>>> res = map(lambda n: n * n, [0, 2, 3, 6, 8, 10, 23])

>>> for i in res:
        print(i)
0
4
9
36
64
100
529
----------------------------------------------------------
>>> res = map(lambda n: n > 5, [0, 2, 3, 6, 8, 10, 23])

>>> for i in res:
        print(i)
False
False
False
True
True
True
True