![](/img/trans.png)
[英]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.