函数
1 参数检查
isinstance 如果object不是子类中的实例或给定类型的对象则返回False
def function(x):
if not isinstance(x,(int,float))
raise TypeError('bad operand type')
2 函数返回多个值,返回的是一个tuple
缺少return的函数,自动 return None
3 求一元二次方程解
1 import math 2 def quadratic(a,b,c): 3 if not isinstance(a,(int,float)): #可以用for循环 4 raise TypeError('bad operand type') 5 elif not isinstance(b,(int,float)): 6 raise TypeError('bad operand type') 7 elif not isinstance(c,(int,float)): 8 raise TypeError('bad operand type') 9 elif b*b-4*a*c < 0: 10 print("This equation has no solution") 11 elif b*b-4*a*c == 0: 12 return -b/2/a 13 else: 14 return (-b - math.sqrt(b*b - 4*a*c))/2/a,(-b + math.sqrt(b*b - 4*a*c))/2/a 15 quadratic(1,3,-4)
4 函数的参数
满足多种方式将参数值输入到函数中
位置参数:
坑位
默认参数:
该参数拥有默认值,可进行更改
可变参数:*args
可添加多个参数,以tuple的形式传入
关键字参数:**kw
可传入任意数参数,但须带参数名,并自动组成dict
命名关键字参数:
以*隔开,须带参数名
5 递归函数
一个函数在其内部调用自身称为递归函数
还未return结束,又重新调用函数
栈:用以临时储存函数信息(返回地址和参数,临时变量),调用函数-->入栈,返回函数-->出栈
尾递归:在函数返回时,调用自身本身,而非调用同一个函数,并且return语句不能包含表达式