я работал в каком-то типа калькулятора для фракций с помощью from fractions import *
следуя следующей логике:Python - Execute строковое Код для дробей
a = Fraction(1,4)
b = Fraction(2,5)
c = Fraction(3,4)
print(a+b*c)
OUTPUT
11/20
Но мне нужно для выполнения инструкции из строки, точно так же, как 1/4 + 1/2
и почему-то всегда возвращает меня или :
from fractions import *
class main():
for i in range(0, 10):
print "\t\nWRITE YOUR OPERATION"
code = 'print('
s = raw_input()
elements = s.split()
for element in elements:
print(element)
if '/' in element:
fraction = element.split('/')
numerator = fraction[0]
denominator = fraction[1]
a = Fraction(int(numerator),int(denominator))
code = code + str(a)
else:
code = code + str(element)
code = code + ')'
exec code
Это что-то мне не хватает?
EDIT 1
Я знаю, что здесь не так
Код строки выглядит так:
code = 'print(1/4+2/5*3/4)'
Но что мне действительно нужно это (я думаю, это невозможное, чтобы do):
code = 'print(Fraction(1,4)+Fraction(2,5)*Fraction(3,4))'
Или там i это способ сделать что-то подобное ...?
Использование Eval вместо Exec –
Или используйте [SymPy] (http://www.sympy.org/en/index.html) –
Не работает с 'Eval()' – PsychoMantis52