• 函数概述


    一:认识函数:
    在一个完整的项目中,某些功能会反复使用。那么会将整个功能封装成函数
    当我们要使用功能的时候,直接调用函数即可。

    函数本质:函数就是对功能的封装

    优点:
    1、简化代码结构,而且增加了代码的复用度(重复使用的程度)
    2、如果想修改某些功能或者调试某个BUG,只需要修改对应的函数即可

    定义函数:
    格式:
    def 函数名(参数列表):
    语句
    return 表达式
    def:函数代码块以def关键字开始
    函数名:循环标识符规则
    参数列表(参数1,参数2,...,参数n):任何传入函数的参数和变量
    必须放在圆括号之间,用逗号分隔。函数从函数的调用者那里获取的信息
    :函数内容(封装的功能)以冒号开始,而且缩进
    语句:函数封装的功能
    return:一般用于结束函数的,并返回信息给函数调用者
    表达式:即为要返回给函数的调用者的信息
    注意:最后的return表达式,可以不写,相当于return None


    函数的调用
    格式:函数名(参数列表)

    函数名:要使用的功能的函数名字
    参数列表:函数的调用者给函数传递的信息


    函数调用的本质:实参给形参赋值的过程

    --------------------------------------
    二、函数的参数

    举例:
    #形参(形式参数):定义函数时,小括号中的变量,本质是变量
    #参数必须按顺序传递
    def myprint(string,age):
    print("%s,%d" %(string,age))

    #实参(实际参数):调用函数时给函数传递的数据,本质是值
    myprint("郭杰",19)

    --------------------------------------
    三、函数的返回值
    举例:
    def mySum(num1,num2):
    num3 = num1 + num2
    #将结构返回给函数的调用者
    return num3
    #执行完return语句,函数就结束了,return后面的语句不执行

    res = mySum(1,2)
    print(res)

    ------------------------------------------
    四:传递参数

    值传递:传递的是不可变类型
    不可变类型:string、tuple、number
    举例:
    def func1(num):
    num = 10
    temp = 20
    func1(temp)
    print(temp)


    引用传递:传递的可变类型
    可变的:list、dict、set
    举例:
    def func2(lis):
    lis[0] = 100

    li = [1,2,3,4]
    func2(li)
    print(li)

    ---------------------------------
    5、关键字参数
    概念:它允许函数调用时参数的顺序与定义时不一致

    def myPrint(str,age):
    print(str,age)

    #使用关键字参数
    myPrint(age = 18,str = "sunck is a good man")

    #关键字参数,一般不这样写

    ----------------------------------------------
    6、默认参数
    概念:调用函数时,如果没有传递参数,那么则使用默认参数

    以后要用默认参数,最好将默认参数放到最后
    def myPrint(str = "sunck is a good man",age=18):
    print(str,age)

    myPrint()
    -----------------------------------------
    7、不定长参数
    概念:能处理比定义时更多的参数

    #加了星号(*)的变量存放所有未命名的变量参数,如果
    在函数调用时指定了参数,它就是一个空元组
    第一种写法:
    def func(name,*args):
    print(name)
    for x in arr:
    print(x)
    第二种写法:
    #**代表键值对的参数字典,和*所代表的意义类似
    def func(**kwargs)
    print(kwargs)

    func(x=1,y=2)

    #可以接收任意参数
    def func3(*args,**kwargs):
    pass


    -------------------------------------------
    匿名函数:
    概念:不适用def这样的语句定义函数,使用lambda来创建匿名函数

    特点
    1、lambda只是一个表达式,函数体比def简单
    2、lambda的主题是一个表达式,而不是代码块,仅仅只能在lambda表达式中
    封装简单的逻辑
    3、lambda函数有自己的命名空间,且不能访问自由参数列表之外的或
    全局命名空间参数
    4、虽然lambda是一个表达式,且只看起来是能写一行,与c、c++的内联函数
    不同。

    格式:
    lambda 参数1,参数2,...,参数n:expression
    举例:
    sum = lambda num1,num2:num1+num2
    print(sum(1,2))
  • 相关阅读:
    iscroll4实现轮播图效果
    用css样式围剿等高列问题(转载)
    一些小bug
    前端代码规范
    !DOCTYPE html文档类型声明简写 HTML5 DOCTYPE缩写
    JS判断鼠标向上滚动还是向下滚动
    css Cursor:url()自定义鼠标指针样式为图片
    线段树-矩形面积求并
    值域线段树 bzoj 4627
    简单数位DP
  • 原文地址:https://www.cnblogs.com/guojie-guojie/p/9230464.html
Copyright © 2020-2023  润新知