通过上一章节的学习,我们已经能够利用给定的条件计算出连续12个月的折旧了,但是,如果我想要使这个算法能作用到另外一个固定资产,却发现不得复制一下,并且修改资产原值、折旧年限等等变量赋值。那么有没有更便捷的方法呢?本章我们将用python函数来解决这个问题。
内置函数
含义 函数是组织好的,可重复使用的用来实现单一,或相关联功能的代码段;
函数能提高应用的模块性,和代码的重复利用率;
Python提供了许多内置函数,比如print(),input(),round()等。
自定义函数
含义 用一些符号代替变量赋值,等到使用这个算法的时候再把具体的变量金额填充进去,那么就能改成一个通用的算法,这个过程就叫自定义函数。代替变量叫形参,使用算法叫调用参数,调用函数时填充的具体金额叫实参 。
语法 def函数名(形参)
:
#
形参根据需求设置,可有可无,也可设置多个形参
#
注意冒号及语句缩进
return 表达式
#
return语句不写时,没有返回值
函数名(实参) #
调用函数
参数
调用函数时是可以传递参数的,以下是函数调用时可使用的参数类型:
- 位置参数:位置参数就是将对应位置的实参传递给对应位置的形参。
- 关键字参数:关键字参数,可以不按照形参定义的顺序去传递,而直接根据参数名去传递参数。
- 默认参数:定义形参时,可以为形参指定默认值。调用函数时,如果参数的值没有传入,则被认为是默认值,如果用户传递了参数,则默认值没有任何作用。
- 不定长参数:在定义函数时,可以在形参前边加上一个*,这样这个形参将会获取到不定长的实参。
- 参数组合:在Python中定义函数,可以用位置参数、默认参数、关键字参数、可变参数,这4种参数都可以组合使用。
作用域
在Python中一共有两种作用域:
全局作用域
- 全局作用域在程序执行时创建,在程序执行结束时销毁
- 所有函数以外的区域都是全局作用域
- 在全局作用域中定义的变量,都属于全局变量,全局变量可以在程序的任意位置被访问
函数作用域
- 函数作用域在函数调用时创建,在调用结束时销毁
- 函数每调用一次就会产生一个新的函数作用域
- 在函数作用域中定义的变量,都是局部变量,它只能在函数内部被访问
变量的查找
- 当我们使用变量时,会优先在当前作用域中寻找该变量,如果有则使用
- 如果没有则继续去上一级作用域中寻找,如果有则使用
- 直到找到全局作用域,依然没有找到,则会抛出异常