How do I take a fraction as an input in Python, and use the fraction’s value for arithmetic?

Here’s an example code I made to illustrate my problem. If the input is an integer or a decimal, it works as intended. But if the input is a fraction such as 4/5, it throws a ValueError since 4/5 is a string that can not be converted into a float.

myinput=input("Enter number. ")
doubleofmyinput=float(myinput)*2
print(doubleofmyinput)

This is not an issue when not using input() since float(4/5) works whereas float(“4/5”) doesn’t, while both float(“4.5”) and float(4.5) are valid. Thanks.

Answer

Using the fractions library you can do the following:

import fractions

myinput = input("Enter number. ")
try:
    if not myinput.isnumeric():
        myinput = fractions.Fraction(myinput)
except ValueError:
    throw ValueError(myinput + " is not a number")

doubleofmyinput=float(myinput)*2
print(doubleofmyinput)