Python中的"variable //= a value"语法是什么意思?

11
我看到一段代码语法 d //= 2,其中d是一个变量。这不是任何循环的一部分,我不太明白这个表达式的意思。
有人能给我解释一下吗?

2
我们应该将这个作为规范答案,并关闭措辞不够清晰的 Python中的双斜杠 问题,将其作为此问题的重复。 - smci
另一个2013年的回答,可以使用**python //=**查询在stackse上轻松找到。 - ren
首先在谷歌上搜索“Python运算符”。 - phuclv
2
文档有一个索引,其第一页标题为“符号”。该页面上的“//=”条目链接到https://docs.python.org/3/reference/simple_stmts.html#augmented-assignment-statements。 - Terry Jan Reedy
3个回答

27

// 是一个向下取整的操作符。旁边的 = 表示对变量进行“原地”的操作。如果你以前见过 +=*= 操作符,那么它们与此类似,只不过这次是除法。

假设我有一个名为 d 的变量。我将其值设置为 65,像这样。

>>> d = 65

调用 d //= 2 会将 d 除以 2,然后将结果分配给 d。由于 d // 2 是32(32.5,但小数部分被去掉),因此 d 变成了32:

>>> d //= 2
>>> d
32

这与调用d = d // 2是相同的。


在这种情况下是一样的,但一般而言,并不一定相同。请参见 https://docs.python.org/3/library/operator.html#operator.__floordiv__ vs. https://docs.python.org/3.4/library/operator.html#operator.__ifloordiv__。 - glglgl

7

这段代码将变量d除以2,向下取整。Python可以交互地运行,试一试吧。

$ python
Python 2.7.10 (default, Oct 23 2015, 19:19:21) 
>>> a = 4
>>> a //= 2
>>> a
2

5
“a = 5”会是一个更好的例子。(用来对比“a /= 2”) - Martin Bonner supports Monica

3

将变量通过地板除法除以2,并将新的金额分配给该变量。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接