「Python条件结构」嵌套if:求一元二次方程的根

liftword5个月前 (12-13)技术文章51

功能要求

从键盘上读取一元二次方程的系数,求一元二次方程式ax2 + bx + c = 0的根,并显示在控制台。

实例代码

import math

# 从键盘上读取一元二次方程的系数a,b,c

a, b, c = eval(input("请输入一元二次方程ax^2 + bx + c = 0的系数'a,b,c':"))

if a != 0: # a不等于,表示一元二次方程

d = b * b - 4 * a * c

p = -b / (2 * a)

q = math.sqrt(abs(d)) / (2 * a)

if d > 0: # 有二个不同的实数根:[-b ± sqrt(b * b - 4 * a * c)] / (2 * a)

print("一元二次方程%.0fx^2 + %.0fx + %.0f = 0有两个实数根,x1 = %.2f,x2 = %.2f。" % (a, b, c, p + q, p - q))

elif d < 0: # 有二个不同的虚根:[-b ± sqrt( - 4 * a * c + b * b)i] / (2 * a)

print("一元二次方程%.0fx^2 + %.0fx + %.0f = 0有两个虚数根,x1 = %.2f + %.2fi,x2 = %.2f - %.2fi。" % (a, b, c, p, q, p, q))

else: # 有一个实根:-b / (2 * a)

print("一元二次方程%.0fx^2 + %.0fx + %.0f = 0有一个实数根,x1 = x2 = %.2f。" % (a, b, c, p))

else: # a = 0,一元一次方程:-c / b

print("一元一次方程%.0fx + %.0f = 0的根,x = %.2f。" % (b, c, -c / b))

运行结果

从键盘上输入“0,1,2”后,二元一次方程的系数分别为:a = 0,b = 1,c = 2,由于a = 0,所以该方程为一元一次方程,有一个实根。

从键盘上输入“1,0,-4”后,二元一次方程的系数分别为:a = 1,b = 0,c = -4,计算d = b * b - 4 * a * c = 16, p = -b / (2 * a) = 0,q = = math.sqrt(abs(d)) / (2 * a) = 2,有两个实数根x1 = 2.00,x2 = -2.00。

从键盘上输入“1,0,4”后,二元一次方程的系数分别为:a = 1,b = 0,c = 4,计算d = b * b - 4 * a * c = -16, p = -b / (2 * a) = 0,q = = math.sqrt(abs(d)) / (2 * a) = 2,有两个实数根x1 = 0 + 2.00i,x2 = 0 -2.00i。

从键盘上输入“1,2,1”后,二元一次方程的系数分别为:a = 1,b = 2,c = 1,计算d = b * b - 4 * a * c = -16, p = -b / (2 * a) = -1,q = = math.sqrt(abs(d)) / (2 * a) = 0,有两个实数根x1 = x2 = -1.00。

相关文章

Python 中 if __name__ == &#39;__main__&#39; 有什么玄机 ?

Python 以其简单性和可读性而闻名,但是它包含了一小段代码 :if name == 'main': 经常让新手感到困惑。理解name 属性为了理解 if name == '...