標籤:類型 python 三元 *args 代碼執行 要求 接收 參數 邏輯
一、函數的作用
有一個需求,求出一個列表的長度
#求s1字串的長度s1="1234566"count= 0for i in s1: count += 1print(count)
#如果又要求s2="5543322"的長度呢?你只能將求s1的代碼重複一遍
如果使用函數呢?
def my_len(): st = "123321123" count= 0 for i in st: count += 1 print(count) #調用函數my_len()#就可以得到字串的長度
1、函數結構
Python的代碼執行過程,從上之下讀取,到def的時候,只將函數名字存入記憶體,不去讀取函數內部的內容,在調用函數的時候,才會返回函數名出,調用函數內部代碼
註:函數在實際工作中,不要在函數體中寫print,因為函數的作用是邏輯過程
def 關鍵字 函數名(設定於變數相同):#冒號的作用是隔開函數名和函數體
函數體
def my_len(): st = "123321123" count= 0 for i in st: count += 1 return count
函數的執行 :函數名+括弧
my_len() #相當於函數的執行者(調用者)
2、return(傳回值)
功能:1,遇到return,結束函數
def func1(): print("1") print("2") return print("3") print("4")func1()#這裡結果只顯示1,2,不會顯示3和4,因為在函數體執行遇到return的時候,就會停止運行函數體
2、給函數的調用者傳回值
def func1(): return 1def func2(): returndef func3(): return 1,2,3print(func1())print(func2())a,b,c=func3()print(a,b,c)‘‘‘傳回值的情況有3種 func1 的return返回的是數值1 func2 的return返回的是數值None func3 的return返回的是一個(1,2,3),類型為元組 可以將元組的值分別賦給a,b,c ‘‘‘
稍後整理會,敬請期待
3、函數的傳參
#從實參角度 單個的參數預設用argv表示
1、位置參數
2、關鍵字參數
3、混合參數 關鍵字參數必須在位置參數後邊
三元運算式
#從形參角度
1、位置參數
2、預設參數
3、動態參數 (*args,**kwargs) 萬能傳參
args:接收所有位置參數,以元組的形式
kwargs:接收所有的關鍵字參數,並放入字典中
參數的位置
函數的執行:* 打散肝功能,將提供的可迭代對象的沒個元素,才開放入到*args裡面中
*args的* 是函數的定義中加*,是將你所傳入的位置參數彙總,添加到一個元組中,
**kwargs的* 是函數的定義中加**,是將你所傳入的關鍵字參數彙總,添加到一個字典中
函數的進階
內建的名稱空間,可以引用,不可以修改,如果想要引用需要用到global
global的作用
1、聲明沒有的全域變數
2、在函數內更改已有的全域變數
nonlocal的作用 :只對局部變數進行引用和改變,並且之後的引用也是改變只有的
1、不能操作全域變數
2、在修改了變數後,之後的引用都會改變
函數名:
1、可以相互賦值
2、可以當做函數的參數
3、可以當做容器類函數的參數
Python-函數的初始