第二十五節,自定義函數做業

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)
相關文章
相關標籤/搜索