Python:1和1之间的区别

Tom*_*ale 1 python python-3.x

我遇到了一些代码:

dz3 = 1./m * (a3 - Y)
Run Code Online (Sandbox Code Playgroud)

为什么1.在这里使用而不是简单1

两者似乎都相同:

>>> 1 / 4
0.25
>>> 1. / 4
0.25
Run Code Online (Sandbox Code Playgroud)

是否有任何不相同的情况?

Ry-*_*Ry- 6

这种东西将用于Python 2兼容性,其中int默认情况下,具有两个操作数的除法是整数除法.1.是一个float而不是一个int,所以无论Python版本m是什么都会导致浮点除法int.

  • @jezrael或许可以说"这是微不足道的,让我们不要用竞争的答案开始轰炸". (2认同)

小智 5

在 Python2 中

>>> 3/2 # returns 1
Run Code Online (Sandbox Code Playgroud)

而在 Python3 中

>>> 3/2 # returns 1.5
Run Code Online (Sandbox Code Playgroud)

如您所见,一个进行整数除法,另一个进行浮点除法。

如果我要写

>>> 3./2 # returns 1.5
Run Code Online (Sandbox Code Playgroud)

无论我选择哪种 Python 版本,它都会执行浮点除法。因为浮点数/整数只能导致浮点数。

同样要在 Python 3 中进行整数除法,您只需编写

>>> 3//2
Run Code Online (Sandbox Code Playgroud)

查看更多信息