day11函式的高階

2021-10-18 19:15:12 字數 4760 閱讀 8457

1、什麼是返回值

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

2、什麼時候函式需要返回值(新手)

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

3、怎麼將資料返回

def

sum1

(a, b)

:return a + b

s = sum1(10,

20)print

(s)# 30

defprint_star()

:print

("************"

)print_star(

)print

(print_star())

# none

4、怎麼使用函式返回值

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

def

fun1()

:return

'abc'

print

('abc'

)# abc

print

(fun1())

# abc

a ='abc'

print

(a)# abc

b = fun1(

)print

(b)# abc

print

('abc'[-

1])# c

print

(fun1()[

-1])

# clist1 =

['abc'

,100

]list2 =

[fun1(),

100]

print

(list2)

# ['abc', 100]

print

(fun1(

).join(

'123'))

# 1abc2abc3

dict1 =

print

(dict1)

# def

fun2

(string:

str)

:return

list

(string)

print

(fun2(

'abc'))

# ['a', 'b', 'c']

result = fun2(

'abc'

)100

)print

(result)

# none

new_list = fun2(

'abc')10

)print

(new_list)

# ['a', 'b', 'c', 10]

# 結論:即使是相同內容,所開闢的空間位置不同

print(id

(fun2(

'abc'))

,id(fun2(

'abc'))

)# 2536263360008 2536263360072

5、return的使用

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

def

fun_1

(num:

int)

:if num &1:

return num **

3else

: sum1 =

1for x in

range(2

, num+1)

: sum1 *= x

return sum1

print

(fun_1(3)

)print

(fun_1(6)

)

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

全域性變數

區域性變數

global

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

age =

18def

fun4()

:global age

global name

age =

20print

(f'函式體內部的age:'

) name =

'小明'

fun4(

)print

(f'函式體外部的age:,name:'

)

什麼是匿名函式?

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

run_year =

lambda x: x %4==

0and x %

100!=

0or x %

400==

0print

(run_year(

2000

))

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

a =

10b =

'abc'

c =[1,

2]d =e =

lambda x: x*

2

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

x =[10

,20,30

]def

fun1()

:print

("函式1"

)# 列印變數

print

(x)print

(fun1)

# # 檢視變數型別

print

(type

(x))

# print

(type

(fun1))#

# 檢視變數的id

print(id

(x))

# 2900415570568

print(id

(fun1)

)# 2900448421544

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

y = x

250)

z = fun1z()

# 函式1

x ='abc'

fun1 =

200

高階函式(認識)

系統實參高階函式

max、min、sorted、map、reduce

max、min

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

key的要求:

練習1:求nums中個位數最大的元素

nums =[78

,67,55

,19,10

]result =

max(nums, key=

lambda item: item %10)

print

(result)

# 19

練習2:求各個位數上的數字和最大的元素:

nums =

[128,88

,90,71

]def

f(item)

: s =

0for x in

str(item)

: s +=

int(x)

return s

result =

max(nums, key=f)

print

(result)

# 88

練習3:獲取nums數值最大的元素

nums =

[123

,'78',89

,'345'

]print

(max

(nums, key=

lambda element:

int(element)

))

練習4:對nums按照個位數的大小從大到小排序

nums =[78

,67,55

,18,29

]print

(sorted

(nums, key=

lambda element:element %10)

)

練習5:

1)獲取students年齡最小的學生(用min)

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

students =[,

,,,]

# 1)獲取students年齡最小的學生(用min)

print

(min

(students, key=

lambda element: element[

'age'])

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

print

(sorted

(students, key=

lambda element: element[

'score'

], reverse=

true

))

day11 函式高階

根據變數作用域 能使用的範圍 的不同將變數分為 全域性變數和區域性變數 1.全域性變數 沒有定義在函式裡面或者類裡面的變數都是全域性變數 全域性變數的作用域是從定義開始到程式結束 全域性變數可以在函式裡直接用 2.區域性變數 定義在函式裡面的變數就是區域性變數。區域性變數的作用域是從定義開始到函式結...

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 序列 求序列中元素的最大 小...