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+=1
。 i
的值将递增。
【讨论】:
【参考方案5】:基本上你可以写elem **2
它会正常工作。
您可以添加此行 print(elem **@2)
并查看其工作情况。
添加“=”符号的原因是将您通过elem**2
计算的值重新分配给elem。
【讨论】:
以上是关于Python - 不懂运算符 - 指数的主要内容,如果未能解决你的问题,请参考以下文章