定义函数
定义函数相关知识点
-
如何定义一个函数?
-
return之于函数
函数在执行的时候,碰到return就执行结束,跳出函数,并将结果返回。
没有返回时,会返回None。 -
函数的返回值
函数最后返回的是一个Tuple,可以返回多个函数值、 -
如何定义一个空函数?
通过pass语句,用pass作为占位符,函数就不会报错了。 -
函数报错之参数类型
自己定义的函数参数类型错误报错和内置函数参数类型错误报错提示时不同的,为了方便纠错,设置参数类型检查的判断——手动设置异常。
参数类型判断:isinstance(x, (int, float))
手动设置异常: raise TypeError(‘bad operand type’) -
定义函数的导入
在同一目录下,用from <文件名> import <函数名> 语句进行导入
def my_abs(x) :
if not isinstance(x,(int,float)) : #类型检查
raise TypeError('输入数据类型错误!') #手动设置异常
else :
if x >= 0 :
return x
else :
return -x
m = input('请输入一个数字:')
m = float(m)
print(m,'的绝对值是:',my_abs(m))
练习
- 请定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程 ax^2+bx+c=0的两个解。
a x 2 + b x + c = 0 ax^2 + bx +c =0 ax2+bx+c=0 - 提示:
一元二次方程的求根公式为:
x = − b ± b 2 − 4 a c 2 a x = \frac{-b\pm\sqrt{b^2-4ac}}{2a} x=2a−b±b2−4ac
计算平方根可以调用math.sqrt()函数:
import math
#定义函数
def quadratic(a,b,c) :
det = b *b - 4 * a * c
if (isinstance(a,(int,float)) &isinstance(b,(int,float)) &isinstance(c,(int,float)) & a != 0 ) :
if det >= 0 :
x1 = (-b + math.sqrt(det)) / (2 * a)
x2 = (-b - math.sqrt(det)) / (2 * a)
return x1, x2
else :
return ('方程无解')
else :
return ('输入错误')
#传入参数
i = 0
List = list()
while i < 3:
i = i+1
number = int(input('请慢慢依次输入abc:'))
List.append(number)
#调用函数
a = List[0]
b = List[1]
c = List[2]
x = quadratic(a,b,c)
print(x)
请慢慢依次输入abc:1
请慢慢依次输入abc:-2
请慢慢依次输入abc:1
(1.0, 1.0)