Reputation: 15
I want to try and make my print function automatically substitute the variable 'a' 'b' and 'c' with one of the values assigned to those variables in my tests. How would I do this? My ideal output would look like this Equation: 1x**2 + 4x + 4 One root. 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()
Upvotes: 1
Views: 3507
Reputation: 4940
Are you stating that
print('Equation: ax**2 + bx + c')
does not print the equation with values for a , b and c
print ('equation: ' + str(a) + 'x**2 + ' + str(b) + 'x + ' + str(c))
the problem is that you are asking it to print a literal but you want it to print based on your values. CAVEAT I think you must be using a 3+ flavor of python and I work in 2.7
Upvotes: 1
Reputation: 21435
Try the following:
print('Equation: {0}x**2 + {1}x + {2}'.format(a,b,c))
Upvotes: 4