函式 命名空間和作用域 相關練習

2022-06-29 11:06:12 字數 3226 閱讀 3383

1)寫函式,接受n個數字,求這些引數數字的和       (本題考點為:動態傳參)

def func(*args):

sum =0

for el in

args:

sum+=el

return

sumprint(func(1,5,6,9,8,4,5,7)) #

列印的是返回值

結果為:

45

2)寫函式,傳入函式中多個實參(均為可迭代物件如字串,列表,元祖,集合等),

將每個實參的每個元素依次新增到函式的動態引數args裡面.

例如 傳入函式兩個引數[1,2,3] (22,33)最終args為(1,2,3,22,33)

def func(*args):

print

(args)

func(*[1,2,3],*(22,33)) #

本題考點為動態的位置傳參

輸出結果為:(1, 2, 3, 22, 33)

寫乙個動態的關鍵字傳參

def func(**kwargs):

print

(kwargs)

func(**, **)輸出結果為:

3)寫函式,接收乙個引數(此引數型別必須是可迭代物件),將可迭代物件的每個元素以』_』相連線,形成新的字串,並返回.

例如 傳入的可迭代物件為[1,'賽利亞','李sir']返回的結果為』1_賽利亞_李sir』

def

func(lst):

s = ""

for el in

lst:

s+=str(el) + "_"

#拼接和累加

return s[:-1]

print(func([1,"

胡辣湯","

豬蹄子"]))

4)返回乙個撲克牌列表,裡面有52項,每一項是乙個元組

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

def

func():

hua = ["

紅心","

草花","

方塊","

黑桃"] #

花色 dian = ["

a", "

2", "

3", "

4", "

5", "

6", "

7", "

8", "

9", "

10", "

j", "

q", "k"

]

#笛卡爾積, 笛卡爾乘 -> 關係型資料庫的原理

result =

#迴圈花色

for h in hua: #

h就是花色:紅心

for d in dian: #

d是每乙個點數

return

result

print(func())

5)寫**完成99乘法表.

for i in range(1,10):

for j in range(1,i+1):

print("

%s x %s = %s

" (i,j,i*j),end="")

print()#

換行

6)把傳進去的實參新增至乙個列表,將這個列表返回給呼叫者.

下面**列印的結果分別是_________,________,________.

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)

說明講解:

def fn(val,list=):

#將傳進來的值新增到列表裡,注意這個列表是函式的,所以,後面的人呼叫也是新增到裡面,除非實參又給了乙個新的列表

return list #

返回這個列表給呼叫者

lst = fn(10)

lst3 = fn ("a"

)print

(id(lst3))

print

(id(lst))

print

(lst1)

print(lst3)

7)有函式定義如下:

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

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

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

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

print(calc(1,2))_error___

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

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

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

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

8)寫函式,傳入乙個引數n,返回n的階乘

例如:cal(7)  計算7*6*5*4*3*2*1

def

func(n):

sum = 1

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

sum *=i

return

sumprint(func(7))

9)寫函式,傳入n個數,返回字典     例如:min_max(2,5,7,8,4) 返回:(此題用到max(),min()內建函式)

def func(*args):  #max()方法返回給定引數的最大值,引數可以為序列。min()方法返回給定引數的最小值,引數可以為序列

return

print(func(

1, 5, 7, 6, 5, 4, 2, 5, 8, 55, 4, 1, 2))

函式命名空間和作用域

內建 命名空間 python直譯器啟動之後就可以使用的變數 函式名 全域性 命名空間 在函式外面的變數名 函式名 區域性 命名空間 每乙個函式都擁有自己的命名空間 python直譯器執行 載入順序 所有 內建空間函式名 變數 逐行 載入全域性空間變數 函式名 區域性空間的變數 函式名 在呼叫函式的時...

函式命名空間和作用域

內建 命名空間 python直譯器啟動之後就可以使用的變數 函式名 全域性 命名空間 在函式外面的變數名 函式名 區域性 命名空間 每乙個函式都擁有自己的命名空間 python直譯器執行 載入順序 所有 內建空間函式名 變數 逐行 載入全域性空間變數 函式名 區域性空間的變數 函式名 在呼叫函式的時...

函式 命名空間和作用域

一.命名空間。二.作用域 三函式的巢狀。今日新名詞 1 globals 函式 檢視全域性作用域的內容 2 locals 函式 檢視區域性作用域的內容 3 global 方法 呼叫全域性作用域的變數並獲得修改許可權 4 nonlocal 方法 呼叫區域性作用域的變數並獲得修改許可權.命名空間 用來存放...