解释器虽然给出了错误,但是没有定义具体是哪种错误 参数类型检查
python提供了内置函数isinstance()来判断参数的数据类型
1234567def my_abs(x): if not isinstance(x, (int, float)): raise TypeError('wrong type......') if x >= 0: return x else: return -x 改写了my_abs函数后,如果传参不是int或float类型,则会报错并给出错误信息'wrong type'
函数的参数
python的函数定义虽然相对简单,但是参数种类非常灵活。如正常的必须参数,还有默认参数、可变参数以及关键字参数 位置参数
即必须参数,在传参时按照函数定义的顺序赋给函数
123456def power(x, n): s = 1 while n > 0: n = n - 1 s = s * x return s 定义一个函数power()来求x的n次方,在调用时根据函数定义的顺序传参。不同的位置顺序得到不同的结果
解释器提示power()缺少一个必须的参数n。来使用默认参数来改进一下power函数
123456def power(x, n=2): s = 1 while n > 0: n = n - 1 s = s * x return s
两种形式的函数调用都能正常运行,这正是因为默认函数的作用。当参数都给全时,函数按照给定的参数进行运算;当参数n未传入时,函数按照设置的默认参数进行运算 可变参数
可变参数即参数的个数是可变的,在定义函数时,无需一个一个的给定
12345def add(*numbers): sum = 0 for n in numbers: sum = sum + n return sum 定义一个add函数用来计算参数的和