Discuss / Python / 作业

作业

Topic source

一元二次方程求解

import math    # 导入模块    
def quadratic(a, b, c):  #定义函数名
for n in (a, b, c):  #遍历参数
    if not isinstance(n, (int,float)):  #检测参数类型
        raise TyperError('请输入数字')   #参数类型不正确报错
if a == 0 and b**2-4*a*c != 0:          
    x = -c/b
    return x
elif a != 0 and b*b-4*a*c > 0:
    x1 = (-b+math.sqrt(b**2-4*a*c))/(2*a)
    x2 = (-b-math.sqrt(b**2-4*a*c))/(2*a)
    return x1,x2
elif a != 0 and b*b-4*a*c == 0:
    x = -b/(2*a)
    return x
else:
    return '无解'

# 测试:
print('quadratic(2, 3, 1) =', quadratic(2, 3, 1))
print('quadratic(1, 3, -4) =', quadratic(1, 3, -4))

if quadratic(2, 3, 1) != (-0.5, -1.0):
print('测试失败')
elif quadratic(1, 3, -4) != (1.0, -4.0):
print('测试失败')
else:
print('测试成功')

  • 1

Reply