Python中的分数

011*_*100 8 python fractions

无论如何在Python中计算一个分数,例如2/3或1/2,而不导入math模块?

代码片段很简单:

# What is the cube root of your number
n = float(raw_input('Enter a number: '))
print(n**(1/3))
Run Code Online (Sandbox Code Playgroud)

非常简单的代码,但我看到它告诉我导入math模块.我只是想将该片段添加到我正在处理的更大的代码中.我一直得到1作为我的答案,因为Python感觉像1/3是0而不是.333333333.我可以把.33333,但这只是一个临时修复,我想知道如何为未来的项目执行这个非常基本的计算.

Bre*_*arn 12

您可以from __future__ import division在必要时使用整数除法返回浮点数(这样1/3将导致0.333333 ......).

即使不这样做,您也可以通过1.0/3代替而获得小数值1/3.(1.0使第一个数字成为浮点而不是整数,这使得除法工作正常.)

  • 1.0/3建议+1,使用`1.0`代替`1.` (2认同)

yil*_*yin 5

标准库中有一个分数模块,可以对分数执行各种任务。如果您对分数进行了大量计算,则可以在不将它们转换为浮点数的情况下进行计算。http://docs.python.org/library/fractions.html