Python编程练习:一元二次方程求根
Posted Xavier Jiezou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python编程练习:一元二次方程求根相关的知识,希望对你有一定的参考价值。
题目描述
一元二次方程 a x 2 + b x + c = 0 ax^2+bx+c=0 ax2+bx+c=0,a、b、c 的值由用户在三行中输入,根据用户输入的数值求解方程的实数解:
- 如果 a 值为0,根据 b 值判断方程是否有解并输出(若有解,输出保留两位小数),如果 a 与 b 同时为 0,则输出
Date error!
; - 如果方程无实数解,输出“
该方程无实数解
”; - 如果方程有两个相同的实数解,输出一个解,结果保留 2 位小数;
- 如果方程有两个不同的实数解,在一行内按从小到大顺序输出方程的两个解,用空格分隔,结果保留 2 位小数。
输入格式
输入三行数据,每行输入一个实数。
输出格式
方程的解。
测试样例
样例1
输入
8
5
2
输出
该方程无实数解
样例2
输入
0
0
9
输出
Data error!
样例3
输入
3
6
2
输出
-0.42 -1.58
参考代码
class Solution:
def __init__(self):
self.a = eval(input())
self.b = eval(input())
self.c = eval(input())
def __main__(self) -> str:
d = self.b**2-4*self.a*self.c
if self.a == 0 and self.b == 0:
return 'Data error!'
elif self.a == 0 and self.b != 0:
return f'{-self.c/self.b:.2f}'
else:
if d > 0:
x1 = (-self.b+d**0.5)/(2*self.a)
x2 = (-self.b-d**0.5)/(2*self.a)
x1, x2 = (x2, x1) if x1 < x2 else (x1, x2)
return f'{x1:.2f} {x2:.2f}'
elif d == 0:
return f'{-self.b/(2*self.a):.2f}'
else:
return '该方程无实数解'
if __name__ == '__main__':
print(Solution().__main__())
以上是关于Python编程练习:一元二次方程求根的主要内容,如果未能解决你的问题,请参考以下文章