• python疑难杂症(10)---Python函数def的定义分类,包括内置函数、外置函数、匿名函数、闭包函数、生成器函数等


    本部分详细讲解Python函数的定义、常见的函数类型,尤其是特色函数包括内置函数、外置函数、匿名函数、闭包函数、生成器函数等以及用法。后续将对这类函数重点讲解使用方法。

    函数定义:

    函数是大多数编程语言使用的一个概念,函数是一段具有一定功能程序体,可以被反复多次调用。函数包含以下特征:

    1、函数名:用于标识函数的的字符串,并可以通过该函数名调用执行函数,实现其功能,在python中,使用def 开头,后面跟 ( 括号和参数。以:结束
    如下:

    def  outhello(string1):

        print( f'打印的字符串是:{ string1}')

    outhello('python  hello!')

    2、参数:输入给函数的值,这个是函数接收外部数据的接口,在函数内部可以使用参数进行操作或计算。

    3、函数体:是一段可以执行的代码块。在函数体中可以进行各种操作、计算等。

    4、返回值:函数可以返回处理结果,供调用者使用,是函数向外输出处理内容的接口,在python中通过return + 返回内容,结束函数的运行并返回后面的结果。当然函数也可以不返回内容,即return 后面为空。

    Python函数类型

    Python作为广泛使用的语言,其函数中有许多自己独有的函数类型特性。

    自定义函数:

    像上面那种就是比较普通的自定义函数,对于重复的功能,通过函数定义,减少代码工作量。

    内置函数:

    内置函数是Python 提供了可以直接使用,不需要使用import导入模块来装入内存的,如

    print():用于将内容输出到标准输出(通常是控制台).

    len():用于返回对象的长度或元素个数,例如字符串的字符数、列表的元素个数等.

    type():用于返回对象的类型.

    int():用于将一个数值或字符串转换为整数.

    float():用于将一个数值或字符串转换为浮点数.

    str():用于将对象转换为字符串.

    list():用于将可迭代对象转换为列表.

    tuple():用于将可迭代对象转换为元组.

    dict():用于创建字典对象.

    set():用于创建集合对象.

    range():用于生成一个指定范围的数字序列.

    input():用于从用户处获取输入.

    内置函数,python有200多个,常用的有70个左右,具体个数因版本而已,越往后越多。

    外置函数:

    python的外置函数是指需要通过导入模块,才能调用的函数。python语言之所以广泛使用,是因为有着丰富的外置功能模块,每个模块可以实现一个主题的功能,而里面又包含很多函数供调用,例如pandas、numpy、string等

    例如模块pandas中包含函数

    data.shape            # 行数列数

    data.dtypes           # 所有列的数据类型

    data['id'].dtype      # 某一列的数据类型

    data.ndim             # 数据维度

    data.index            # 行索引

    data.columns          # 列索引

    data.values           # 对象值

    其中dada为pd.DataFrame的数据类型。

    又如:

    import string

    type(string) 

    str_func = [i for i in dir(string)  if not i.startswith('_')]

    print(str_func)

    print(len(str_func))

    输出:['Formatter', 'Template', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'capwords', 'digits', 'hexdigits', 'octdigits', 'printable', 'punctuation', 'whitespace']

    12

    string模块中共有12个外置函数。

    匿名函数

    匿名函数是 lambda 表达式,是用于一次性的简单函数。例如:

    lambda arg: expression

    ,其中, arg是函数的参数,可以是一个或多个;expression是函数的返回值,通常是一个简单的表达式,调用时,作为一个整体,首先将参数arg带入expression表达式,计算结果并返回。

    num1 = lambda x, y: x * y

    result1 = num1 (3, 5)

    print(result1)  # 输出 15

    Lambda函数可以用于对列表中的每个元素进行操作:

    testlist = [1, 2, 3,]

    squlist = list(map(lambda x: x**2, testlist))

    print(squlist)  # 输出:[1, 4, 9]

    Lambda函数通常与其他函数(例如map()、filter()等)一起使用,以提供简洁的操作,减少代码量。

    闭包函数

    闭包函数是指在一个函数内部定义了另一个函数,并且内部函数可以访问外部函数的变量。这种函数形式可以用来创建一些特定的函数,例如函数工厂或者装饰器。

    def aaa(x):

        def bbb(y):

            return x * y

        return bbb

    ride1= aaa(6)

    result = ride1(9)

    print (result)

    # 输出54

    此处是闭包函数,也是因为函数返回值不只是具体内容,也可以是函数的名称,此处就是返回内容是函数的名称,后面依照函数格式调用。这个以后在详细说明。

    生成器函数

    生成器函数使用 yield 关键字来定义,可以通过迭代器的方式逐步生成结果,而不是一次性生成所有结果。生成器函数不是立马生成所有数据,而是到需要数据的时候在生成,节省内存,能够记录状态 并通过next()函数,访问下一个状态。具备可迭代特性, 函数中包含yield语句,这个函数的执行结构就是“生成器”。

    例如:

    def fibonacci():

        a, b = 0, 1

        while True:

            yield a

            a, b = b, a + b

    fib = fibonacci()

    print(next(fib))  # 输出 0

    print(next(fib))  # 输出 1

    print(next(fib))  # 输出 1

    这些是 Python 中常见的函数类型,每种类型都有不同的特点和用途。

    欢迎收藏、点赞、和转发、你的阅读是我的前进动力。

  • 相关阅读:
    IDENTITY_INSERT 设置为 OFF 时,不能为表 ‘t_user‘ 中的标识列插入显式值
    乘用车排气系统流场的数值模拟
    基于二次型性能指标的燃料电池过氧比RBF-PID控制
    基于单片机的智能病床呼叫系统设计与仿真
    AsyncHttpClient And Download Speed Limit
    C++类的赋值操作
    k8s之三大探针
    DC3算法相关题目
    命 运
    Success! kcat is now built
  • 原文地址:https://blog.csdn.net/m0_59917021/article/details/136650994