Python学习笔记(9):函数调用与定义
来源:互联网 发布:wind资讯金融终端 mac 编辑:程序博客网 时间:2024/06/14 02:07
python一定程度上和matlab很类似,存在较多的内置函数,供用户直接调用。通常来说,调用函数需要知道函数的名称和需要传入的参数,比如绝对值函数abs,可以在交互式命令行通过help(abs)查看abs函数的帮助信息。
调用abs函数:
>>>abs(100)>100>>>abs(-5)>5
调用函数时,如果传入参数不对,系统会报错。
数据类型转换
python内置的常用函数通常包括数据类型转换,比如int()函数可以把数据类型转化为整数。
>>>int('123')>123>>>float('1.23')>1.23>str(1.23)>'1.23'>bool(1)>True
韩树明其实对于一个函数对象的引用,可以使用如下方法,通过别的名称调用函数
>>>abs_new = abs>>>abs_new(-1)>1
函数的定义
和其他编程语言一样,用户可以定义自己写的函数,如下图所示自行定义一个简单的运算函数。
def my_function(x): result = 5*x return result
函数的运行结果使用return返回,如果没有return语句,函数的返回值为None。
函数可以返回多个值,可以采用多个变量进行接收,但函数返回多个值,通常是以tuple的形式保存,也就是说函数真正返回的是一个tuple,多个变量可以同时接收一个tuple,按位置对其进行赋值。定义函数的过程中,需要确定函数的名字和参数个数。
函数的参数设置
对于用户来说,在调用函数的时候,只需要向函数传递了正确的参数即可,函数内部被封装起来,调用的时候无需了解。python的参数除了必选参数外,还可以使用默认参数、可变参数和关键字参数。
默认参数
比如调用python的power()的函数,默认计算参数的平方,如果计算参数的立方、四次、五次方的时候,可以对函数进行如下定义。
def power(x,n): s = 1 while n>0: n = n - 1 s = s * x return s
经过如此定义后的power()函数,可以计算任意n次方,但之前的计算参数平方的power()函数就不能正常使用了,因为之前的函数给定的是一个参数,直接计算参数的平方。但经过我们修改过后,函数要求调用的时候提供两个参数,这个时候我们可以使用默认参数解决这个问题,可以把函数的第二个参数默认值设置为2:
def power(x,n = 2): s = 1 while n>0: n = n - 1 s = s * x return s
对函数进行这样的定义的话,当调用power(4)的时候,默认在调用power(4,2)。但如果想计算参数的其他次幂的话,就需要指明函数的参数。
在使用默认参数的时候,通常有以下几点需要注意:
1)函数的必选参数在前,默认参数在后,因为如果默认参数在前的话,系统会把你给定的第二个参数认定为第一个默认参数的给定值;
2)当函数由多个参数时,把变化大的参数放在前,变化小的参数放在后面。
默认参数降低了函数的调用难度,一旦需要复杂的调用时候,又可以传递更多的参数来实现,而不需要重新对函数进行定义。但有一点需要注意,默认参数必须只想不变对象。
可变参数
在python的函数调用中,传入的参数个数是可变的,可以是任意个。比如给定一组数A,B,C…,计算其平方的和。要定义出这个函数,必须确定输入参数,由于参数不确定,可以使用list将参数传进来,函数可以被定义如下。
def calc(numbers): sum = 0 for n in numbers: sum = sum + n * n return sum
使用这种方式调用函数,就需要先定义出一个list。
>>>calc([1,2,3])>14
对于这种函数可变的参数,可以使用如下方式。
def calc(*numbers): sum = 0 for n in numbers: sum = sum + n * n return sum
定义可变参数和定义list参数相比,仅在参数前加了一个*号,在函数内部,参数numbers接收的是一个tuple。因此,函数代码完全不变,调用该函数时,可以传入任意个参数,包括0个参数。
>>>calc(1,2)>5>>>cals()>0
关键字参数
可变参数允许你0个或任意个参数,这些可变参数在调用时候自动组装成一个tuple。使用关键字参数,允许你穿入0个或者人一个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。
def person(name, age, **kw): print 'name:', name, 'age:',age,'other:',kw
函数person除了必选参数name和age外,还接受关键字参数kw,在调用该函数时,可以只传入必选参数,也可以传入任意个数的关键字参数。
>>> person('Bob', 35, city='Beijing')>name: Bob age: 35 other: {'city': 'Beijing'}>>> person('Adam', 45, gender='M', job='Engineer')>name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer"}
使用关键字参数可以对函数进行拓展,在上例中,保证能够接收name和age两个参数,但是如果调用者提供更多的参数,同样可以接收。
参数组合
在Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。
比如定义一个函数,包含上述4种参数:
def func(a, b, c=0, *args, **kw): print 'a =', a, 'b =', b, 'c =', c, 'args =', args,'kw =', kw
>>> func(1, 2)a = 1 b = 2 c = 0 args = () kw = {}>>> func(1, 2, c=3)a = 1 b = 2 c = 3 args = () kw = {}>>> func(1, 2, 3, 'a', 'b')a = 1 b = 2 c = 3 args = ('a', 'b') kw = {}>>> func(1, 2, 3, 'a', 'b', x=99)a = 1 b = 2 c = 3 args = ('a', 'b') kw = {'x': 99}
- Python学习笔记(9):函数调用与定义
- 03-python学习笔记:函数-调用与定义
- [学习笔记]函数的定义与调用
- python学习--函数(调用函数、定义函数、递归函数)
- Python学习笔记——函数定义、调用
- 【Python学习笔记】定义函数
- python学习笔记 定义函数
- C++学习笔记(第四章 函数的定义与调用 之一)
- Python 07 函数的定义与调用
- Python学习笔记 - function调用和定义
- python 学习笔记(五)函数--定义函数
- 【Python学习笔记】调用函数
- javascript笔记:函数的定义与调用
- Python学习(一)函数定义、使用与嵌套
- Python学习笔记(9):range()与xrange()函数
- Python定义与调用函数、默认参数操作实例说明
- python函数的嵌套调用与嵌套定义
- Python教程学习简记2--Python 函数调用 定义函数 函数的参数 递归函数
- Android网络请求框架比较学习
- 如何配置一台深度学习主机?
- BZOJ1269 文本编辑器 (Splay)
- 线性表
- 在Python中使用lambda高效操作列表的教程
- Python学习笔记(9):函数调用与定义
- 利用switch语句编写一个程序,把用数字表示的成绩转化为字母表示的等级。连续查询50次结束
- java-实现分页功能
- HDU 4858 项目管理(分桶法)
- 写一个宏可以将一个数字的奇数位和偶数位交换
- POJ
- style.left 与 offsetLeft的区别
- Java集合类操作优化经验总结
- 蓝桥杯JAVA语言B组_三羊献瑞