Python 如何将分数(如3/4)作为输入?

Python 如何将分数(如3/4)作为输入?,python,python-3.x,fractions,Python,Python 3.x,Fractions,我正在运行一些代码,其中我希望用户插入分数,分数将作为浮点值计算并存储在变量中 我正在使用以下命令。当我输入4.5时,它工作正常: a = float(input('>> ')) 但是像3/4这样的东西给了我一个错误。我知道问题是什么,我想知道是否有另一种方法可以输入一个分数,该分数被解出来并以浮点形式存储在变量中。正如Josh Lee所指出的,将其包装在一个分数(从分数导入分数)中,然后将其转换为浮点: r = float(Fraction(input(">>>

我正在运行一些代码,其中我希望用户插入分数,分数将作为浮点值计算并存储在变量中

我正在使用以下命令。当我输入
4.5
时,它工作正常:

a = float(input('>> '))

但是像
3/4
这样的东西给了我一个错误。我知道问题是什么,我想知道是否有另一种方法可以输入一个分数,该分数被解出来并以浮点形式存储在变量中。

正如Josh Lee所指出的,将其包装在一个
分数
从分数导入分数
)中,然后将其转换为
浮点

r = float(Fraction(input(">>> ")))
这将接受具有以下形式的浮点和字符串:

[sign] numerator ['/' denominator] 


当然,您应该将其包装在一个
try except
中,以防止不符合该格式的意外输入。

'3/4'
不是浮点数的表示形式。如果您允许用户输入分数,您需要自己解析它们。将输入作为字符串读取,然后应用此问题答案中描述的解决方案:如果应用程序能够处理此问题,则不将结果分数转换为浮点值可能是值得的,作为一个分数,只要对它进行的操作使它保持为分数,它就不会失去精度并保持最大精度。