分数的Python指数计算
我试图计算27^(1/3)=3。但结果并不像预期的那样分数的Python指数计算,python,python-2.7,Python,Python 2.7,我试图计算27^(1/3)=3。但结果并不像预期的那样 >>> 27 ** (1/3) 1 >>> 27 ** (1/3.) 3.0 首先,为什么第一次计算结果是1,是因为1/3被转换成整数,所以它等于零吗 其次,“.”在Python中通常意味着什么?我可以在任何数字后面加一个点,以便将其从int转换为double吗 谢谢 首先,为什么第一次计算会得到1,是因为1/3吗 是否将其转换为整数,使其等于零 是的,就是这样 “.”在Python中通常意味着什么?我
>>> 27 ** (1/3)
1
>>> 27 ** (1/3.)
3.0
首先,为什么第一次计算结果是1,是因为1/3被转换成整数,所以它等于零吗
其次,“.”在Python中通常意味着什么?我可以在任何数字后面加一个点,以便将其从int转换为double吗
谢谢
首先,为什么第一次计算会得到1,是因为1/3吗
是否将其转换为整数,使其等于零
是的,就是这样
“.”在Python中通常意味着什么?我可以在它后面加一个点吗
任何数字都可以将其从int转换为double
明确地将数字设为浮点数,因为1.0
与仅1
相反
首先,为什么第一次计算会得到1,是因为1/3吗
是否将其转换为整数,使其等于零
是的,就是这样
“.”在Python中通常意味着什么?我可以在它后面加一个点吗
任何数字都可以将其从int转换为double
显式地将数字设为浮点数,因为1.0
与python 2中的整数除法相反
在python 2中:
>>> 2/3
0
在python 3中:
>>> 2/3
0.6666666
如果您想在python2中实现python3的行为,可以这样做
from __future__ import division
作为你的第一次进口
对于整数除法,使用
>>> 2 // 3
0
或者您可以使用
2.0/3.0
来使用float
s。您在python 2中体验到整数除法
在python 2中:
>>> 2/3
0
在python 3中:
>>> 2/3
0.6666666
如果您想在python2中实现python3的行为,可以这样做
from __future__ import division
作为你的第一次进口
对于整数除法,使用
>>> 2 // 3
0
或者您可以使用
2.0/3.0
来使用float
s.在python 2.x中,整数的除法默认为底除法,因此任何非整数商都会自动向下舍入到最接近的整数
>>> 1/3
0
>>> 5/2
2
因此,当你试图计算27**(1/3)时,你只是在计算27**0
这个问题有很多解决方法,最简单的方法是只使用指数中的浮点-(1.0/3.0),甚至只使用(1/3.0)。然而,如果你要做很多这样的计算,不断地以浮点形式输入所有的数字可能会变得很烦人。在这种情况下,您可以使用future模块来利用Python 3.x除法行为,这通常会产生一个浮点值:
>>> from __future__ import division
>>> 1/3
0.3333333333333333
这样,计算将永远不会默认为楼层划分。如果您希望在同一个程序中使用楼层除法,则可以使用//运算符获得类似于python 2.x整数除法的行为,如下所示:
>>> 1//3
0
在Python2.x中,整数的除法默认为底数除法,因此任何非整数商都会自动向下舍入到最接近的整数
>>> 1/3
0
>>> 5/2
2
因此,当你试图计算27**(1/3)时,你只是在计算27**0
这个问题有很多解决方法,最简单的方法是只使用指数中的浮点-(1.0/3.0),甚至只使用(1/3.0)。然而,如果你要做很多这样的计算,不断地以浮点形式输入所有的数字可能会变得很烦人。在这种情况下,您可以使用future模块来利用Python 3.x除法行为,这通常会产生一个浮点值:
>>> from __future__ import division
>>> 1/3
0.3333333333333333
这样,计算将永远不会默认为楼层划分。如果您希望在同一个程序中使用楼层除法,则可以使用//运算符获得类似于python 2.x整数除法的行为,如下所示:
>>> 1//3
0
你所有的猜测都是正确的。请记住,在python-3中,数字默认为浮点。@mehmetminanc:在python-3中,数字默认为非浮点。如果在Python3中编写整数文本,它仍然是整数。但是,
/
除法运算符总是执行浮点除法。FWIW,这是官方Python 2中最先涉及的主题之一。“除法(/)运算的返回类型取决于其操作数。如果两个操作数都是int类型,则执行下限除法并返回int。如果其中一个操作数是浮点,则执行经典除法并返回浮点。无论操作数是什么,都会提供//运算符进行下限除法。”@PM2Ring Oh,我其实很惊讶。不过,这两者之间有什么实际意义吗?@mehmetminanc:“整数和浮点之间有什么实际意义吗?”?当然Python整数可以任意大(给定内存限制);浮动的范围和精度有限。有关详细信息,请参阅维基百科的文章。Python使用它的浮动。你所有的猜测都是正确的。请记住,在python-3中,数字默认为浮点。@mehmetminanc:在python-3中,数字默认为非浮点。如果在Python3中编写整数文本,它仍然是整数。但是,/
除法运算符总是执行浮点除法。FWIW,这是官方Python 2中最先涉及的主题之一。“除法(/)运算的返回类型取决于其操作数。如果两个操作数都是int类型,则执行下限除法并返回int。如果其中一个操作数是浮点,则执行经典除法并返回浮点。无论操作数是什么,都会提供//运算符进行下限除法。”@PM2Ring Oh,我其实很惊讶。不过,这两者之间有什么实际意义吗?@mehmetminanc:“整数和浮点之间有什么实际意义吗?”?当然Python整数可以任意大(给定内存限制);浮动的范围和精度有限。有关详细信息,请参阅维基百科的文章。Python使用它的浮动。附录:切换到Python3,其中用/
除法总是给你一个浮动。很多