2017-06-21 247 views
-3

我有兩個不同的代碼塊Python聲明變量vs不聲明

我試圖總結數據集中的所有變量。

第二個代碼塊有效,而第一個代碼塊給了我'錯誤'的答案。我猜這是因爲我在給它一個值之前使用了變量'total'。

我在想,python在這種情況下做了什麼樣的計算?什麼是總分配?

感謝,

代碼#1

for num in df['Data']: 
     total = total + num 

代碼#2

total = 0 
for num in df['Data']: 
      total = total + num 
+4

代碼#1會給你一個錯誤。 – hallaksec

+0

在這種情況下,Python不會做任何「計算」。如果'total'已經有一個值,那就是將要使用的值。 –

+1

正如hallaksec所說,代碼#1不會工作......除非你的代碼#1實際上是*代碼#2之後,在這種情況下它將使用來自代碼的「total」的(已更新的)值#2。爲避免這種情況,您必須像#2代碼那樣將''total'''重置爲0。 –

回答

3

在代碼的第一個部分,你已經寫了:

total = total + num 

如果total沒有按不存在如何將total添加到num

而且也許這樣做的清潔方法是使用+=:因爲總未聲明

total = 0 
for num in df['Data']: 
    total += num 
+1

寫入df ['Data'] sum()?可能更清潔。 – HH1