簡體   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