函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的**段。
(1)定義乙個函式
定義函式的規則:
語法:
例項(呼叫):def functionname( parameters ):
"函式_文件字串"
function_suite
return [expression]
(2)引數傳遞def sum(x,y):
z=x+y
return z
print("sum(2,5)=",sum(2,5)) #sum(2,5)= 7
python中,型別是屬於物件的,變數沒有型別!
可更改(mutable)與不可更改(immutable)物件
在 python 中,strings, tuples, 和 numbers是不可更改的物件,而list,dict等則是可以修改的物件。
不可變型別:變數賦值 a=5 後再賦值 a=10,則原來的5被丟棄,生成乙個新的int 物件a=10,而不是改變a的值
可變型別:變數賦值 la=[1,2,3,4] 後再賦值 la[2]=5 則是將 list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。沒有生成新的物件,而是la的內部數值實實在在被修改!
python 函式的引數傳遞:
不可變型別:類似 c++ 的值傳遞,如 整數、字串、元組。如fun(a),傳遞的只是a的值,沒有影響a物件本身。比如在 fun(a)內部修改 a 的值,只是修改另乙個複製的物件,不會影響 a 本身。
可變型別:類似 c++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過去,修改後fun外部的la也會受影響
python 中一切都是物件,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變物件和傳可變物件。
傳不可變例項:
傳可變例項:def changeint( a ):
a = 10
print(a) #10 (函式內部產生乙個新的b,b=10)
b = 2
changeint(b)
print (b) # 2 (b本身)
不定長引數def changeme( mylist ):
print ("函式內取值: ", mylist) # 函式內取值: [10, 20, 30, [1, 2, 3, 4]]
return # mylist列表本身被修改
mylist = [10,20,30];
changeme( mylist ); #呼叫changeme函式
print ("函式外取值: ", mylist) #函式外取值: [10, 20, 30, [1, 2, 3, 4]]
乙個函式能處理比當初宣告時更多的引數,這些引數叫做不定長引數。
加了星號(*)的變數名會存放所有未命名的變數引數。不定長引數例項如下:
python 使用 lambda 來建立匿名函式。def printinfo( arg1, *vartuple ):
print ("輸出: ")
print (arg1) # 列印任何傳入的引數
for var in vartuple:
print (var)
return;
printinfo( 10 ); # 呼叫printinfo 函式
printinfo( 70, 60, 50 );
輸出: 10
輸出: 70
60 50
1.lambda只是乙個表示式,函式體比def簡單很多。
2.lambda的主體是乙個表示式,而不是乙個**塊。僅僅能在lambda表示式中封裝有限的邏輯進去。
3.lambda函式擁有自己的命名空間,且不能訪問自有引數列表之外或全域性命名空間裡的引數。
4.雖然lambda函式看起來只能寫一行,卻不等同於c或c++的內聯函式,後者的目的是呼叫小函式時不占用棧記憶體從而增加執行效率。
語法lambda函式的語法只包含乙個語句,如下:
lambda [arg1 [,arg2,.....argn]]:expression
例項:sum=lambda x,y,z:(x+y)*z
print(sum(1,2,3)) #9
Python基礎 05 函式與Lambda表示式
匿名函式lambda表示式 定義函式 呼叫函式 有必須引數 關鍵字引數 不定長引數 引數型別 必須引數 呼叫時引數數量型別必須和宣告時一樣 defprintme str 列印任何傳入的字串 print str printme str 如果此處不加引數的話會報錯 關鍵字引數 呼叫時引數順序可以與宣告時...
Python基礎語法05 函式模組
函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的 段。函式能提高應用的模組性,和 的重複利用率。你已經知道python提供了許多內建函式,比如print 但你也可以自己建立函式,這被叫做使用者自定義函式。你可以定義乙個由自己想要功能的函式,以下是簡單的規則 任何傳入引數和自變數必須放在圓括...
Python基礎語法05 函式模組
函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的 段。函式能提高應用的模組性,和 的重複利用率。你已經知道python提供了許多內建函式,比如print 但你也可以自己建立函式,這被叫做使用者自定義函式。你可以定義乙個由自己想要功能的函式,以下是簡單的規則 任何傳入引數和自變數必須放在圓括...