Python - 不懂运算符 - 指数

Python - don't understand operator - exponent

我正在阅读 Python 学院的教程,他们在 for 循环中有一个表达式,它采用 1,2,3 的列表...产生 1,4,9 的输出,16。所以,在我看来,它是对每个元素进行平方。

元素 **= 2

我不明白“=”在那里做什么。不应该写成 elem ** 2 吗?它只是另一种写法吗?

它似乎在代码中有效。

def listUpdater(lst):
updList = []
for elem in lst:
    elem **= 2
    updList.append(elem)
return updList


def main():
    l = [1, 2, 3, 4, 5]
    print(listUpdater(l))

'=' 将更改应用到变量 'elem',没有'=',它会给出它的平方,但变量不会改变,它不会平方。

this link 您对 Python 运算符有一个很好的概述,还有另一种编写它们的方法。

本质上,像 ** 这样的运算符与 = 的组合意味着首先执行运算符,并将其结果分配给左侧的变量。

所以在你的例子中,elem 是平方的,结果保存在同一个 elem 中,并在下一行附加到 updList

另一种写法是 elem = elem ** 2

“=”符号更改 elem 变量。

而不是写作:

elem = elem**2

您可以改写:

elem **= 2

**=运算符对运算符两边的参数进行幂运算,并保存到变量中。这与 elem = elem ** 2.

相同

类似地,如果你想将一个变量递增 1,你可以做 i+=1i 的值将增加。

基本上你可以写 elem **2 它会很好地工作。 您可以添加此行 print(elem **@2) 并查看其工作情况。 添加“=”符号的原因是将 elem**2 计算的值重新分配给 elem.