我想尝试让我的打印功能自动替换变量'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()
答案 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
工作