Python写二次公式

时间:2013-09-08 01:25:09

标签: python

我想尝试让我的打印功能自动替换变量'a''b'和'c',其中一个值分配给我的测试中的那些变量。我该怎么做? 我的理想输出看起来像这样 公式:1x ** 2 + 4x + 4 一根。 2.0

import math

def quadraticRoots(a,b,c):
    print('Equation: ax**2 + bx + c')    # (this is what I am trying and it doesn't work)
    discriminant = b**2 - 4 * a * c
    if discriminant > 0:
        root1 = float(-b + math.sqrt(b**2 - 4 * a * c))/ (2 * a)
        root2 = float(-b - math.sqrt(b**2 - 4 * a * c))/ (2 * a)
        print('Two roots.')
        print(root1)
        print(root2)
    elif discriminant == 0:
        root1 = float(-b + math.sqrt(b**2 - 4 * a * c))/ (2 * a)
        print('One root.')
        print(root1)
    elif discriminant < 0:
        print('No roots.')

def test():
    quadraticRoots(1,0,0)
    quadraticRoots(2,-11,-21)
    quadraticRoots(4,1,4)
    quadraticRoots(1,2,8)
    quadraticRoots(3,-11,19)
    quadraticRoots(1,4,4)
    quadraticRoots(16,-11,64)
    quadraticRoots(1,18,81)
    quadraticRoots(1,7,42)
    quadraticRoots(5,10,5)

test()

2 个答案:

答案 0 :(得分:3)

尝试以下方法:

print('Equation: {0}x**2 + {1}x + {2}'.format(a,b,c))

答案 1 :(得分:1)

你是说那个

 print('Equation: ax**2 + bx + c')   

不会打印带有a,b和c

值的等式
print ('equation: ' + str(a) + 'x**2 + ' + str(b) + 'x + ' + str(c))

问题是你要求它打印一个文字,但你希望它根据你的值进行打印。 CAVEAT我认为你必须使用3+以上的python并且我在2.7

工作