二次方程式 ax**2 + bx + c = 0(用python实现,区分实数根与复数根)

import math
import cmath

def sol(a,b,c):
    #判断b的平方是否大于4ac,大于等于的时候是实数根,小于的时候是复数根(cmath相比与math的区别是cmath是复数运算)
    if b**2 >= 4*a*c :
        sqrt = math.sqrt(b**2 - 4*a*c)
        x1 = (-b + sqrt) / (2 * a)
        x2 = (-b - sqrt) / (2 * a)
        print("第一个根是:", x1)
        print("第二个根是:", x2)
    else:
        sqrt = cmath.sqrt(b**2 - 4 * a * c)
        x1 = (-b + sqrt) / (2 * a)
        x2 = (-b - sqrt) / (2 * a)
        #复数格式化输出实数+复数小数点后三位
        print("第一个根是{0}+{1:0.3f}j".format(x1.real, x1.imag))
        print("第二个根是{0}+{1:0.3f}j".format(x2.real, x2.imag))

if __name__ == '__main__':

    a = float(input("请输入第一个参数"))
    b = float(input("请输入第二个参数"))
    c = float(input("请输入第三个参数"))
    sol(a,b,c)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章