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.
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)