Python一元二次方程求根

Python一元二次方程求根

1、任务简介

在之前的博客中我分享了使用Java进行一元二次方程求根的方法,在学习了Python之后我也想使用Python编写一个类似的程序,故在编写成功后将该任务分享出来。


2、任务代码

学习过Java和Python的人都知道,Python的语法比Java简洁得多,并且目前已经广泛应用于爬虫开发、web开发、人工智能和机器学习等主流方向,是一种面向对象的语言,我学习Python的初衷就是为了学习爬虫,目前只是个小白,故只能给大家分享求根计算的程序,哈哈。

在Python中可以使用input来读取用户输入的信息,但是默认将用户输入的的信息保存为字符串的形式,所以需要强制类型转换为float的形式,这样在计算时才可以避免出现错误,在计算根时使用的语句和Java类似,但是math应全为小写,输出语句中的连接应该为逗号“,”。

程序代码如下:

import math
a = float(input("请输入a的值:"))
b = float(input("请输入b的值:"))
c = float(input("请输入c的值:"))
x1=((-b+math.sqrt(b**2-4*a*c))/(2*a))
x2=((-b-math.sqrt(b**2-4*a*c))/(2*a))
print("x1=",x1,"\t","x2=",x2)

对比发现实现相同功能的Java程序有近19行,而Python程序仅有7行,实在是简洁得多。

运行结果如下图:
在这里插入图片描述

还可以对程序进行改进,使它能判断是否有根等,具体代码如下:

import math
a = float(input("请输入a的值:"))
b = float(input("请输入b的值:"))
c = float(input("请输入c的值:"))
if a != 0:
    delta = b**2-4*a*c
    if delta < 0:
        print("无根")
    elif delta == 0:
        s = -b/(2*a)
        print("唯一根x=",s)
    else :
        root = math.sqrt(delta)
        x1 = (-b+root)/(2*a)
        x2 = (-b-root)/(2*a)
        print("x1=",x1,"\t","x2=",x2)

即便是加入这些功能,Python代码也仅有16行,故可以发现它相比Java的简洁性,改程序读者可自行验证,我就不发运行截图了。


3、总结

通过本博客分享了Python制作的一元二次方程求根小程序,大家可以对比之前Java编写该程序的博客《使用Java实现一元二次方程求根计算器》,可以发现两种语言之间部分语法是相通的,这也为我们的学习提供了方便。

猜你喜欢

转载自blog.csdn.net/lsylsy726/article/details/82760504