Python練習 高階函式 day11

2022-03-10 11:53:07 字數 3671 閱讀 2846

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(7) 計算7*6*5*4*3*2*1

3,寫函式,返回乙個撲克牌列表,裡面有52項,每一項是乙個元組

例如:[(『紅桃』,2),(『梅花』,2), …(『黑桃』,『a』)]

4,有如下函式:

def

definner():

print(666)

你可以任意新增**,用兩種或以上的方法,執行inner函式.

5.1,有函式定義如下:

def calc(a,b,c,d=1,e=2):

return (a+b)*(c-d)+e

請分別寫出下列標號**的輸出結果,如果出錯請寫出error。

print(calc(1,2,3,4,5))_____

print(calc(1,2))____

print(calc(e=4,c=5,a=2,b=3))___

print(calc(1,2,3))_____

print(calc(1,2,3,e=4))____

print(calc(1,2,3,d=5,4))_____

5.2,下面**列印的結果分別是_list1= ,list2= ,list3=.

def extendlist(val,list=):

return

list

list1 = extendlist(10)

list2 = extendlist(123,)

list3 = extendlist('a'

)print('

list1=%s

'%list1)

print('

list2=%s

'%list2)

print('

list3=%s

'%list3)

5.3,寫**完成99乘法表.(公升級題)

1 * 1 = 1

2 * 1 = 2 2 * 2 = 4

3 * 1 = 3 3 * 2 = 6 3 * 3 = 9......

9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81

默寫

1,什麼是閉包。

2,迭代器的好處。

3,用while迴圈模擬for迴圈(寫具體**)。

1、寫函式,返回乙個撲克牌列表,裡面有52項,每一項是乙個元組。例如:[(『紅心』,2), (『草花』,2), …(『黑桃,『a』)]

def

cards():

num=

for v in range(2,11):

num.extend(['j

','q

','k

','a'])

type=['

紅心','

草花','

方塊','黑桃'

] result=

for i in

num:

for j in

type:

return

result

print(cards())

2、寫函式,傳入n個數,返回字典:。例如: min_max(2, 5, 7, 8, 4),返回:

def max_min(*args):

the_max=args[0]

the_min=args[0]

for i in

args:

if i>the_max:

the_max=i

if ithe_min=i

return

print(max_min(2,4,1,55,-3))

3、寫函式,專門計算圖形的面積。其中巢狀函式,計算圓的面積,正方形的面積和長方形的面積

呼叫函式area(『圓形』, 圓半徑)  返回圓的面積

呼叫函式area(『正方形』, 邊長) 返回正方形的面積

呼叫函式area(『長方形』, 長,寬) 返回長方形的面積

#

方法一:

import

math

def area(name,*args):

defareas_rectangle(x,y):

return x*y

defarea_square(x):

return x**2

defarea_round(r):

return math.pi*r*r

if name=="圓形"

:

return area_round(*args)

elif name=="

正方形"

:

return area_square(*args)

elif name=="

長方形"

:

return areas_rectangle(*args)

print(area('

長方形', 3, 4))

print(area('

圓形', 3))

print(area('

正方形', 3))

#

方法二(eval)

import

math

def area(name,*args):

defrectangle(x,y):

return x*y

defsquare(x):

return x**2

defround(r):

return math.pi*r*r

if name in

locals():

return eval(name)(*args)

print(area('

rectangle

',13,2))

4、寫函式,傳入乙個引數n,返回n的階乘。例如: cal(7) 計算7 * 6 * 5 * 4 * 3 * 2 * 1
ef cal(n):

result=1

for i in range(n,0,-1):

result=result*i

return

result

print(cal(7))

5、斐波那契數列:[1,1,2,3,5,8,13,...],每個元素為前兩個元素之和

(1)當要求長度小於某個值的時候:

l = [1,1]

while len(l)<20:

print(l)

(2)當要求小於某個數的時候:

l = [1,1]

while l[-1]<4000000:

del l[-1]

print(l)

Python練習 高階函式

當乙個函式的引數,傳的是另乙個函式的時候,這樣的函式就是高階函式 變數可以指向函式,如果乙個變數指向了乙個函式,那麼,可通過該變數來呼叫這個函式 ap 函式接收兩個引數,乙個是函式,乙個是iterable,map將傳入的函式依次作用到序列的每個元素,並把結果作為新的iterator返回。def f ...

Python高階練習 函式 字典

找到年齡最大的人,並輸出,找出程式中有什麼問題 1.字串分割成列表 使用str.split方法 2.求列表最大值 3.找到 字典 值對應鍵 def max info n dict0 for i in range 3 input info input 請輸入學員資訊 姓名 年齡 list1 input...

練習 高階函式

def add after fn def test args,kwargs fn args,kwargs print after return testdef add 100 fn def test args,kwargs fn args,kwargs return fn 100 return te...