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 ...