• Python 基础语法六 ——函数


            一个程序可以按不同的功能实现拆分成不同的模块,而函数就是能实现某一部分功能的代码块。
    1、函数的概述
            定义:在Python中,定义个函数要使用 def 语句,一次写出函数名、括号、括号中的参数和冒号(:),然后在缩进块中编写函数体,函数的返回值用return 语句返回。
    def area_of_square(x):
        s = x*x
        return s 
    2、全局变量
            定义:在函数外面定义的变量称为全局变量。       
            作用域:整个代码段(文件、模块),在整个程序代码中都能被访问到。在函数内部可以去访问全局变量。
            但不要在函数内部去修改全局变量,否则会得不到想要的结果;因为在函数内部试图去修改一个全局变量是,系统会自动创建一个新的同名局部变量去代替全局变量,采用屏蔽(Shadowing)的方式,当函数调用结束后函数的栈空间会被释放,数据也会随之释放。
            如果要在函数内部去修改全局变量的值,并使之在整个程序生效,采用关键字global 即可。
    3、局部变量
            定义:在函数内部定义的参数和变量称为局部变量
            作用域:仅在函数内部。
    4、函数的参数
            定义:函数的参数就是使得函数个性化的一个实例。
            作用:函数有了参数后,输出结果变得可变了;多个参数用逗号  “,” 隔开即可。
        4.1 参数传递方式:
            在Python中,将函数参数分为三类:位置参数、可变参数、关键字参数。
            位置参数:直接传入参数数据即可,如果有多个参数,位置先后顺序不能改变。
            定义: 传入参数值按照位置顺序依次赋给参数,这样的参数称为位置参数
            可变参数:法一:直接传入参数值
                              法二:先封装成列表(list)或元组(tuple),再封装后的列表或元组前面添加一个星号 “ * ” 传入。
            定义:在定义函数参数的时候,不知道究竟需要多少个参数的时候,只有在参数前面加上星号 “ * ” 即可,这样的参数称为可变参数(又称为收集参数)。
            关键字参数:法一:直接传入参数值
                                 法二:先封装成字典(dict),再封装后的字典前面添加两个星号 “ ** ” 传入。
                定义:直接给参数赋值,就不会因为顺序不同,导致结果的改变。
                在函数调用的时候,通过参数指定需要赋值的参。通常我们在调用一个函数时,参数会有多个,常常会混淆参数的顺序,打不到我们希望的效果。
                python引入关键字参数就可以解决这个潜在的问题。
        4.2  默认值参数
            定义:在定义函数时给参数赋了一个初值,这样的参数称为默认值参数。
    5、函数的返回值
            函数中如果没有用关键之 return 指定返回值,则返回一个“ None ” 对象。
            Python是动态的确定变量类型,Python没有变量,只有名字。Python可以返回多个类型的值。
    6、函数的调用
            要调用一个函数,需要知道函数的名称和参数; *
            函数分为自定义函数和内置函数;自定义函数需要定义再调用,有的内置函数时在特定的模块下,这是需要用 import 命令导入模块后再调用。
            可以通过交互式命令help(函数名)查看函数的帮助信息。
        6.1  函数嵌套调用
            内部函数:函数内部创建另一个函数。内嵌函数的作用域在其内部。
        6.2 使用闭包
            闭包:函数式编程的一个重要的语法结构。在一个内部函数对一个外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数一分为值闭包(closure)。
            注意:不能在全局域内访问闭包,否则会出错。在闭包中,外部函数的局部变量对闭包中的局部变量(相当与全局变量和局部变量的关系),在闭包中能访问外部函数的局部变量,但不能进行修改。
        6.3   递归调用
            递归的两个条件:调用函数自身;
                                        设置了正确的返回条件。
            Python 默认递归深度 100 层( Python 限制)。设置递归的深度系统函数是:sys.setrecursionlimit( stepcount )。参数:stepcount 设置递归的深度。
            递归有危险性:消耗时间和空间,因为递归是基于弹栈和出栈操作。
            递归忘掉返回使用程序崩溃,消耗掉所有的内存。




    学习,生活要不停的提高提高,哪怕一点点,也不要停。
  • 相关阅读:
    vue 侦听器
    vue 计算属性
    typeof 运算符
    constructor 属性
    立即执行函数与闭包
    计算属性缓存 vs 方法
    JavaScrip备课
    winform 实现对usb热拔插的监听
    c# async await的使用方式及为啥要用它
    .net5与之前的版本GetBytes长度变化
  • 原文地址:https://www.cnblogs.com/long90/p/12293033.html
Copyright © 2020-2023  润新知