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编程练习:一元二次方程求根的主要内容,如果未能解决你的问题,请参考以下文章

求一元二次方程的根c语言

c语言求一元二次方程的根

用python求一元二次方程的解

python怎么求解一元二次方程的根?

Python | 牛顿法解一元方程

数值分析实验之非线性方程求根(Python 现)