📅  最后修改于: 2020-04-10 04:33:13             🧑  作者: Mango
该模块支持有理数算法。它允许从整数,浮点数,数字,小数和字符串创建Fraction实例。
分数实例:分数实例可以由一对整数,另一个有理数或字符串构造。分数实例是可哈希的,应视为不可变的。
from fractions import Fraction
print Fraction(11, 35)
# 返回 Fraction(11, 35)
print Fraction(10, 18)
# 返回 Fraction(5, 9)
print Fraction()
# 返回 Fraction(0, 1)
输出:
11/35
5/9
0
from fractions import Fraction
print Fraction(1.13)
# 返回 Fraction(1272266894732165, 1125899906842624)
输出:
1272266894732165/1125899906842624
4.class fractions.Fraction(decimal):这需要十进制实例,并返回具有相同值的分数实例。
from fractions import Fraction
print Fraction('1.13')
# 返回 Fraction(113, 100)
输出:
113/100
5.class fractions.Fraction(string)类:这需要字符串或unicode实例,并返回具有相同值的分数实例。此实例的形式: [符号]分子[‘/’分母]
在这里,符号表示’+’或’-‘,分子和分母是数字的字符串。
from fractions import Fraction
print Fraction('8/25')
# 返回 Fraction(8, 25)
print Fraction('1.13')
# 返回 Fraction(113, 100)
print Fraction('3/7')
# 返回 Fraction(3, 7)
print Fraction('1.414213 \t\n')
# 返回 Fraction(1414213, 1000000)
输出:
8/25
113/100
3/7
1414213/1000000
6.limit_denominator(max_denominator = 1000000):
from fractions import Fraction
print Fraction('3.14159265358979323846')
# 返回 Fraction(157079632679489661923, 50000000000000000000)
print Fraction('3.14159265358979323846').limit_denominator(10000)
# 返回 Fraction(355, 113)
print Fraction('3.14159265358979323846').limit_denominator(100)
# 返回 Fraction(311, 99)
print Fraction('3.14159265358979323846').limit_denominator(10)
# returns Fraction(22, 7)
print Fraction(125, 50).numerator
# 返回 5
print Fraction(125, 50).denominator
# 返回 2
输出:
157079632679489661923/50000000000000000000
355/113
311/99
22/7
5
2
对分数执行数学运算
from fractions import Fraction
print Fraction(113, 100) + Fraction(25, 18)
# 返回 Fraction(2267, 900)
print Fraction(18, 5) / Fraction(18, 10)
# 返回 Fraction(2, 1)
print Fraction(18, 5) * Fraction(16, 19)
# 返回 Fraction(288, 95)
print Fraction(18, 5) * Fraction(15, 36)
# 返回 Fraction(3, 2)
print Fraction(12, 5) ** Fraction(12, 10)
# 返回 2.8592589556010197
输出:
2267/900
2
288/95
3/2
2.8592589556
使用数学math模块的各种功能进行基于分数的计算
import math
from fractions import Fraction
print math.sqrt(Fraction(25, 4))
# 返回 2.5
print math.sqrt(Fraction(28,3))
# 返回 3.0550504633038935
print math.floor(Fraction(3558, 1213))
# 返回 2
print Fraction(math.sin(math.pi/3))
# 返回 Fraction(3900231685776981, 4503599627370496)
print Fraction(math.sin(math.pi/3)).limit_denominator(10)
# 返回 Fraction(6, 7)
输出:
2.5
3.0550504633
2.0
3900231685776981/4503599627370496
6/7