python學習系列(七)函式和Lambda表示式

2021-08-13 08:48:59 字數 2397 閱讀 3764

前面幾章全是基礎,語法和資料型別;這一章開始函式的學習~

函式,程式語言靈魂,函式的呼叫是重點,它是完成邏輯功能的工具,使我們的 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.非結構化程式設計 所有的 和邏輯都在同乙個 塊中 圖書管理系統 邏輯比較混亂,量太多,太雜 函式是程式的重要組成部分 乙個程式中可以有多個函式組成...