• 重制版 day 11函数基础


    day 11函数基础

    函数就是实现某一个特定功能的代码的封装

    函数就是将实现某一个或者某一类功能的代码打包,在需要使用这个功能的时候,直接调用包,直接使用封装的代码函数

    函数的作用:将重复的操作封包,在使用的时候进行调用

    函数的分类:

    系统函数:系统创建的函数,本身自带的函数

    自定义函数:程序员自己创建的函数

    定义函数

    语法:

    def 函数名(形参列表):

    ​ 函数说明文档

    ​ 函数体

    说明:

    1)def-关键字;固定写法

    2)函数名-由程序员自己命名;

    ​ 两个要求:是标识符,不是关键字

    ​ 三个规范:见名知义

    ​ 所有的字母都小写,多个单词用下划线隔开

    ​ 不使用系统的函数名,类名和模块

    3)() —固定写法

    4)形参列表-以’变量名1,变量名2,变量名3,…'的形式存在,根据情况变量名可以为0,也可以为多个

    作用:将函数外部的数据传递到函数里面

    确定形参的方法:看实现函数的功能需要不需要额外的数据,需要多少个数据

    5)函数说明文档-多行注释,对函数功能进行解释

    6)函数体-实现函数功能的代码

    # 练习:定义一个函数,删除列表中所有的空值(包括None,和其他空值(比如空字符串、空列表、空元组等))
    def del_None(list):
        for i in list[:]:
            # if bool(i)==0 and i!=0: 条件对应的表达式如果不是布尔,转换成布尔看结果是否为True
            if (not i) and (i !=0 ):
                list.remove(i)
        print(list)
    list1=[None,'',[],1,[123],{},0]
    del_None(list1)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    调用函数

    语法:

    函数名(实参列表)

    说明:

    1)函数名-明确调用哪个函数,必须是已经定义过的函数名

    2)( ) --固定写法

    3)实参列表 -以’数据1,数据2,数据3,…'的形式存在,每一个数据就是一个实参

    定义函数不会执行函数体,调用函数的时候才会执行函数体

    函数调用过程

    每次在调用函数的时候,执行步骤为:

    第一步:回到函数定义的位置

    第二步:传参

    第三步:执行函数体

    第四步:确定函数返回值

    第五步:回到函数调用的位置,接着往后执行

    函数的参数

    实参类型:

    根据实参的提供方式,将实参分为位置参数和关键字参数

    位置参数:以’实参1,实参2,实参3,…'的形式存在,让实参和形参一一对应,顺序改变,实参值改变

    关键字参数:以’形参1=实参1,形参2=实参2,…‘的形式存在,通过’='号对应,顺序改变,实参值不会改变

    注意:位置参数和关键字参数可以一起用,但位置参数的位置在关键字参数的前面

    参数默认值:

    定义函数的时候可以通过’形参名=数据’的方式给形参赋值默认值;在调用的时候,有默认值的形参,可以不用传参

    如果需要跳过有默认值的参数,使用关键字参数传参

    注意:在定义函数的时候,没有默认值的形参必须在有默认值的形参前面

    def func2(x,y=10):
        print(x,y)
    func2(2)  # x=2 y默认=10
    func2(100,20) # x=100,y=20
    
    • 1
    • 2
    • 3
    • 4

    参数类型说明:

    对形参类型进行说明,可以在函数体里方便代码提示

    没有默认值的参数类型说明,直接在形参后面加:类型名

    存在默认值,默认值的类型就是形参的数据类型

    返回值数据类型说明: -> 数据类型

    *对应的不定长参数:

    参数个数不确定的时候可以使用不确长参数

    定义函数的时候,如果在某一个形参前面加*号,这个形参会变成不定长参数,可以传参0个或者多个参数

    带*的不定长参数的本质是一个元组,接收到的所有的实参是这个元组的元素

    def sumN(*nums):
        sum1=0
        for i in nums:
            sum1+=i
        print(sum1)
    sumN(5,123,23)
    sumN(45678,12231,5234)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    定义函数的时候单独使用*号,调用函数的时候,*号后面的参数必须使用关键字参数传参

    def fun1(x,*,y,z)
    	pass
    fun1(1,y=2,z=2)
    
    • 1
    • 2
    • 3
  • 相关阅读:
    T1级,生产环境事故—Shell脚本一键备份K8s的YAML文件
    云原生—Rust编程语言能与C/C++媲美
    银行 IT 架构到底要不要云化?
    YOLO-V3实时检测实现(opencv+python实现)——改进——>更加的易懂
    分类预测 | MATLAB实现SSA-CNN-LSTM-Attention数据分类预测(SE注意力机制)
    Spark Executor decommission 原理分析
    在使用高防IP的时候易出现什么问题,该如何解决呢?
    java计算机毕业设计ssm大学生心理健康平台(源码+系统+mysql数据库+Lw文档)
    班级校园网页设计作业 静态HTML我的班级网页 DW班级网站模板下载 大学生简单班级网页作品代码 我的大学网页制作 学生班级网页设计作业
    电容笔可以用什么代替?好用电容笔品牌推荐
  • 原文地址:https://blog.csdn.net/Feifei_peng/article/details/126109197