zoukankan      html  css  js  c++  java
  • 第二十五节,自定义函数作业

    1,简述普通参数、指定参数、默认参数、动态参数的区别

    函数

             a.def(声明自定义函数开始)

             b.函数名()如:f1()

             c.返回值return(关键字)

                       函数内部一旦遇到return,以下代码不在执行

             d.参数

                       1.形式参数(定义函数时的参数),实际参数(调用函数时的参数)

                       2.普通参数:数量一致,一一对应

    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("
    ")
    
    #用字典索引的方式,分别获取到各项统计到的数量
    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)

    5、写函数,检查传入列表的长度,如果大于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)

    6、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

    #!/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)

    7、写函数,检查传入字典的每一个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)

     

  • 相关阅读:
    SignalR2结合ujtopo实现拓扑图动态变化
    SignalR2简易数据看板演示
    使用SignalR 2进行服务器广播
    使用SignalR实时Web应用程序
    ZooKeeper安装
    MongoDB安装
    线程安全与非线程安全
    监听器,事件对象,事件源
    Graphics与Canvas
    JDialog
  • 原文地址:https://www.cnblogs.com/adc8868/p/5677312.html
Copyright © 2011-2022 走看看