Python - 不懂运算符 - 指数

Posted

技术标签:

【中文标题】Python - 不懂运算符 - 指数【英文标题】:Python - don't understand operator - exponent 【发布时间】:2020-06-10 11:33:59 【问题描述】:

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

elem **= 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))

【问题讨论】:

谢谢大家。这是有道理的,执行操作,分配变量。 :) 【参考方案1】:

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

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

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

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

'=' 符号更改 elem 变量。

而不是写:

elem = elem**2

您可以改为:

elem **= 2

【讨论】:

【参考方案4】:

**= 运算符使用运算符两侧的参数应用幂运算并将其保存到变量中。这与elem = elem ** 2 相同。

同样,如果您想将变量加 1,您可以使用i+=1i 的值将递增。

【讨论】:

【参考方案5】:

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

【讨论】:

以上是关于Python - 不懂运算符 - 指数的主要内容,如果未能解决你的问题,请参考以下文章

Python 3基础教程3-数学运算

Python运算

我如何在python中进行幂运算? [复制]

python学习--运算符详解

Python运算符

C#中有指数运算符吗?