DAY6 函式與Lambda表示式

2021-09-29 00:09:59 字數 2690 閱讀 8647

no.5函式與lambda表示式

一、函式

1、建立函式def

語法:def myfunction():

語句2、呼叫函式

語法:myfunction()

函式內容

3、函式的引數

e.g.>>>def a(name):

print(name+『少年』)

>>>a(『壁花』)

壁花少年

e.g.>>>def add(b,c):

result=b+c

print(result)

>>>add(1,2)

34、函式的返回值

e.g.>>>def add(num1,num2):

return(num1+num2)

>>>print(add(2,3))

55、形參和實參

e.g.a(name):

a(壁花)

name是形參

壁花是實參

6、函式文件

對函式的內容、引數、意義、返回值等內容進行介紹

help(a)

7、關鍵字引數

e.g.>>>def saysome(name,truth):

print(name+truth)

>>>saysome(truth='是張琳爸爸『,name=『杜安芸』)

杜安芸是張琳爸爸

8、預設引數

e.g.>>>saysome(『day』)

day是張琳爸爸

9、收集引數:在形參前加*(因為會不知道有幾個引數)

e.g.>>>def test(a):

print(『引數長度是:』,len(a));

print('第二個引數是:』,a[1]);

>>>test(1,2,5,『a』,9)

引數長度是:5

第二個引數是:2

e.g.>>>def test(a,exp):

print(『引數長度是:』,len(a),exp);

print('第二個引數是:』,a[1]);

>>>test(1,2,5,『a』,9,exp=8)

引數長度是:5 8

第二個引數是:2

10.區域性變數和全域性變數

全域性變數作用於整個檔案

區域性變數只作用於被定義的語句段

注:如果試圖修改全域性變數的話,python會自動建立乙個名字相同的區域性變數代替。所以盡量不要在函式內修改全域性變數

11、內嵌函式和閉包

1)、global關鍵字

把想要變成全域性變數的區域性變數用global關鍵字定義。

e.g. a) count=5

def fun()

count=10

>>>print(count)

5b) count=5

def fun()

global count=10

>>>print(count)

102)、內嵌(內部)函式(函式的巢狀)

e.g.def fun1():

print('fun1被呼叫)

def fun2():

print(『fun2被呼叫』)

fun2()

>>>fun1()

fun1被呼叫

fun2被呼叫

注意:內部函式的作用域都在外部函式內

3)、閉包(一種程式設計正規化)

e.g. def funx(x):

def funy(y):

return xy

return funy

>>>funx(8)(5)

40注:內部函式只能對外部函式的變數使用,不能修改

e.g. def fun1():

x=5def fun2():

x=xreturn x

return fun2

>>>fun1()

error(錯誤)

可改為:

def fun1():

x=[5]

def fun2():

x[0]=x[0]

return x[0]

return fun2()

>>>fun1()

25也可改為:

def fun1():

x=5def fun2():

nonlocal x

x=xreturn x

return fun2

>>>fun1()

25二、lambda函式

語法:lambda 引數1,引數2,… : 返回值

e.g.>>>lambda x:2x+1

>>>g=lambda x:2x+1

>>>g(5)

11三、兩個bif

1、filter(函式或none,可迭代資料) (過濾器)

若第乙個引數為函式,則將可迭代資料每乙個元素作為函式函式引數計算,將返回true的值篩選出來;若第乙個元素為none,則將第二個引數中true的值篩選出來。

e.g. >>> list(filter(lambda x:x%2,range(10)))

[1,3,5,7,9]

2、map(函式,可迭代序列)(對映)

將序列的每乙個元素進行加工,直到可迭代序列的每乙個元素都加工完畢,返回新的序列

e.g. >>> list(map(lambda x:x*2,range(10)))

[0,2,4,6,8,10,12,14,16,18]

Day 6 函式與Lambda表示式

練習1 怎麼給函式編寫 檔?def myfirstfunction name 函式定義過程中name是形參 因為ta只是乙個形式,表示佔據乙個引數位置 print 傳遞進來的叫做實參,因為ta是具體的引數值!format name myfirstfunction 老馬的程式人生 傳遞進來的老馬的程式...

Day 6 函式與模組

def函式名 引數列表 函式體 示例1 計算矩形面積 函式名 area 引數 width 和 height 返回值 width height def area width,height 1 return width height 必須引數,按順序傳入引數 其中,5,6 按順序傳入,預設傳入width...

Day6 函式與Lambad表示式

函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的 段。函式能提高應用的模組性,和 的重複利用率。你已經知道python提供了許多內建函式,比如print 但你也可以自己建立函式,這被叫做使用者自定義函式。定義乙個函式 你可以定義乙個由自己想要功能的函式,以下是簡單的規則 def 函式名 引...