鱼C论坛

 找回密码
 立即注册
查看: 2274|回复: 4

[技术交流] Python 小技巧 048:分数计算

[复制链接]
发表于 2020-1-13 22:30:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zltzlt 于 2020-1-13 22:30 编辑

Python 分数计算


Python 的第三方库 fractions 实现了有理数(即分数)的基本运算。

要想使用 fractions 模块,首先当然得导入:

  1. >>> from fractions import Fraction
复制代码


之后创建一个 Fractions(分数类)的实例。初始化方法中的参数可以是一个 '[sign]numerator[/denominator]' 格式的字符串。

sign 表示分数的正负,可以是 + 或 -,如果是 + 可以省略。denominator 表示分数的分母。

例如:

  1. >>> Fraction('-1')
  2. Fraction(-1, 1)
  3. >>> Fraction('1/5')
  4. Fraction(1, 5)
复制代码


参数也可以是一个浮点数,Fraction 内部自动将其转化为分数。

例如:

  1. >>> Fraction(0.2)
  2. Fraction(3602879701896397, 18014398509481984)
  3. >>> 3602879701896397 / 18014398509481984
  4. 0.2
复制代码


还可以是两个整数,分别代表分子和分母。

例如:

  1. >>> Fraction(1, 3)    # 代表 1/3
  2. Fraction(1, 3)
复制代码


之后,我们便可以尝试将两个分数相加了。

  1. >>> f1 = Fraction(1, 3)
  2. >>> f2 = Fraction(2, 3)
  3. >>> f1 + f2    # 将两个 Fraction 的实例相加
  4. Fraction(1, 1)
复制代码


OK,可以看到结果是正确的。除了相加,还可以将两个分数相减、相乘与相除:

  1. >>> f1 = Fraction(5, 7)
  2. >>> f2 = Fraction(3, 6)
  3. >>> f1 - f2
  4. Fraction(3, 14)
复制代码

  1. >>> f1 = Fraction(2, 3)
  2. >>> f2 = Fraction(10, 13)
  3. >>> f1 * f2
  4. Fraction(20, 39)
复制代码

  1. >>> f1 = Fraction(3, 4)
  2. >>> f2 = Fraction(1, 3)
  3. >>> f1 / f2
  4. Fraction(9, 4)
  5. >>> f1 // f2    # 地板除
  6. 2
  7. >>> f1 % f2    # 求余数
  8. Fraction(1, 12)
复制代码


很神奇,对不对

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-1-14 06:54:14 From FishC Mobile | 显示全部楼层
不!这不神奇
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-30 13:45:01 | 显示全部楼层
都是分数的基本运算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-30 14:15:11 | 显示全部楼层
本帖最后由 _2_ 于 2020-1-30 14:16 编辑
  1. >>> from fractions import Fraction
  2. >>> a = Fraction(8,7)
  3. >>> b = Fraction(5,6)
  4. >>> c = Fraction(a,b)  #这里尝试创建繁分数
  5. >>> c                    #看看能不能成功
  6. Fraction(48, 35)
  7. >>>
复制代码


官方的模块就是牛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-30 14:20:33 | 显示全部楼层
_2_ 发表于 2020-1-30 14:15
官方的模块就是牛


对啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-5 10:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表