我在某些類型的計算器的工作了使用from fractions import *
下一個邏輯以下餾分:Python的 - 執行的字符串編碼對於餾分
a = Fraction(1,4)
b = Fraction(2,5)
c = Fraction(3,4)
print(a+b*c)
輸出
11/20
但我需要從字符串執行語句,就像,由於某種原因總是返回我或:
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
這是我失蹤的東西?
編輯1
我知道什麼是錯在這裏
串代碼是這樣的:
code = 'print(1/4+2/5*3/4)'
但我真正需要的是這樣的(我認爲這是IMPOSIBLE到做):
code = 'print(Fraction(1,4)+Fraction(2,5)*Fraction(3,4))'
還有我是做這種事情的一種方式......?
使用eval而不是EXEC –
或用[sympy(http://www.sympy.org/en/index.html) –
不工作與'的eval()' – PsychoMantis52