繁体   English   中英

Python - 不懂运算符 - 指数

[英]Python - don't understand operator - exponent

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

元素 **= 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))

此链接中,您可以很好地了解 Python 运算符以及另一种编写它们的方法。

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

因此,在您的情况下, elem 是平方的,结果保存在同一个 elem 和附加到updList的下一行中。

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

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

'=' 符号更改 elem 变量。

而不是写:

elem = elem**2

您可以改写:

elem **= 2

**=运算符从运算符两边对arguments进行幂运算,并保存到变量中。 这与执行elem = elem ** 2相同。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM