python|对Python中函数的学习
- 2019 年 12 月 16 日
- 笔记
问题描述
在python中,定义一个函数需要使用def语句,依次写出函数名,括号,括号中的参数和冒号:,接着在缩进后编写函数,函数的返回值用return语句返回。定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了。对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解。Python的函数定义非常简单,但灵活度却非常大。除了正常定义的必选参数外,还可以使用默认参数、可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码。
解决方案
以math.sqrt()函数为例
定义一个函数,quadratic(a,b,c),接收三个参数,返回一元二次方程ax²+bx+c=0的两个解。
import math def quadratic(a,b,c): if a == 0: raise TypeError('a不能为0') if not isinstance(a,(int,float)) or not isinstance(b,(int,float)) or not isinstance(c,(int,float)): raise TypeError( 'Bad operand type') delta = math.pow(b,2) - 4*a*c if delta < 0: return '无实根' x1= (math.sqrt(delta)-b)/(2*a) x2= (math.sqrt(delta)+b)/(2*a) return x1,x2 print(quadratic(1,3,1)) print(quadratic(2,3,-4))
上面的函数会输出以下结果

结语
(1)定义函数的时候先对参数的数据类型检查一遍,确定函数名和参数的数量。
(2)函数执行完毕也没有return随时返回函数结果,函数运行完后没有return语句时,自动return None。
(3)在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值。
实习主编 | 王文星
责 编 | 王楠岚
where2go 团队