У меня есть переменная с именем b
, значение которой определяется следующим образом: b = float(input("What is your y-intercept?"))
.Позже в файле я хочу взять значение b
(при условии, что это число с плавающей точкой) и преобразовать его в дробь, подобную этой: print(Fraction(b))
.Я знаю, что что-то вроде print(Fraction(0.45))
напечатает 8106479329266893/18014398509481984
, но print(Fraction('0.45'))
напечатает 9/20
.Как я могу получить тот же результат с переменной?Выполнение print(Fraction('b'))
дает мне эту ошибку: ValueError: Invalid literal for Fraction: 'b'
.
Код:
from fractions import Fraction
elif equation == 'slope':
slope = input("Do you need to find slope? Type 'yes' or 'no'.")
if slope == 'yes':
y2 = float(input("What's your y2 value?:"))
y1 = float(input("What is your y1 value?"))
x2 = float(input("What is your x2 value?:"))
x1 = float(input("What is your x1 value?:"))
m = y2-y1/x2-x1
print(str(m))
elif slope == 'no':
m = input("What is the slope?")
b = float(input("What is your y-intercept?"))
m = str(m)
b = str(b)
print("Your equation is: y = {}x + {}".format(m,b))
simplify = input("Do you want to simplify this to standard form? Type in 'yes' or 'no'")
if simplify == 'yes':
m = float(m)
b = float(b)
if m < 0:
pos_m = m*-1
if isinstance(b, float):
print(Fraction(b)) #Works, but not what I want
print(Fraction('b')) #Does not work