Python 入门
扩展作业是如何运作的?
增广赋值将二元操作与赋值结合为一步。它取一个变量,对其应用另一个值的操作,然后将结果存回同一个变量。
如果你熟悉像JavaScript这样的语言,你可能听说过加法赋值算符(+=)或减法赋值(-=),以及其他。这些在Python里也有。唯一的区别是它们被称为增强作业。
扩展作业的基本语法如下:
variable <operator>= value
哪种方式更高效:
variable = variable <operator> value
例如,这里有一个使用增强赋值对现有变量添加的示例:5
my_var = 10 my_var += 5 print(my_var) # 15
这里有同样的内容,但没有增强赋值:
my_var = 10 my_var = my_var + 5 print(my_var) # 15
增强赋值的优点在于它提供了一种简洁易读的方式来更新变量值而不重复变量名称。反过来,这减少了冗余和可能因拼写错误等原因产生的错误。
每个操作员都可以使用增强赋值。我们已经看过加法赋值算子(+=),接下来看看其他操作。
减法赋值算符(-=)从左变量中减去右操作数,并存储左变量的差值:
count = 14 count -= 3 print(count) # 11
乘法赋值算子(*=)将左变量乘以右操作数,并将乘积存储回左变量:
product = 65 product *= 7 print(product) # 455
除法赋值算符(/=)将左变量除以右变量,并将结果存储回左变量:
price = 100 price /= 4 print(price) # 25.0
地板除法算子(//=)将左变量除以右变量,并将结果存储回左变量:
total_pages = 23 total_pages //= 5 print(total_pages) # 4
模赋值算子(%=)计算左变量除以右变量的余数,并将其存回左变量中:
bits = 35 bits %= 2 print(bits) # 1
指数赋值算子(**=)将左变量提升为右变量的幂,并将结果存储回左变量:
power = 2 power **= 3 print(power) # 8
你也可以用一些带字符串的增强赋值算子。例如,加法赋值算符使字符串的连接变得容易:
greet = 'Hello' greet += ' World' print(greet) # Hello World
乘法赋值算符可用于重复字符串:
greet = 'Hello' greet *= 3 print(greet) # HelloHelloHello
其他增强作业在字符串中使用时会抛出 a:TypeError
greet = 'Hello' greet -= ' World' print(greet) # TypeError: unsupported operand type(s) for -=: 'str' and 'str' greet = 'Hello' greet /= 'World' print(greet) # TypeError: unsupported operand type(s) for /=: 'str' and 'str'
如果你想知道增减运算符(和)在Python中是否有效,它们是不行的。这是因为 Python 有意避免 C 风格的增减快捷方式,以保持语言清晰和显式。++--
你可以直接写成 ,这样很明显你是在将 的值增加 。x++x += 1x1
用 Python 写作只是应用两次一进制加,不会递增任何东西:++x
my_var = 5 print(+my_var) # 5 print(++my_var) # 5 print(+++my_var) # 5 my_var += 1 print(my_var) # 6