2020-12-23

第七章 函数
7.3 函数的参数
参数列表由一系列参数组成,并用逗号隔开。在调用函数时,如果需要向函数传递参数,则被传入的参数称为实参,而函数定义时的参数称为形参,实参与形参之间可以传递数据。
7.3.1 位置参数
位置参数是指函数调用时传递实参的顺序与定义函数的形参顺序一致
7.3.2 关键参数
关键参数是指通过对形参赋值传递的参数。
关键参数允许函数调用时传递实参的顺序与定义函数的形参顺序不一致,因为 Python解释器能够用形参名匹配实参值,使用户不必记住位置参数的顺序
7.3.3 默认参数
如果在函数定义时参数列表中的某个形参有值,就称这个参数为默认参数。注意默认参数必须放在非默认参数的右侧,否则函数将出错。
7.3.4 不定长参数
在前面对函数的介绍中,一个形参只能接收一个实参。
7.3.5 传递不可变与可变对象
在Python中,数字、字符串与元组是不可变类型,而列表、字典是可变类型,两者区别如下:
不可变类型——该类型的对象所代表的值不能被改变。当改变某个变量时,由于其所指的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一个新的地址,变量再指向这个新的地址。
可变类型——该类型的对象所代表的值可以被改变。
变量改变后,实际上是其所指的值直接发生改变,并没有发生复制行为,也没有开辟出新的地址。
7.4 函数的返回值
1.函数调用时的参数传递实现了从函数外部向函数内部输入数据,而函数的return语句实现了从函数内部向函数外部输出数据。
2.需注意,如果函数定义时省略return语句或者只有return而没有返回值,则Python将认为该函数以“return None”结束,None代表没有值。
3.return语句可以放置在函数中任何位置,当执行到第一个return语句时,程序返回到调用程序处接着执行,此时不会执行该函数中return语句后的代码
4.当函数具有多个返回值时,如果只用一个变量来接收返回值,函数返回的多个值实际上构成了一个元组
7.5 变量的作用域
变量起作用的代码范围称为变量的作用域,与变量定义的位置密切相关,按照作用域的不同,变量可分为局部变量和全局变量。
7.5.1 局部变量
在函数内部定义的普通变量只在函数内部起作用,称为局部变量。当函数执行结束后,局部变量自动删除,不可以再使用
7.5.2 全局变量
如果需要在函数内部给一个定义在函数外的变量赋值,那么这个变量的作用域不能是局部的,而应该是全局的。能够同时作用于函数内外的变量称为全局变量,它通过global关键字来声明
7.6 函数的嵌套
调用Python语言允许在函数定义中出现函数调用,从而形成函数的嵌套调用
7.7 函数的递归调用
在函数的嵌套调用中,一个函数除了可以调用其他函数外,还可以调用自身,这就是函数的递归调用。
递归必须要有结束条件,否则会无限地递归(Python默认支持997次递归,多于这个次数将终止)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值