• 学Python的漫画漫步进阶 -- 第八步


    八、函数

    上一章介绍了字符串,本章详细介绍函数。在Python中,函数是一个可以重复使用的代码块,它只在被调用时运行。函数可以帮助我们组织和简化代码。你可以使用 def 关键字来定义函数。

    在这里插入图片描述

    在这里插入图片描述

    8.1 定义函数

    自定义函数的语法格式如下:
    以英文半角冒号结尾
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    例代码如下:
    在这里插入图片描述

    8.2 调用函数

    在定义好函数后,就可以调用函数了,很简单!

    8.2.1 使用位置参数调用函数

    在调用函数时传递的实参与定义函数时的形参顺序一致,这是调用函数的基本形式。
    在这里插入图片描述
    通过Python指令运行文件:

    在这里插入图片描述

    8.2.2 使用关键字参数调用函数

    在调用函数时可以采用“关键字=实参”的形式,其中,关键字的名称就是定义函数时形参的名称。

    在这里插入图片描述
    通过Python指令运行文件:

    在这里插入图片描述

    8.3 参数的默认值

    在这里插入图片描述
    通过Python指令运行文件:

    在这里插入图片描述

    8.4 可变参数

    在这里插入图片描述

    8.4.1 基于元组的可变参数(*可变参数)

    *可变参数在函数中被组装成一个元组。
    示例代码如下:
    在这里插入图片描述
    通过Python指令运行文件:

    在这里插入图片描述

    8.4.2 基于字典的可变参数(**可变参数)

    **可变参数在函数中被组装成一个字典。
    示例代码如下:

    在这里插入图片描述
    通过Python指令运行文件:

    在这里插入图片描述

    8.5 函数中变量的作用域

    变量可以在模块中创建,作用域(变量的有效范围)是整个模块,被称为全局变量。变量也可以在函数中创建,在默认情况下作用域是整个函数,被称为局部变量。

    在这里插入图片描述
    在这里插入图片描述
    示例代码如下:
    在这里插入图片描述
    通过Python指令运行文件,输出结果:

    在这里插入图片描述

    在这里插入图片描述

    修改示例代码如下:
    在这里插入图片描述
    通过Python指令运行文件,输出结果:

    在这里插入图片描述

    8.6 函数类型

    Python中的任意一个函数都有数据类型,这种数据类型是function,被称为函数类型。

    8.6.1 理解函数类型

    函数类型的数据与其他类型的数据是一样的,任意类型的数据都可以作为函数返回值使用,还可以作为函数参数使用。因此,一个函数可以作为另一个函数返回值使用,也可以作为另一个函数参数使用。
    在这里插入图片描述
    在这里插入图片描述

    示例代码如下:

    在这里插入图片描述

    通过Python指令运行文件,输出结果:

    在这里插入图片描述

    增加平方函数,示例代码如下:

    在这里插入图片描述
    add()和sub()函数有两个数字参数,具有相同的函数类型。square()函数只有一个数字参数,所以square()与add()、sub()函数的类型不同。

    8.6.2 过滤函数filter()

    在Python中定义了一些用于数据处理的函数,如filter()和map()等。我们先介绍filter()函数。

    filter()函数用于对容器中的元素进行过滤处理。
    在这里插入图片描述
    filter()函数的语法如下:
    在这里插入图片描述
    参数function是一个提供过滤条件的函数,返回布尔值。
    参数iterable是容器类型的数据。

    在这里插入图片描述

    示例代码如下:

    在这里插入图片描述
    通过Python指令运行文件,输出结果:

    在这里插入图片描述

    在这里插入图片描述

    8.6.3 映射函数map()

    map()函数用于对容器中的元素进行映射(或变换)。例如:我想将列表中的所有元素都乘以2,返回新的列表。
    在这里插入图片描述
    map()函数的语法如下:
    在这里插入图片描述
    参数function是一个提供变换规则的函数,返回变换之后的元素。
    参数iterable是容器类型的数据。
    示例代码如下:

    在这里插入图片描述
    在这里插入图片描述

    通过Python指令运行文件,输出结果:

    在这里插入图片描述

    8.7 lambda()函数

    我们之前学习的函数都是有名称的函数,例如在8.1节定义的rect_area()函数,rect_area就是其函数名。我们也可以定义匿名函数,匿名函数就是没有名称的函数。
    在Python中使用lambda关键字定义匿名函数。lambda关键字定义的函数也被称为lambda()函数,定义lambda()函数的语法如下。

    “参数列表”与函数的参数列表是一样的,但不需要用小括号括起来

    在这里插入图片描述

    在这里插入图片描述

    lambda()函数与有名称的函数一样,都是函数类型,所以8.6.1节的add()和sub()函数可以被lambda()函数替代。修改8.6.1节的代码示例如下:

    在这里插入图片描述

    在这里插入图片描述

    8.8 动动手——使用更多的lambda()函数

    在这里插入图片描述
    参考代码如下:

    在这里插入图片描述

    使用lambda()函数替换f1()函数:

    在这里插入图片描述

    8.9 练一练

    1 通过以下函数sum()定义代码,调用语句正确的是()。
    def sum(*numbers):
    total=0.0
    for number in numbers:
    total+=number
    return total
    A.print(sum(100.0,20.0,30.0))
    B.print(sum(30.0,80.0))
    C.print(sum(30.0,‘80’))
    D.print(sum(30.0,80.0,‘80’))

    2 通过以下函数area()定义代码,调用语句正确的是()。
    def area(width,height):
    return width*height
    A.area(320.0,480.0)
    B.area(width=320.0,height=480.0)
    C.area(height=480.0,width=320.0)
    D.area(320.0,‘480’)

    3 填空题:请在以下代码横线处填写一些代码,使之获得期望的输出结果。
    x=200
    def print_value():
    ____x
    x=100
    print("函数中x={0}".format(x))

    print_value()print("全局变量x={0}".format(x))
    输出结果:
    函数中x=100

    全局变量x=100

    4 判断对错:(请在括号内打√或×,√表示正确,×表示错误)。
    1)Python支持函数重载。()
    2)map()函数用于对容器中的元素进行变换。()

    8.10 函数的总结

    以下是Python中函数的一些主要特点和概念:

    1. 定义函数:使用 def 关键字定义函数,例如:
    def greet():
        print("Hello, World!")
    
    • 1
    • 2
    1. 函数参数:函数可以接受参数,参数是在调用函数时传递给函数的值。参数可以有默认值,例如:
    def greet(name='World'):
        print("Hello, " + name + "!")
    
    • 1
    • 2
    1. 可变数量参数:可以使用 *args**kwargs 来处理可变数量的非关键字参数和关键字参数。
    2. 返回值:函数可以使用 return 语句返回一个值,这是函数的输出。
    3. 文档字符串:每个函数都应该有一个顶级的文档字符串,解释函数是什么,以及提供了什么功能。
    4. 局部变量和全局变量:在函数内部定义的变量是局部变量,在函数外部定义的变量是全局变量。
    5. 嵌套函数:在一个函数内部定义的另一个函数是嵌套函数,嵌套函数对外部函数有全权访问。
    6. 高阶函数:可以接受其他函数作为参数,或者返回一个函数的函数是高阶函数。
    7. Lambda函数:Python中的Lambda函数是一种小型匿名函数,可以使用lambda关键字创建。
    8. 装饰器:装饰器是修改或增强其他函数的行为的函数。
    9. 生成器和迭代器:可以创建生成器和迭代器函数,用于处理大数据集或无限数据流。
    10. 模块和包:可以将函数组织到模块和包中,从而创建大型代码库。
    11. 异常处理:可以在函数中使用 try/except 块来处理可能的错误或异常。
    12. 递归函数:可以创建递归函数,这些函数会调用自己来解决问题。
    13. 闭包:闭包是一个返回函数的函数,返回的函数会记住定义它的环境。
    14. 内置函数:Python有很多内置函数,如map(), filter(), reduce(), sorted()等,可以直接使用。
    15. 函数式编程:Python支持函数式编程,包括使用map(), reduce(), filter()等高阶函数,以及使用匿名函数和装饰器。
    16. 异步编程:Python 3.5引入了async/await关键字,允许编写异步函数,用于处理I/O密集型任务。
    17. 生成器表达式:可以使用生成器表达式来创建生成器函数。
    18. 交互式编程:Python支持交互式编程,可以在命令行或Jupyter Notebook中直接输入和运行代码。
    19. 模块导入:可以使用import关键字来导入其他Python模块,并使用其中的函数。
    20. 装饰器:装饰器可以修改或增强其他函数的行为。
    21. 类方法:在类中定义的方法是类方法,可以通过类实例调用。
    22. 静态方法:使用@staticmethod装饰器定义的方法是静态方法,可以在类中直接调用,不需要实例化。
    23. 类变量和实例变量:类变量是在类中且在函数体之外声明的变量,实例变量是在类的实例中声明的变量。
  • 相关阅读:
    【计算机网络】 IP协议格式以及以太网帧结构
    java面试题记录
    【数据结构】关于单链表中的LNode与*LinkList
    background-repeat
    使用 Python 和 wxPython 进行批量文件扩展名替换
    C++入门教程(十一、宏)
    ScanImage介绍
    Nacos 开源版的使用测评
    如何平衡需求的优先级冲突?
    java.lang.Float类下toHexString(float f)方法具有什么功能呢?
  • 原文地址:https://blog.csdn.net/kingpower2018/article/details/132845413