• 关于python函数,你该了解这些


    cc8b9af695d241f1abcc6a424efd5529.jpeg

     目录

    1.创建一个函数

    举例

    2.调用函数

    形参

    实参

    位置参数

    关键字参数

    可变长参数

     其他

     变量的作用域

    全局变量

    局部变量

    3.匿名函数


    1.创建一个函数

    语法格式

    1. def functionname([parameterlist]):
    2. [functionbody]

    functionname:函数名称,在调用函数时使用

    parameterlist:可选参数,用于指定向函数中传递的参数(也可以没有)。

    functionbody:函数体,函数被调用的后,要执行的功能代码

    举例

    1. def func(x, y, z):
    2. return x * 100 + y * 10 + z

    2.调用函数

    语法格式

    functionname([parameterlist])

    形参

    形参全名形式参数,又称虚拟变量。实参和形参可以重名。形参只是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数。必须注意实参的个数,类型应与形参一一对应。

    实参

    实参全名实际参数,在调用函数时()里写的是实参,实参可以是常量、变量、表达式或者函数。需要注意的是,在进行函数调用时,这些实参必须要有明确的值。

    位置参数

    按照从左到右的顺序依次定义的参数

    举例

    调用上面创建的函数

    1. def func(x, y, z):
    2. return x * 100 + y * 10 + z
    3. print(func(3,2,1))

    运行结果

    关键字参数

    关键字参数针对实参,即实参在定义时,按照key=value形式定义

    举例

    1. def func(x, y, z):
    2. return x * 100 + y * 10 + z
    3. print(func(y=3,z=2,x=1))

    执行结果

    可变长参数

    不确定调用时需要传入多少个参数

    按位置定义的可变长度的实参(*)

    语法格式

    def func(x, y, *args)

     *args 会把传入的 多余的 参数以一个元组的形式存放

    举例

    1. def func(x, y, z,*args):
    2. print(args)
    3. return x * 100 + y * 10 + z
    4. print(func(1,2,3,4,5,6))

    执行结果

     其他

    1. def func(x, y, z):
    2. return x * 100 + y * 10 + z
    3. print(func(*{'x':3, 'y':2, 'z':1}))

    将字符'x'传给第三个参数z,字符'y'传给第二个参数y,字符'z'传给第一个参数x

    执行结果

     变量的作用域

    全局变量

    不仅可以在函数外访问,函数内也可以访问

    • 在函数外定义
    • 在函数内定义,需要使用global关键字修饰

    局部变量

    在函数内部定义并使用的变量,只在函数内部有效,函数运行之前或者运行完毕后,所有的名字就都不存在了,所以在函数外部使用函数内部定义的变量,会抛出NameError异常

    ​​​​​​​3.匿名函数

    指没有名字的函数,应用在一个需要函数但是又不想费事起名字的情况,通常情况,这种函数只使用一次,关键字lambda

    语法格式

    result=lambda[arg1[,arg2,...,argn]]:expression

    result:用于调用lambda表达式

    [arg1[,arg2,...,argn]]:可选参数,指定要传递的参数列表

    expression:必选参数,用于指定一个实现具体功能的表达式

    举例

    定义一个计算圆面积的函数并调用

    代码:

    1. import math
    2. def s(r):
    3. s=math.pi*r*r
    4. return s
    5. r=3
    6. print('半径面积为:%d,圆面积为:%.2f'% (r,s(r)))

    执行结果

     转化为lambda表达式的代码:

    1. import math
    2. r=3
    3. s=lambda r:math.pi*r*r
    4. print('半径面积为:%d,圆面积为:%.2f'% (r,s(r)))

  • 相关阅读:
    使用springBoot+Redis实现分布式缓存
    人工智能之Tensorflow编程模型
    迁移学习笔记4:ACML-Sinno Jialin Pan
    解决 SSLError: HTTPSConnectionPool(host=‘huggingface.co‘, port=443)
    【OOM-笔记】
    SpringMVC的高频面试题
    C# 流Stream详解(3)——FileStream源码
    drf重写authenticate方法实现多条件登录(源码分析)
    IOS课程笔记[6] 基础控件
    机器学习小白理解之一元线性回归
  • 原文地址:https://blog.csdn.net/m0_67388084/article/details/127958283