首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于分数的Python指数计算

问关于分数的Python指数计算
EN

Stack Overflow用户
提问于 2016-03-13 20:50:33
回答 3查看 654关注 0票数 0

我试图计算27^(1/ 3 ) =3,但结果并不像预期的那样。

代码语言:javascript
复制
>>> 27 ** (1/3)
1
>>> 27 ** (1/3.)
3.0

首先,为什么第一个计算结果是1,因为1/3被抛到整数中,所以等于零吗?

第二,什么是“。”在一般Python中,我可以在任何数字后面加一个点,以便把它从int转换成double吗?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-13 20:54:39

首先,为什么第一个计算结果是1,因为1/3被抛到整数中,所以等于零吗?

是的,没错。

什么是“.”在一般Python中,我可以在任何数字后面加一个点,以便把它从int转换成double吗?

.显式地使数字成为一个浮点数,因为1.0将反对1。

票数 3
EN

Stack Overflow用户

发布于 2016-03-13 21:12:47

您可以在python 2中体验整数除法。

在python 2中:

代码语言:javascript
复制
>>> 2/3
0

在python 3中:

代码语言:javascript
复制
>>> 2/3
0.6666666

如果您想要在python3中使用python2行为,您可以这样做

代码语言:javascript
复制
from __future__ import division

作为你的第一次进口。

对于整数除法,请使用

代码语言:javascript
复制
>>> 2 // 3
0

或者您可以使用2.0 / 3.0来使用float。

票数 2
EN

Stack Overflow用户

发布于 2016-03-13 21:15:56

在python2.x中,除法整数默认为地板除法,因此任何非整数商都会自动舍入到最近的整数,例如

代码语言:javascript
复制
>>> 1/3
0
>>> 5/2
2

所以当你试图计算27 ** (1/3)时,你只是在计算27 ** 0

这个问题有很多解决办法,最简单的方法就是在指数中使用浮点- (1.0/3.0),甚至只是(1/3.0)。然而,如果你要做大量的这些计算,它可能会变得烦人的是,不断地键入所有数字的浮点形式。在本例中,您可以使用未来的模块来利用Python3.x除法行为,这总是会产生一个浮点值:

代码语言:javascript
复制
>>> from __future__ import division
>>> 1/3
0.3333333333333333

这样,计算将永远不会默认为地板划分。如果在某个时候想要在同一个程序中划分楼层,只需使用//操作符来获得类似python2.x整数除法的行为,如下所示:

代码语言:javascript
复制
>>> 1//3
0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35975678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档