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 函式名 引...