Python将字符串内部的分数转换为整数

时间:2016-02-10 20:39:02

标签: python python-3.x

如何将作为分数输入的输入(例如," 4/2")转换为python 3.5中的整数?我尝试过使用以下两个代码:

b = int(input("Please enter a value for b of the quadratic equation: "))
b = int(float(input("Please enter a value for b of the quadratic equation: ")))

2 个答案:

答案 0 :(得分:10)

使用fractions

>>> from fractions import Fraction
>>> int(Fraction('4/2'))
2

无论你做什么,都不要使用eval

答案 1 :(得分:2)

使用用于正则表达式re的标准库,您可以测试分数的格式是否正确:

>>> import re
>>> fraction_pattern = re.compile(r"^(?P<num>[0-9]+)/(?P<den>[0-9]+)$")

然后:

>>> g = fraction_pattern.search('355/113')
>>> if g:
        f = float(g.group("num"))/float(g.group("den"))
>>> f
3.1415929203539825

但与fractions相比,它可能不是最快的,也不是最简单的解决方案...