求一元二次方程的根:输入方程ax2+bx+c=0的系数a、b、c,求其根。Python
时间: 2024-10-19 07:04:36 浏览: 14
在Python中,我们可以使用数学库`cmath`来处理复数解的情况,或者使用更基础的`__future__.division`来得到更简洁的结果。下面是一个简单的函数,它会计算给定的一元二次方程的两个根:
```python
import cmath
def quadratic_solver(a, b, c):
# 计算判别式
discriminant = (b**2) - (4*a*c)
if a == 0:
raise ValueError("方程不是二次方程")
# 实数解
if discriminant >= 0:
root1 = (-b + cmath.sqrt(discriminant)) / (2 * a)
root2 = (-b - cmath.sqrt(discriminant)) / (2 * a)
return (root1, root2)
else:
# 复数解
real_part = -b / (2 * a)
imaginary_part = cmath.sqrt(-discriminant) / (2 * a)
return (real_part, complex(real_part, imaginary_part))
# 使用示例
try:
a = float(input("请输入a的值: "))
b = float(input("请输入b的值: "))
c = float(input("请输入c的值: "))
roots = quadratic_solver(a, b, c)
print(f"方程 {a}x^2 + {b}x + {c} 的根为 {roots}")
except ValueError as e:
print(e)
阅读全文