函数

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语句不能包含表达式

 

posted on 2018-03-26 22:20  lvgb  阅读(165)  评论(0编辑  收藏  举报

导航