Python学习之路:函数

目录

1.函数的概述
2.返回值
3.参数
4.lambda函数
5.拆包和组包

函数

一.概述

  1. 作用:模块化编程,代码复用

  2. 语法:

    函数必须先定义后调用

    函数的定义与调用

    # 函数的定义
    def 函数名(形参):
        """
        说明文档
        Ctrl + Q 查看
        """
        ...
        return 返回值
    
    
    # 函数的调用
    func1(实参)
    
  3. 变量的作用域

    • 指的是变量的作用范围
    • 针对函数而言,把变量分为全局和局部作用域
    • 全局作用域对应的全局变量,局部作用域对应的局部变量
    局部变量全局变量
    局部作用域w/r使用global声明,列表这种可变类型不需要声明
    全局作用域/w/r

二.返回值

  • return后面跟的就是返回值
    • 不写return:代表没有返回值(返回值是NONE)
    • return 值1, 值2…:代表返回多个值,可以使用元组的形式返回,也可以不写小括号
  • return的作用:
    • 返回值
    • 结束程序:return后面的代码不会执行(类似于break的作用)

三.参数

  • 参数分为形参和实参

  • 形参指的是函数定义时书写的参数

    形参格式备注
    普通参数def f1(name):
    缺省参数(默认参数)def f1(name=‘张三’):传参的时候可以修改缺省参数的值
    不定长位置参数def f1(*args):
    不定长关键字参数def f1(**kwargs):

    形参混用时书写顺序的问题:

    普通参数 -> 不定长位置参数 -> 缺省参数 -> 不定长关键字参数

  • 实参指的是函数调用时传递的参数

    实参格式备注
    位置参数f1(‘张三’)顺序必须和形参的顺序一一对应
    关键字参数f1(name=‘张三’)顺序无需对应,但是混用的时候必须在位置参数后书写
    不定长位置参数f1(*元组名)可以直接按照*元组名的格式传递元组的数据
    不定长关键字参数f1(**字典名)可以直接按照**字典名的格式传递字典的数据

四.lambda函数

  • 一般情况下需要书写函数名,但是也存在一种匿名函数—lambda函数

    # 不带参数的
    f1 = lambda: print('hello')
    # 带普通参数的
    f2 = lambda a, b: print(a + b)
    # 带缺省参数的
    f3 = lambda b, a=1: print(a + b)
    # 带不定长位置参数的
    f4 = lambda *args: print(args)
    # 带不定长关键字参数的
    f5 = lambda **kwargs: print(kwargs)
    # 带三目运算符的
    f6 = lambda a, b: a if a > b else b
    

五.拆包和组包

  • 交换两个变量,无需引入临时变量,可以直接使用拆包的方式进行

    a = 1
    b = 2
    # 交换a和b的值
    a, b = b, a
    print(a, b)
    
  • 元组的拆包

    方式1:常用来获取元组中每个变量的值

    # 元组的拆包
    t1 = (1, 2, 3)
    # 方式1
    a, b, c = t1
    print(a, b, c)
    

    方式2:常用来在函数调用时作为实参进行参数的传递

    def f1(*args):
        ...
    
    t1 = (1, 2, 3)    
    f1(*t1)
    
  • 字典的拆包

    方式1:用来获取字典每一个键

    注意字典的拆包只能把键拆出来,无法获取值

    # 字典的拆包
    d1 = {'name': '张三', 'age': 22}
    # 方式1
    k1, k2 = d1
    print(k1, k2)
    

    方式2:用来在函数调用的时候作为实参进行传参

    def f1(**kwargs):
        ...
    
    d1 = {'name': '张三', 'age': 22}
    f1(**d1)
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值