zoukankan      html  css  js  c++  java
  • 函数的基本使用与函数的参数

    引子

    什么是函数?

    函数就是盛放代码的容器

    具备某一功能的工具-》函数

    实现准备工具的过程-》函数的定义

    遇到应用场景拿来用-》函数的调用

    函数的使用原则: 先定义 后调用

    为何要用函数?

    ​ 解决下述问题:

    ​ 1、代码组织结构不清晰、可读性差

    ​ 2、可拓展性差

    如何用函数?

    ​ 定义的语法:

    def 函数名(参数1,参数2,参数3,...):
    	"""函数的文档注释"""
        代码1
        代码2
        代码3
        return 返回值
    函数名()    #调用的语法
    

    一、先定义,后调用

    1、定义函数

    1.1申请内存空间把函数体代码放进去、

    2.2将函数内存地址绑定给函数名

    注意:定义函数只检测语法,不执行代码

    2、调用函数

    2.1、先通过函数名定位到函数的内存地址

    2.2 函数的内存地址()->触发函数体代码的运行

    3、定义函数的三种形式

    主要分为三种无参、有参、空

    3.1无参函数

    def func():
    	print('hello world')
    
    

    3.2有参函数

    def func(x):
        print(x)
    

    3.3空函数

    def login():
        pass
    

    4、调用函数的三种形式

    4.1语句形式

    foo()
    

    4.2表达式形式

    res=len('hello')*10   #有返回值赋予  乘以10的结果赋予res
    print(res)  
    

    4.3函数调用作为参数的形式

    print(len('hello'))  #有返回值
    

    二、函数参数的使用

    总体分为两大类:
        1、形参:在函数定义阶段括号内指定的参数,称之为形式参数,简称形参 - >变量名
        2、实参:在函数调用阶段括号内传入的值,称之为实际参数,简称实参 - > 变量值
    
    #形参与实参的关系
    #在调用函数时,实参值会绑定给形参名,在函数调用完毕后,解除绑定
    

    1、形参

    形参:在函数定义阶段括号内指定的参数,称之为形式参数,简称形参->变量名

    形参可以分为位置形参和默认形参

    注意:可以混用位置形参和默认形参,但是

    1、位置形参必须在默认形参的前面
    2、默认形参的值通常应该是不可变类型
    3、默认形参的值是在定义阶段
    

    1.1位置形参

    位置形参:在定义函数时,按照从左到右的顺序依次定义的变量名,称之为位置形参

    位置形参特点:每次调用,必须被赋值

    1.2默认形参

    默认形参:在定义函数时,就已经为某个形参赋值了,称之为默认形参

    默认形参特点:调用函数时,可以不用为其赋值

    2、实参

    实参:在函数调用阶段括号内传入的值,称之为实际参数,简称实参->变量值

    实参分为位置实参和关键字实参

    注意:可以混用位置实参和关键字实参,但是

    1、位置实参必须在关键字实参的前面
    2、不能为同一个形参重复赋值
    

    2.1位置实参

    位置实参:在调用函数时,按照从左到右的顺序依次传入的值,称之为位置实参

    位置实参的特点:按照位置为形参赋值,一一对应

    2.2关键字实参

    关键字实参:在调用函数时,按照key=value的形式传值,称之为关键字实参

    关键字实参的特点:可以打乱顺序,但是仍然能为指定变量名传值

    可变长系列引出*与**

    可变长参数指的时在调用函数时,传入的参数个数不固定,对应着必须有特殊形式的形参来接受溢出的实参

    溢出的位置实参------>*

    溢出的关键字实参----->**

    3、 * ** 在形参中的应用

    * ** 在形参中时时一种汇总行为

    3.1*在形参中的应用

    *在形参中的应用:*会将溢出的位置实参合并成一个元组,然后赋值给紧跟其后的那个形参名
    def func(x,*args): # args = (2,3,4,5)
        print(x)
        print(args)
    func(1,2,3,4,5)
    
    

    3.2**在形参中应用

    **在形参中的应用:**会将溢出的关键字实参合并成一个字典,然后赋值给紧跟其后的那个形参名
    def func(x,**args): # args{'b':2,'c':3}
        print(x)
        print(args)
    func(1,b=2,c=3)
    

    了解:命名关键字形参

    命名关键字形参:在*与**中间的形参称之为命名关键字形参

    命名关键字形参特点:必须按照Key = value 的形式传值

    4、* ** 在实参中的应用

    * 与**在实参中时一种打散行为

    4.1*在实参中的应用

    *在实参中的应用:*后可以跟可以被for循环遍历的任意类型,*会将紧跟其后的那个值打散成位置实参
    

    4.2**在实参中的应用

    **在实参中的应用:**后只能跟字典类型,**会将字典打散成关键字实参
    
  • 相关阅读:
    51nod-1420-贪心
    51nod-1455-dp/缩小范围
    51nod-1574-排列转换
    简单的鼠标滚轮事件
    数组去重
    模仿jq里的选择器和color样式
    在页面里写个动态本地时间
    使用css中的flex布局弹性手风琴效果
    bootstrap中如何多次使用一个摸态框
    使用css让文字两端对齐
  • 原文地址:https://www.cnblogs.com/cnblogswilliam/p/14201928.html
Copyright © 2011-2022 走看看