前面幾章全是基礎,語法和資料型別;這一章開始函式的學習~
函式,程式語言靈魂,函式的呼叫是重點,它是完成邏輯功能的工具,使我們的 code 邏輯清晰。
首先,函式語法格式:
def 函式名(引數列表):
函式體
看個例項:
def fun(name, age="30"):
print("我是:", name)
print("今年: " + age)
return
fun(name="laowang", age="40") # 函式呼叫
這是函式申明以及呼叫的使用方法
值得一說的是,python 函式裡的引數,不像c#,c++在函式宣告時就定義好引數型別的,python裡的引數有以下幾類:
必須引數:在某些函式裡,如果不傳引數,就會報錯,如:
# 列印任何傳入的引數
def printme(str):
print(str);
return;
# 呼叫printme函式
printme();
沒有傳參的執行結果:
traceback (most recent call last):
file "h:/徐遠軍/pythpn_learn_projects/learn_01/learn_01_loop", line 75, in printme();
typeerror: printme() missing 1 required positional argument: 'str'
正確結果:
printme("hello老王")
hello老王
預設引數:
# 函式宣告 def 關鍵字
def fun(name, age="30"):
print("我是:", name)
print("今年: " + age)
return
fun(name="laowang") # 函式呼叫
執行結果:
我是: laowang
今年: 30
可以看到,在函式呼叫時候,傳參只傳進了乙個 name = "laowang",age 引數沒有傳,結果卻顯示了 age:30,所以在函式宣告時已經初始化過的變數引數就是預設引數,在函式呼叫時候就不用再次傳參;
關鍵字引數:
def printme(str):
print(str);
return;
# 呼叫printme函式
printme("hello老王")
執行結果:
hello老王
str 是 python 裡基本資料型別之一的 字串 關鍵字,在 printme(str)函式裡當作引數使用,此時 str 就是關鍵字引數;
不定長引數:
def fun1(a,*b):
print("定長引數a:",a)
print("下面是不定長引數c:")
for c in b:
print(c,end=" ")
return
fun1(1,2,4,5,6,7,8)
執行結果:
定長引數a: 1
下面是不定長引數c:
2 4 5 6 7 8
*b 就是乙個不定長引數,使用 " * " 標記的引數變數名可以存放多個未命名的變數,在沒有指定引數時,這個 *b 相當於乙個空元組,在函式呼叫時,可以指定多個變數,也可以不指定變數;
lambda 表示式:
lambda 用於建立匿名函式,即:不適用 def 關鍵字的格式來建立函式;
lambda 只是乙個表示式,不是**塊(區別於c#:c# 中 lambda 表示式可省略方法名,引數,直接接入**塊
()=> 也稱作箭頭表示式)
lambda 表示式擁有自己的引用空間,不能訪問表示式之外 或 全域性變數的引數變數;
lambda 表示式格式:
lambda [arg1 [,arg2,.....argn]]:expression
注意:**塊不能換行寫,必須跟在 " :" 後面寫
例項:
sum = lambda num1,num2:num1+num2
print(sum(2,4))
執行結果:
6
python系列七 python函式
函式是帶名字的 塊,用於定義具體的工作 需要在程式中多次執行同一項任務時,你無須反覆編寫完成該任務的 而只需定義乙個執行該任務的函式,反覆呼叫 通過使用函式,程式的編寫,閱讀,測試和修復都將更容易 定義乙個簡單函式 def print user print hello!print user 說明 函...
python學習之路七 函式
python函式 1.定義函式 def hello user print hello word 2 函式中傳遞形參與實參 a,b即為形參 b給到了預設值,在呼叫時b引數可以傳遞,也可以不傳遞 def function a,b 0 print a b 3.返回值 def get sum a,b ret...
python學習筆記七 函式
函式 1.結構化程式設計 將特殊的邏輯,功能性 單獨的抽取出來,封裝成函式進行呼叫 min 1,2,3 邏輯被封裝到了函式當中,呼叫起來非常方便簡潔 2.非結構化程式設計 所有的 和邏輯都在同乙個 塊中 圖書管理系統 邏輯比較混亂,量太多,太雜 函式是程式的重要組成部分 乙個程式中可以有多個函式組成...