Python Math: Find the roots of a quadratic function

Python Math: Exercise-30 with Solution

Write a Python program to find the roots of a quadratic function.

Sample Solution:-

Python Code:

from math import sqrt

print("Quadratic function : (a * x^2) + b*x + c")
a = float(input("a: "))
b = float(input("b: "))
c = float(input("c: "))

r = b**2 - 4*a*c

if r > 0:
    num_roots = 2
    x1 = (((-b) + sqrt(r))/(2*a))     
    x2 = (((-b) - sqrt(r))/(2*a))
    print("There are 2 roots: %f and %f" % (x1, x2))
elif r == 0:
    num_roots = 1
    x = (-b) / 2*a
    print("There is one root: ", x)
    num_roots = 0
    print("No roots, discriminant < 0.")

Sample Output:

Quadratic function : (a * x^2) + b*x + c                                                                      
a: 5                                                                                                          
b: 20                                                                                                         
c: 10                                                                                                         
There are 2 roots: -0.585786 and -3.414214


Flowchart: Find the roots of a quadratic function

Visualize Python code execution:

The following tool visualize what the computer is doing step-by-step as it executes the said program:

Python Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a Python program to calculate wind chill index.
Next: Write a Python program to convert a binary number to decimal number.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

Follow us on Facebook and Twitter for latest update.

Python: Tips of the Day

Given each iterable to construct a tuple by adding an index:

>>> a = ['Hello', 'world', '!']
>>> list(enumerate(a))
[(0, 'Hello'), (1, 'world'), (2, '!')]


We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook