1,簡述普通參數、指定參數、默認參數、動態參數的區別python
函數git
a.def(聲明自定義函數開始)數組
b.函數名()如:f1()app
c.返回值return(關鍵字)函數
函數內部一旦遇到return,如下代碼不在執行spa
d.參數code
1.形式參數(定義函數時的參數),實際參數(調用函數時的參數)對象
2.普通參數:數量一致,一一對應blog
print("普通參數:數量一致,一一對應") def f1(a,b): c = a + b print(c) f1(5,5)
3.指定參數索引
調用函數時指定參數如:f1(p="xxx")
print("指定參數:調用函數時指定參數") def g1(a,b): c = a + b print(c) g1(b = 4, a = 3)
4.默認參數
在定義函數時形式參數指定默認實參,默認參數要寫在尾部
print("默認參數:在定義函數時形式參數指定默認實參") def h1(a=5, b=3): c = a + b print(c) h1()
5.動態參數
*args (接收實際參數組合成元組)
print("動態參數:*args (接收實際參數組合成元組)") def i1(*args): print(args) i1(123, 456, 789)
**kwargs (接收實際參數組合成字典)
print("動態參數:**kwargs (接收實際參數組合成字典)") def j1(**kwargs): print(kwargs) j1(k1=123,k2=456,k3=789)
2,寫函數,計算傳入字符串中【數字】、【字母】、【空格] 以及 【其餘】的個數
#!/usr/bin/env python # -*- coding:utf-8 -*- #寫函數,計算傳入字符串中【數字】、【字母】、【空格] 以及 【其餘】的個數 def pduan(s): shuzi = 0 #統計數字 zimu = 0 #統計字母 kongge = 0 #統計空格 qita = 0 #統計其餘 for i in s: #循環字符串 if i.isdigit(): #判斷循環到的字符是不是數字 shuzi += 1 #若是是數字,統計加1 elif i.isalpha(): #判斷循環到的字符是不是字母 zimu += 1 #若是是字母,統計加1 elif i.isspace(): #判斷循環到的字符是不是空格 kongge += 1 #若是是空格,統計加1 else: #判斷循環到的字符都不是以上類型,則爲其餘 qita += 1 #若是是其餘,其餘統計加1 return {"shuzi":shuzi, "zimu":zimu, "kongge":kongge, "qita":qita} #返回由各類統計組合的字典 jieg = pduan("1567df jweiwo r22r") #調用函數傳入字符串 print(jieg) #打印函數 print("\n") #用字典索引的方式,分別獲取到各項統計到的數量 print("數字:", jieg["shuzi"], "字母:", jieg["zimu"], "空格:", jieg["kongge"], "其餘:", jieg["qita"])
3,寫函數,判斷用戶傳入的對象(字符串、列表、元組)長度是否大於5
#!/usr/bin/env python # -*- coding:utf-8 -*- """寫函數,判斷用戶傳入的對象(字符串、列表、元組)長度是否大於5""" print("寫函數,判斷用戶傳入的對象(字符串、列表、元組)長度是否大於5") def pduan(s): #定義函數 if isinstance(s,str) or isinstance(s,list) or isinstance(s,tuple): #判斷接收到的是不是(字符串、列表、元組)類型 if len(s) > 5: #判斷接收到的元素是否大於5 print("大於五") #大於5 else: print("小於五") #小於5 else: #若是接收到的不是(字符串、列表、元組)類型 print("您輸入的類型,不在範圍內") #不是(字符串、列表、元組)類型 打印提示 #shuju = "自貢玉1111111" #shuju = [123,456,789] shuju = (123,456,789,101112,131415,16171819) pduan(shuju) #調用函數
4,寫函數,檢查用戶傳入的對象(字符串、列表、元組)的每個元素是否含有空內容。
#!/usr/bin/env python # -*- coding:utf-8 -*- """寫函數,檢查用戶傳入的對象(字符串、列表、元組)的每個元素是否含有空內容。""" print("寫函數,檢查用戶傳入的對象(字符串、列表、元組)的每個元素是否含有空內容。") def hanshu(s): #定義函數 tj = False #空格統計默認False沒有 for i in s: #循環接收的字符串 if i.isspace(): #判斷循環到的字符是不是空格 tj = True #若是是空格將空格統計改成True有空格 return tj #返回空格統計 shuj = "112344233" hsh = hanshu(shuj) #調用函數 print(hsh)
五、寫函數,檢查傳入列表的長度,若是大於2,那麼僅保留前兩個長度的內容,並將新內容返回給調用者
#!/usr/bin/env python # -*- coding:utf-8 -*- """寫函數,檢查傳入列表的長度,若是大於2,那麼僅保留前兩個長度的內容,並將新內容返回給調用者""" print("寫函數,檢查傳入列表的長度,若是大於2,那麼僅保留前兩個長度的內容,並將新內容返回給調用者") def f2(s): #定義函數 if len(s) > 2: #判斷列表的長度是否大於2 return s[0:2] #若是大於2切片保留2位長度 else: return s #若是不大於2直接返回列表 fs = [123,456,789,987,654,321] f3 = f2(fs) #調用函數 print(f3)
六、寫函數,檢查獲取傳入列表或元組對象的全部奇數位索引對應的元素,並將其做爲新列表返回給調用者。
#!/usr/bin/env python # -*- coding:utf-8 -*- """寫函數,檢查獲取傳入列表或元組對象的全部奇數位索引對應的元素,並將其做爲新列表返回給調用者""" print("寫函數,檢查獲取傳入列表或元組對象的全部奇數位索引對應的元素,並將其做爲新列表返回給調用者") def f4(s): #自定義函數 tj = [] #統計奇數索引的元素 for i in range(len(s)): #循環列表的索引 if i % 2 == 1: #判斷循環到的索引除以2是否等於1 tj.append(s[i]) #若是除以2等於1,將此下標的元素追加到,統計奇數索引的元素 else: pass #若是除以2不等於1,什麼都不作 return tj #返回統計奇數索引的元素 fsa = [123,456,789,987,654,432] f5 = f4(fsa) #調用函數 print(f5)
七、寫函數,檢查傳入字典的每個value的長度,若是大於2,那麼僅保留前兩個長度的內容,並將新內容返回給調用者。
#!/usr/bin/env python # -*- coding:utf-8 -*- """寫函數,檢查傳入字典的每個value的長度,若是大於2,那麼僅保留前兩個長度的內容,並將新內容返回給調用者""" print("寫函數,檢查傳入字典的每個value的長度,若是大於2,那麼僅保留前兩個長度的內容,並將新內容返回給調用者") def f5(s): #定義函數 tj = {} #新建保留兩位長度的字典 for key,value in s.items(): #循環出字典的鍵和值 if len(value) > 2: #判斷循環到的字典值是否大於兩位 tj[key] = value[0:2] #若是大於兩位將字典值切片成兩位後,更新到新建保留兩位長度的字典 else: tj[key] = value #若是不大於兩位,就直接更新到新建保留兩位長度的字典 return tj #返回新建保留兩位長度的字典 dic = {"k1": "v1v1", "k2": [11,22,33,44], "k3": "12"} f6 = f5(dic) #調用函數 print(f6)
列2
#!/usr/bin/env python # -*- coding:utf-8 -*- """寫函數,檢查傳入字典的每個value的長度,若是大於2,那麼僅保留前兩個長度的內容,並將新內容返回給調用者""" print("寫函數,檢查傳入字典的每個value的長度,若是大於2,那麼僅保留前兩個長度的內容,並將新內容返回給調用者") dic = {"k1": "v1v1", "k2": [11,22,33,44], "k3": "12"} def f6(s): #定義函數 for key,value in s.items(): #循環出字典的鍵和值 if len(value) > 2: #判斷循環到的字典值是否大於兩位 s[key] = value[0:2] #若是大於兩位將字典值切片成兩位 else: s[key] = value #若是不大於兩位,就直接返回 f6(dic) print(dic)