7-2 一元二次方程求根 python
时间: 2025-03-17 19:04:37 浏览: 62
### Python 实现一元二次方程求根
以下是基于给定引用内容以及标准方法编写的 Python 程序,用于解决一元二次方程 \( ax^2 + bx + c = 0 \) 的求根问题。
#### 输入说明
用户需依次输入三个浮点数 \( a, b, c \),分别代表一元二次方程中的系数。程序会计算并返回两个实数解,并按照从大到小的顺序输出结果,保留两位小数[^1]。
#### 输出说明
如果方程有两不同实数解,则在一行内按降序排列输出这两个解,中间用空格分隔;结果精确至两位小数。
#### 解决方案代码示例
```python
import math
# 获取用户输入
a = float(input("请输入a的值:"))
b = float(input("请输入b的值:"))
c = float(input("请输入c的值:"))
# 判断条件
if a == 0:
print("这不是一个有效的二次方程")
else:
# 计算判别式
delta = b ** 2 - 4 * a * c
if delta >= 0: # 存在实数解的情况
sqrt_delta = math.sqrt(delta)
# 使用求根公式计算x1和x2
x1 = (-b + sqrt_delta) / (2 * a)
x2 = (-b - sqrt_delta) / (2 * a)
# 对结果进行排序处理(从大到小)
roots_sorted = sorted([x1, x2], reverse=True)
# 打印结果,保留两位小数
print(f"{roots_sorted[0]:.2f} {roots_sorted[1]:.2f}")
```
此代码实现了以下功能:
- 验证输入是否构成有效的一元二次方程。
- 如果存在实数解,则通过求根公式计算得到两个解。
- 将解按大小排序后打印,满足题目要求的结果格式。
#### 关键逻辑解释
1. 当 \( a = 0 \) 时,该表达式退化为一次方程或常量形式,因此不视为合法的二次方程。
2. 若判别式 \( \Delta = b^2 - 4ac < 0 \),则不存在实数解(未在此处考虑虚数情况)。由于题目已明确保证有两个不同的实数解,故无需额外判断负值情形[^2]。
3. 结果采用 `sorted` 函数升序排列后再反转实现降序显示,并利用字符串格式控制保留两位小数。
---
阅读全文
相关推荐


















