小伙伴們好久不見呀,最近因為工作原因一直沒有時間靜下來寫文章,今天呢筆者給大家來介紹一下python行數的定義和調用,函數的參數、行數的作用域、內置函數。廢話就不多說了直接開始吧。
1.函數的作用
對特定的一些功能進行封裝,提高代碼的重用率,進而提升開發的效率,格式:
def 函數名()
# 函數體
2.函數名的命名規范
1)可以由字母、數字及下劃線(_)組成,但不能用數字開頭,且不能使用python中的關鍵字。
2)函數命名的風格: 單詞之間下劃線隔開(python中函數命名推薦這種風格), 大駝峰小駝峰寫法 ,如:UserName、userName英文單詞首字母大寫。
3.函數的返回值:return
語法:return 表達式
1)函數的返回值是由return來決定的,return後面寫什麼,函數的返回值就是什麼
2)如果函數中沒有return,那麼函數的返回值默認為 None
3)return 後面沒有任何內容,返回值也是None
4)函數要返回多個數據,可以在return後面,每個數據之間用逗號隔開,調用函數之後接收到的是個元組形式的數據
注意:return的作用除了返回結果外,也可以用於結束函數的運行,只要函數中執行到return,就直接返回內容,跳出函數,return後面的代碼就不會執行
4.調用函數
函數名(),示例如下:
def func():
print('python666')
return "abc", 4444
print("99999999999999999999") # 該行不會被執行
res = func()
print(res)
運行結果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py
python666
('abc', 4444)
Process finished with exit code 0
1.函數形參和實參
定義的參數稱為:形參
調用實際傳遞的為:實參
2.參數傳遞的兩種形式:
位置參數:按位置順序進行傳遞
關鍵字參數:通過關鍵字指定傳給某個參數
# 位置參數(按位置順序進行傳遞)
def add_num(a, b, c): # a,b是形參,沒有真正的值,用於接收實參
return a + b - c
res1 = add_num(67, 12, 1) # 此時傳入的67,12是實參
print(res1)
# 關鍵字參數(通過關鍵字指定傳給某個參數)
res2 = add_num(b=34, a=12, c=11)
print(res2)
# 參數混用時,位置參數寫最前面,關鍵字參數寫在後面,不能重復傳
res3 = add_num(30, c=12, b=12)
print(res3)
運行結果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py
78
35
30
Process finished with exit code 0
3.函數定義的三種形參:
def test(a, b, c, *args, **kwargs):
print("a的值", a)
print("b的值", b)
print("c的值", c)
print("*args的值", args)
print("**kwargs的值", kwargs)
va1 = test(11, 22, 33, 4, 3, 2)
va2 = test(11, 5, 6, 7, g=33, k=22, f=12)
print(va1, va2)
運行結果(有None是因為函數中沒有返回值,調用了兩次函數因此打印了兩個None):
C:\software\python\python.exe D:/myworkspace/test/test/test.py
a的值 11
b的值 22
c的值 33
*args的值 (4, 3, 2)
**kwargs的值 {}
a的值 11
b的值 5
c的值 6
*args的值 (7,)
**kwargs的值 {'g': 33, 'k': 22, 'f': 12}
None None
Process finished with exit code 0
擴展:不定長參數可以使用*對元組(列表也可以,但一般不用)進行拆包,**可以對字典進行拆包,拆包原理如下:
# 拆包
def func():
return 11,22,33 # 當返回結果有多個值時,會以元組的形式返回
c1 = func()
print(c1) # 返回的是一個元組(11,22,33)
a,b,c =func() # 可以通過變量把返回的元組進行拆包,接收對應的值,a接收了11,b接收了22,c接收了33
print(a,b,c) # 返回對應的元素11,22,33
C:\software\python\python.exe D:/myworkspace/test/test/test.py
(11, 22, 33)
11 22 33
Process finished with exit code 0
拆包在自動化測試中有很大的作用,如果不理解,可以動手多敲幾遍,以下是拆包示例:
def func(a, b, c):
print('這是', a)
print('這是', b)
print('這是', c)
# 利用*、**分別對元組、字典拆包:只能用在函數調用時使用
# 對元組進行拆包
func(*(1, 2, 3))
print('-------分割線-------')
tu = (4, 5, 6)
func(*tu)
print('-------分割線-------')
# 對字典進行拆包, 注意**kwargs接收的是接收必需參數、默認參數之外的關鍵字參數
# 因此字典的鍵要與函數的形參一致
dic = {'a': 88, 'b': 90, 'c': 91}
func(**dic)
運行結果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py
這是 1
這是 2
這是 3
-------分割線-------
這是 4
這是 5
這是 6
-------分割線-------
這是 88
這是 90
這是 91
Process finished with exit code 0
1.全局變量
直接定義在py文件(即模塊)中的變量,叫全局變量,在該文件中任何地方都可以使用
2.局部變量
在函數內部定義的變量,叫做局部變量,只能在該函數內部使用,函數外部無法使用
3.聲明局部變量
關鍵字:global 在函數內部聲明全局變量。
變量的查找過程:由內到外(先找函數自身的,沒有再去外面找)。
如果要在外部使用函數內部定義的局部變量,需要聲明該變量,簡單來說就是告訴程序,這個變量在這個模塊內都能使用。
name = "張三" # 定義一個全局變量
def func():
# global a # 如果要聲明全局變量,要加上這句
a = 100 # 定義一個局部變量
print(a)
print(name)
func() # 調用函數
print("------分割線-----")
print(name) # 全局變量哪裡都能使用
print(a) # 這是一個局部變量,打印a運行會報錯說a沒有被定義,如果要使用a就要聲明a為全局變量
print("------分割線-----")
aa = 10
def func():
print(aa) # 變量的查找過程:由內到外(先找自身的,沒有再去外面找)
func()
運行結果(因為報錯了,所以後面的aa沒有打印出來,只要聲明全局變量就不會報錯):
C:\software\python\python.exe D:/myworkspace/test/test/test.py
100
張三
------分割線-----
張三
Traceback (most recent call last):
File "D:/myworkspace/test/test/test.py", line 12, in <module>
print(a) # 這是一個局部變量,打印a運行會報錯說a沒有被定義,如果要使用a就要聲明a為全局變量
NameError: name 'a' is not defined
Process finished with exit code 1
內置函數就是python編程語言中預先已經定義的函數,直接調用即可,常用的內置函數如下:
今天的文章就到這裡了喲,喜歡的小伙伴可以點贊收藏評論加關注喲。
Preface Hello everyone , Im b
in the capacity of Python peop