我一直在使用 from fractions import * 按照以下逻辑使用某种类型的分数计算器:
a = Fraction(1,4)
b = Fraction(2,5)
c = Fraction(3,4)
print(a+b*c)
输出
11/20
但我需要从字符串中执行语句,就像 1/4 + 1/2 并且出于某种原因总是返回我 0 或 1 :
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)'
但我真正需要的是这个(我认为这是不可能的):
code = 'print(Fraction(1,4)+Fraction(2,5)*Fraction(3,4))'
或者有办法做这样的事情......?
请您参考如下方法:
我试过了,这是有效的(我的输入是 a/b + c/d 的形式):
from fractions import*
print ("your operation:")
op = input()
#print (op)
elements = op.split()
for el in elements:
if ('/' in el):
fraction = el.split('/')
numerator = fraction[0]
denominator = fraction[1]
a = Fraction(int(numerator),int(denominator))
print (numerator)
print (denominator)
print (a)
