1

我想尝试让我的打印功能自动将变量“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()
4

2 回答 2

4

尝试以下操作:

print('Equation: {0}x**2 + {1}x + {2}'.format(a,b,c))
于 2013-09-08T01:27:28.770 回答
1

你是不是在说

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

不打印具有 a 、 b 和 c 值的方程

print ('equation: ' + str(a) + 'x**2 + ' + str(b) + 'x + ' + str(c))

问题是您要求它打印文字,但您希望它根据您的值打印。警告我认为你必须使用 3+ 的 python 风格,我在 2.7 中工作

于 2013-09-08T01:30:41.753 回答