Моей функция должны принимать строку, которая является одним из основных x/y
дроби, и преобразовать его в смешанную фракцию в виде строки, где a b/c
a
является целым числом и b/c
несократимой дробь.фракция в смешанное число в форматной строке
Вот мой код:
from fractions import Fraction
def mixed_fraction(s):
s = x.numerator/y.denominator
a = s
after_decimal = (a-int(a))[1:]
dec_2_frac = Fraction(after_decimal)
b = b.numerator
c = c.denominator
if y > 0:
return "{} {}/{}".format(a, b, c)
else:
return "ZeroDivisionError: division by zero"
Вот моя ошибка:
NameError: global name 'x' is not defined
Фундаментально, я могу легко увидеть, как x
не определен правильно, но я не могу обернуть мою голову вокруг того, как обозначают x как соответствующий числитель x
от x/y
. Мои чувства говорят мне, что мне нужно пройти ту же отладку для y
, поэтому я попытался определить как в строке 3. Я просто застрял. Пожалуйста помоги!
MJ
Это работает! В моем следующем тестовом случае говорится, что «6/3» должно равняться выходу 2, но я думал, что строки 12 и 13 объясняют это, нет? Я понимаю, что это объясняется в строках 12 и 13 ... мой результат прямо сейчас показывает правильный результат, но нужен результат, равный 2 не '2' –
Вы говорите, что получаете строку вместо числа для ваш результат? –
Он говорит, что это должна быть строка, а не целое число. –