• python基础一 day9 函数升阶(1)


    函数
    可读性强 复用性强
    def 函数名():
    函数体
    return 返回值
    所有的函数 只定义不调用就一定不执行
    先定义后调用

    函数名() #不接收返回值
    返回值 = 函数名() #接收返回值

    返回值
    没有返回值 :默认返回None
    不写return:函数内的代码执行完毕自动结束
    只写return:结束一个函数
    return None
    返回一个值 :结束了函数且返回一个值,可以是任意的值
    返回多个值 : 多个值之间用逗号隔开,接收的时候可以用一个变量接收(元祖),也可以用等量的多个变量接收

    def f(a):
    return '栗子'

    ret = f('苹果')
    print(f('苹果'))

    参数
    形参 定义函数的时候
    位置参数 :必须传
    *args :动态参数 可以接收任意多个按位置传入的参数,得到的args是一个元祖,kwargs是一个字典
    默认参数 : 可以不传 —— 陷阱
    **kwargs : 动态参数 可以接受任意多个按关键字传入的参数
    实参 调用函数的时候
    按照位置传参数
    按照关键字传参数
    可以混用 位置参数必须在关键字传参之前
    不能对一个参数重复赋值


    def 娃哈哈(*args):
    print(args)

    # 娃哈哈(1,2,3,4)
    l = [1,2,3,4]
    娃哈哈(*l)


    默认参数陷阱:
    def qqxing(k,l = {}):
    # l.append(1)
    l[k] = 'v'
    print(l)

    qqxing(1) #[1]
    qqxing(2) #[1,1]
    qqxing(3) #[1,1,1]


    def s(ss=[]):
    ss.append(1)
    print(ss)
    s()
    s([])
    s()
    结果:

    [1]
    [1]
    [1, 1]



    # 如果默认参数的值是一个可变数据类型,
    # 那么每一次调用函数的时候,
    # 如果不传值就公用这个数据类型的资源





  • 相关阅读:
    react-webpack
    react
    重置手机过程
    运用 Node-RED 开发 LoRa 应用
    IBM Node-RED 安装与使用教程
    Node-RED 入门教程:简介
    Thingsboard 3.0 修改 Title、默认语言、主题颜色
    Thingsboard 3.0 通过 tb-gateway 网关接入 MQTT 设备教程
    Thingsboard 入门学习笔记:属性
    ThingsBoard 3.0 版本发布
  • 原文地址:https://www.cnblogs.com/wang-tan/p/11041858.html
Copyright © 2020-2023  润新知