[英]I don't understand operator precedence in python True and False or True
[英]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.