文档描述
主要内容 函数的定义和使用 函数的参数类型 非可选参数 可选参数 关键字参数 可变长度参数 参数解包 lambda函数 变量的作用域函数的定义 执行计算的命名语句序列 将一段代码封装为函数,并在需要的位置进行调用 好处:实现代码的重复利用 更重要的是可以保证代码的完全一致 举例:上述代码的输出结果:函数定义的语法形式 定义Definition 表示可选的意思,即一个函数可以没有形参列表 docstring是文档字符串Documentation String 用于说明函数的功能函数定义的说明 Python使用关键字def定义函数 关键字def后面有一个空格 然后是函数名 接下来是一对圆括号 在圆括号里面是形式参数(Formal Parameter)列表 圆括号后面是一个英文冒号和换行符 最后是必要的注释以及函数体代码需要注意的问题 一个函数即使不需要接收任何参数,也必须保留一对空的圆括号 括号后面的英文冒号必不可少 函数体(包括注释部分)相对于def关键字必须向右缩进若干个空格文档字符串 编写代码时额外添加文档字符串docstring 这是一种很好的编程实践函数的调用 Call 函数的定义完成以后,它并不能自动运行 只有被调用时才能运行 上述代码的执行结果:3函数的返回值 Return Value 定义一个函数希望它能够返回一个或多个计算结果 通过关键字return实现 函数返回空值None的情况:函数体中没有return语句 return语句不返回任何值 上述代码的执行结果:自定义函数fib()输出指定范围内的斐波那契(Fibonacci)数列 该数列的前两项都是1,从第3项开始,每一项都是其前两项的和 上述代码的输出结果:上述定义的fib()函数,其返回值是什么?自定义函数fib()-续 修改上述fib()函数,使其返回该数列,而不是在该函数体中打印该数列 上述代码的输出结果:主要内容 函数的定义和使用 函数的参数类型 非可选参数 可选参数 关键字参数 可变长度参数 参数解包 lambda函数 变量的作用域参数类型 形参列表的一般形式为:,.,=,.四种参数类型:非可选参数 可选参数 关键字参数 可变长度参数非可选参数 没有默认值(Default Value)非可选参数必须在可选参数的前面 参数name就是非可选参数 上述代码的输出结果:可选参数 带有默认值的参数 在调用函数时,如果没有给可选参数提供新值,那么就会使用其默认值 gender为可选参数,name为非可选参数 name必须出现在gender之前关键字参数 拥有参数名的参数都是关键字参数 使用关键字参数便于给形参赋值,而无需记住各个参数出现的先后顺序 上述代码的输出结果:可变长度参数 可变长度参数有两种类型:一种用单星操作符“*”定义 另一种用双星操作符“*”定义 args就是可变长度参数 上述代码的执行结果:可变长度参数-续 能够接收任意数量的实参,而且这些实参被封装成一个字典 kwargs是可变长度参数Keyword Arguments 上述代码的输出结果:可变长度参数-续2 在函数的定义中,“*”必须出现在“*”的后面 上述代码的输出结果:参数赋值 函数参数的赋值方式有两种:按位置赋值 按关键字赋值 按位置赋值:在调用函数的时候,如果不使用参数名给形参赋值,那么将按照实参出现的顺序依次给对应位置上的形参赋值按位置赋值 person(Tim)person(Tim,Female)person(Smith,Male,30)有时使用不方便按关键字赋值 通过指定参数名的方式给形参赋值 优点:不用考虑实参出现的先后顺序 person(name=Smith,age=30)上述代码的输出结果:两种赋值方式混合使用 按位置赋值 按关键字赋值 person(Smith,age=30)上述代码的输出结果:主要内容 函数的定义和使用 函数的参数类型 非可选参数 可选参数 关键字参数 可变长度参数 参数解包 lambda函数 变量的作用域参数解包 Unpacking 有时实参已经在列表、元组中了 但是函数调用却需要单独的位置参数 此时需要使用“*”将实参从列表、元组中解包出来参数解包-续 实参为字典时参数解包-续2 类似地,字典可以使用“*”进行解包 以便传递关键字参数主要内容 函数的定义和使用 函数的参数类型 非可选参数 可选参数 关键字参数 可变长度参数 参数解包 lambda函数 变量的作用域lambda函数 可使用lambda关键字定义小型匿名函数 可以像普通函数那样使用lambda函数 注意:lambda函数在形式上只能是一个表达式主要内容 函数的定义和使用 函数的参数类型 非可选参数 可选参数 关键字参数 可变长度参数 参数解包 lambda函数 变量的作用域变量的作用域 在程序中起作用的范围 可以在不同作用域内出现同名变量,相互之间互不影响 根据在程序中所处的位置和作用范围,可将变量划分为:局部变量(Local Variable)全局变量(Global Variable)局部变量 函数内部(包括函数头)定义的变量 作用范围仅限于函数内部(包括函数头)函数退出时该变量将不复存在全局变量 在所有函数的外部定义的变量 在程序执行的全过程都有效 全局变量在函数内部使用时,需要在使用之前用关键字global进行声明(Declaration)声明的语法格式:global 局部变量与全局变量 在函数内部出现的变量,如果不使用关键字global进行声明,那么即使它与全局变量名相同,也不是全局变量小结 本章学习的主要内容:函数的定义 函数的调用 函数的返回值 函数的参数类型 函数参数的赋值方式 参数解包 lambda函数 变量的作用域 在函数体的第1行要注意添加docstring,这方便其他编程人员了解函数的功能和使用方法
展开阅读全文