python迭代函式例題 Python 函式 練習

2021-10-21 07:57:15 字數 3277 閱讀 6449

1、寫函式,接受n個數字,求這些引數數字的和。(動態傳參)

def sum(*args):

val=0for i inargs:

val= i+valreturn val

2、讀**,回答:**中,列印出來的值a, b, c分別是什麼?為什麼?

a = 10

b = 20

def test(a, b):

print(a, b)

c = test(b,a)

print(c)

a = 20, b = 10 , c =none

因為函式中沒有return, 因此返回的是none

3、讀**,回答:**中,列印出來的值a, b, c分別是什麼?為什麼?

a = 10

b = 20

def test(a, b):

a = 3

b = 5

print(a, b) #a =3,b =5

c = test(b,a)

print(c) #c=none

print(a, b) #a = 10 , b = 20

a = 10 b = 20, c =none

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

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

eg:傳入函式兩個引數【1,2,3】(22,33)最終args為(1,2,3,22,33)

1 list = [1,2,3]2 tuple = (22,33)3 def test(*args):4 print(args)5 test(*list,*tuple)

5、寫函式,傳入函式中多個實參,將每個實參的鍵值對依次新增到函式的動態引數kwargs裡面。

1 dic = 2 dic1 = 3 def test(**kwargs):4 print(kwargs)5 test(**dic,**dic1)

6、下面**成立麼?如果不成立為什麼報錯?怎麼解決?

6.1a = 2

print(a)

##成立

6.2a = 2

a += 1

print(a)

##不成立,因為函式中的a是全域性變數,不能直接賦值,需要在函式中輸入global a **

6.3a = 1

def inner():

print(a)

inner()

##成立,看沒問題,改的話就會報錯

6.4a = 1

def inner():

a += 1

print(a)

inner()

##報錯,因為直接在函式內的函式修改上外面函式的變數,因此在內部函式中新增 nonlocal a **即可

7、寫函式,接受兩個數字引數,將較小的數字返回

1 defmy_min(a, b):2 return a if a > b elseb3 mmin = my_min(103,203)4 print(mmin)

8、接受乙個引數(必須是可迭代物件),將每個元素以「_」相連線,形成新的字串,並返回

eg:傳入的可迭代物件為[1,"python", "sun wu kong "]返回的結果為'1_python_sun wu kong '

def func(it):

result= ""

for el init:

result+= str(el) + "_"

return result[:-1]

print(func([1,"asd","23"]))

9、寫函式,傳入n個數,返回字典

def func(*n):

return

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

defcal(n):if n == 1:returnnreturn n * cal(n-1)print(cal(3))

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

defpuke():

hua= ["紅心","梅花","黑桃","方塊"]

dian= ["a","2","3","4","5","6","7","8","9","10","j","q","k"]

result=for huase inhua:for dianshu indian:

12、有如下函式:

def inner():

print(666)

inner()

用兩種以上的方式,執行inner()函式

## 第一種

inner()

fn()

13、相關面試題

1、有函式定義如下:

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

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

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

print(calc(1,2,3,4,5))## (1+2)*(3-4)+5

print(calc(1,2))  ## error

print(calc(e=4,c=5,a=2,b=3)) ## (2+3)*(5-1)+4

print(calc(1,2,3)) ## (1+2)*(3-1)+2

print(calc(1,2,3,e=4)) ## (1+2)*(3-1)+4

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

2、(此題有坑)下面**列印的結果分別是 ##

def extendlist(val,list=):## 預設值在記憶體中只會產生乙份,(位址)

return list

list1 = extendlist(10)   ## 預設值位址列表

list2 = extendlist(123,) ## 產生新的位址列表

list3 = extendlist("a")   ## 預設值位址列表,既 list1 和 list 3 相同

print("list1=%s"%list1)  ## list1 = ["10","a"]

print("list2=%s"%list2) ## list2 = ["123"]

print("list3=%s"%list3) ## list3 = ["10","a"]

測試 ## print(id(list1))

## print(id(list3))

14、寫**完成99乘法表(公升級題)

for i in range(1,10):for j in range(1,i+1):print("%s*%s=%s"%(i,j,i*j),end="")print() ##print()預設值end = "\n"

尤拉函式(例題)

如果不熟悉尤拉函式可轉超連結 正題 1.儀仗隊 求從 0,0 點可以看到的點,我們考慮正比例函式的斜率,同一斜率上只能看到乙個點,我們要知道對於斜率0 1在乙個n n的點陣中有多少可能的斜率使得有若干點在函式上。觀察規律 1 1 顯然答案為0 自己看到自己當然不算了 2 2 有斜率0,1 2 當然0...

總結 多項式生成函式例題 1

1.禮物 先給你們來個簡單點的。那麼其實就是在求最小的 beginans sum limits x i y i c 2 sum limits x i y i 2 2 x i y i c c 2 end 可以發現貢獻分成了兩部分。一部分的變數是 c 另一部分是 x,y 這樣分別計算最小值即可。右邊的那...

python 函式例子 Python3函式之例子

1.分別使用遞迴 迴圈和生成器求菲波那切數列 遞迴 def fib rec n if n 0 return 1 if n 1 return 1 return fib rec n 1 fib rec n 2 fib rec 5 迴圈 def fib loop n lst for i in range ...