day11 函式高階

2021-10-18 19:21:24 字數 4175 閱讀 1286

根據變數作用域(能使用的範圍)的不同將變數分為:全域性變數和區域性變數

1. 全域性變數

沒有定義在函式裡面或者類裡面的變數都是全域性變數、全域性變數的作用域是從定義開始到程式結束

全域性變數可以在函式裡直接用

2.區域性變數

定義在函式裡面的變數就是區域性變數。區域性變數的作用域是從定義開始到函式結束

形參也是區域性變數

# 全域性變數示例1

a =20

iftrue

:print

(f'if語句中:'

)for _ in

range(3

):print

(f'迴圈中:'

)# 全域性變數示例2

for _ in

range(3

):b =

100# 全域性變數

print

(f'函式外面b:'

)def

func3

(m, n)

: s = m + n

d =100#區域性

print

(m, n, d)

3.global

global和return都是只能在函式體中使用的關鍵字

如果直接在函式內部修改全域性變數的值,它會在函式內部建立乙個對應的區域性變數,導致修改失敗

age =

19def

func4()

:global age

age =

30print

(f'函式內部的年齡:'

)func4(

)# 不呼叫是沒得結果的!

print

(f'函式外部的年齡:'

)

1. 什麼是返回值

凡是產生新的資料,就return

從函式內部傳遞到函式外部的資料就是函式返回值

放在函式裡面的資料在呼叫以後會自動銷毀

2. 什麼時候函式需要返回值

如果實現函式的功能產生了新的資料,那麼這個函式就需要通過返回值把新產生的資料返回

3.怎麼將資料返回

1)怎麼確定函式返回值

返回值就是return關鍵字後面的值

沒有returb,預設返回none

2)怎麼獲取函式返回值

函式呼叫表示式的值就是函式返回值

4. 怎麼使用函式返回值

返回值能做的,函式呼叫表示式都可以做

5.return的使用

1)需要將函式中產生的資料返回的時候,使用return,return返回的資料

2)提前結束函式(執行函式體的如果遇到renturn,就結束函式):一般在if語句中

# 求兩個數的和

defsum1

(a, b)

:return a + b

# 練習:寫乙個函式,如果這個數是偶數就計算這個數的階乘,否則就計算這個數的立方

deffun1

(n):

if n &1:

return n **

3else

: factrial =

1for x in

range(1

, n +1)

: factrial *= x

return factrial

print

(fun1(9)

)

1. 什麼是匿名函式

匿名函式還是函式

定義匿名函式的語法:

函式名=lambda 引數列表:返回值

匿名函式可以看成是函式體只有一條語句的函式的簡單方式

func1 =

lambda x: x *

2func2 =

lambda x, y=

10: x + y

print

(func1(10)

)print

(func1(x=

100)

)print

(func2(2)

)# 練習 :寫乙個匿名函式判斷指定的年是否是閏年

years =

lambda x: x %4==

0and x %

100!=

0or x %

400==

0print

(years(

2500

))

python中定義函式其實就是乙個型別是function的變數

普通變數能做的,函式都可以做

1. 高階函式

1)實參高階函式 -如果乙個函式的某個引數是函式,那麼這樣的函式就是實參函式

2)返回值高階函式 -如果乙個函式的返回值是函式,那麼這個函式就是返回值高階函式

# 檢視變數型別

print

(type

(x))

# print

(type

(func1))#

# 查id位址

# 用乙個變數給另外乙個變數賦值

deffunc2()

:return

100z = func1z()

list1=

[func2,func2(),

100]

print

(list1[0]

())#100

print

(list1)

#[, 100, '函式']

2.系統實參高階函式

max、min、sorted、map、reduce

1. max、min、sorted

引數key要求傳乙個函式,可以通過這個函式來確定比較大小的時候的比較標準

key的要求:

a.是乙個函式

b.這個函式必須有且只有乙個引數,這個引數就相當於序列中每個元素

c.這個函式需要乙個返回值(返回值就是比較標準)

# 求個位上數字最大的元素

nums =[78

,67,55

,18,29

]result=

max(nums,key=

lambda item:item%10)

print

(result)

# 求各個位上的數字和最大的元素

nums =

[128,88

,90,71

]def

fun(item)

: s =

0for x in

str(item)

: s +=

int(x)

return s

result=

max(nums,key=fun)

print

(result)

# 獲取nums數值最大的元素

nums=

[123

,'78',89

,'345'

]result =

max(nums,key=

lambda item:

int(item)

)print

(result)

#345 返回符合標準的元素,返回的是字串

# 對nums按照個位數的大小從小到大排序:[55,67,78,18,29]

nums=[78

,67,55

,18,29

]new_nums =

sorted

(nums,key=

lambda item: item%10)

print

(new_nums)

students =[,

,,,]

# 獲取students年齡最小的學生

result=

min(students,key=

lambda item:item[

'age'])

print

(result)

# 按照分數對students從大到小排序

result=

sorted

(students,key=

lambda item:item[

'score'

],reverse=

true

)print

(result)

day11函式的高階

1 什麼是返回值 從函式內容傳遞到函式外部的資料就是函式的返回值 2 什麼時候函式需要返回值 新手 如果實現函式的功能產生了新的資料,那麼這個函式就需要通過返回值把新產生的資料返回 3 怎麼將資料返回 def sum1 a,b return a b s sum1 10,20 print s 30 d...

Python練習 高階函式 day11

1,寫函式,傳入n個數,返回字典 例如 min max 2,5,7,8,4 返回 此題用到max min 內建函式 1.1.作業1,寫函式,傳入n個數,返回字典 例如 min max 2,5,7,8,4 返回 此題用到max min 內建函式 2,寫函式,傳入乙個引數n,返回n的階乘 例如 cal ...

day11 高階函式和裝飾器

引數是函式的函式就是實參高階函式 def func4 f f func1 print f 10,20 2 print func1 10,20 2 def func1 nums return 1,2 func4 func1 系統實參高階函式的應用 普通用法 max min 序列 求序列中元素的最大 小...