1

在第 4 行中,为什么我们必须在“-”之后添加“=”?

num = 5
if num > 2:
    print(num)
    num -= 1
print(num)
4

9 回答 9

12

num - 1:产生减一的结果numnum没有改变

num -= 1: 减一并num存储结果(相当于num = num - 1whennum是一个数字)

请注意,您可以将num - 1其用作表达式,因为它会产生结果,例如foo = num - 1, 或print(num - 1),但您不能num -= 1在 Python 中用作表达式。

于 2013-02-25T09:14:22.620 回答
5
num -= 1

是相同的

num = num - 1
于 2013-02-25T09:13:38.747 回答
5

需要将=减法的结果分配回num

以下:

num -= 1

减去 1num 并将结果分配回num.

另一方面,以下内容:

num - 1

减去 1num 并丢弃结果

于 2013-02-25T09:14:08.050 回答
5

因为num - 1什么都不做,只是num -= 1将 的值更改num减一。

于 2013-02-25T09:14:08.707 回答
3

你本质上是在问之间的区别

num - 1

num -= 1

前者是一个计算结果为 的表达式num - 1。后者是分配给 的num - 1分配num

所以,前者不修改num,后者修改。

于 2013-02-25T09:14:20.327 回答
3

这是一个较短的写作版本:

num = num - 1
于 2013-02-25T09:14:25.420 回答
2

您不必任何事情,除非您需要为程序正确运行做一些事情。有些事情是好的做法,但不要让编译器和规范以外的任何人或任何东西说服您必须以某种方式做某事。在这种情况下,n -= 1与 完全相同n = n - 1。因此,如果您不想将 放在-之前=,则不要。改为使用n = n - 1

于 2013-02-25T09:19:36.787 回答
1

-=是一个运算符。该运算符等于减法。

num -= 1手段是 num = num - 1

它用于从右侧减去具有给定值的自身。

于 2013-02-25T09:15:53.683 回答
1

the-=是一个运算符,你写的会产生num = num - 1.

于 2013-02-26T06:42:52.230 回答