请定义一个函数q(a, b, c),接收3个参数,可以使用全局变量__name__,进行测试,返回一元二次方程:ax2 + bx + c = 0的两个解。提示:计算平方根可以调用math.sqrt()函数.
时间: 2023-06-15 21:02:56 浏览: 187
已知二元一次方程ax²+bx+c=0(a≠0),编程实现求解方程的根。(分三种情况考虑)
可以使用以下代码实现:
```python
import math
def q(a, b, c):
delta = b*b - 4*a*c
if delta < 0:
return "无解"
elif delta == 0:
x = -b / (2*a)
return x
else:
x1 = (-b + math.sqrt(delta)) / (2*a)
x2 = (-b - math.sqrt(delta)) / (2*a)
return x1, x2
if __name__ == '__main__':
print(q(1, -3, 2))
```
在上面的代码中,我们首先导入了math模块用于计算平方根。然后定义了一个函数q,它接收三个参数a、b和c,分别代表一元二次方程的系数。我们先计算出方程的判别式delta,然后根据delta的值分类讨论:
- 如果delta < 0,说明方程无解,返回字符串"无解";
- 如果delta == 0,说明方程有一个重根,计算出它的值x,然后返回x;
- 如果delta > 0,说明方程有两个不同的根,计算出它们的值x1和x2,然后返回一个元组(x1, x2)。
最后,我们使用__name__变量进行测试,如果该模块是直接运行的,则会输出方程的两个解。
阅读全文