標籤:計算 索引值 lis 遞迴 int pytho 元組 val 奇數
1.普通參數、指定參數、預設參數、動態參數的區別
普通參數即普通形式的傳參。
def f(a): a = a+1 return aret = f(3)
指定參數,按順序插入參數,或者通過“=”指定參數。
def f(a,b,c) e = a+b+c#預設按順序指定參數f(1,2,3)#或者自己指定參數f(c=1,b=2,a=3)
預設參數,即無需指定,函數預設給定。
動態參數,
*args 是指當我們需要傳入多個參數時,可以用*args代表多個參數,不用分別在括弧裡指定多個參數
**kwargs, 當我們需要傳入索引值對類型的參數時就可以用**kwargs
def f(a,*args,**kwargs)##萬能模式,可以插入單個參數,多個參數,索引值對參數
2.寫函數,計算傳入字串中【數字】、【字母】、【空格] 以及 【其他】的個數
def f1(a): num_num = 0 #數字個數 num_ABC = 0 #字母個數 num_space = 0 #空格個數 num_else = 0 #其他個數 for i in a: if i.isdigit(): num_num +=1 elif i.isalpha(): num_ABC +=1 elif i.isspace(): num_space +=1 else: num_else +=1 return num_num,num_ABC,num_space,num_elseli = f1("zifuchuan")print(li)3、寫函數,判斷使用者傳入的對象(字串、列表、元組)長度是否大於5。
def f3(arg): if len(arg)>5: return True else: return Falseret = f2({‘a‘:‘b‘})print(ret)4、寫函數,檢查使用者傳入的對象(字串、列表、元組)的每一個元素是否含有空內容。
def f4(*args): for i in args: if i == "": return True return Falseret = f2([11,22,‘‘,13])print(ret)
5、寫函數,檢查傳入列表的長度,如果大於2,那麼僅保留前兩個長度的內容,並將新內容返回給調用者。
def f5(*args): li = list() count = 0 if len(arg)>2: for i in args: count +=1 li.append(i) if count ==2: break return li else: return argret = f2(11,22,33)print(ret)
6、寫函數,檢查擷取傳入列表或元組對象的所有奇數位索引對應的元素,並將其作為新列表返回給調用者。
def f6(*args): count = 0 li = [] for i in args: count +=1 if count%2 ==1: li.append(i) return liret = f6(11,22,33,44)print(ret)
7、寫函數,檢查傳入字典的每一個value的長度,如果大於2,那麼僅保留前兩個長度的內容,並將新內容返回給調用者。
def f7(arg): ret = {} for key,value in arg.items(): if len(value) > 2: ret[key] = value[0:2] else: ret[key] = value return retdic = {"k1": "v1v1", "k2": [11, 22, 33, 44],"k3":"12"}r = f7(dic)print(r)8、寫函數,利用遞迴擷取斐波那契數列中的第 10 個數,並將該值返回給調用者。
def f8(a1,a2,count): count +=1 a3 = a1 + a2 if count ==10: print(a1) return f8(a2,a3,count)f8(0,1,0)
python函數練習題