2017-05-30 16 views
0

我知道已經有很多類似的問題,但我已經閱讀過它們,我想我已經嘗試瞭解決方案,但沒有成功。另一個Python字符串比較問題

這是我的代碼

def get_total(player,stat): 
    total = 0 
    for player in Batting: 
     if player['playerID'] == player: 
      print player['playerID'] 
      total = total + player[stat] 
    return total 

如果我這樣調用該函數:

get_total("gomezca01","HR") 

字符串比較不給匹配。

但是,如果我硬編碼字符串如下

if player['playerID'] == "gomezca01": 

中的字符串匹配,並且如果循環中實現。

我是一個初學者,知道這可能是一個非常基本的東西,我做錯了,但如果任何人都可以迅速向我指出,我將不勝感激。我已經嘗試過單引號和雙引號的不同組合,並且已經嘗試在傳遞給函數的參數上使用strip函數。謝謝。

+0

什麼是「擊球」?當您的輸入和循環變量具有相同的名稱時,您希望發生什麼? –

+0

問題是,你使用變量名'player'來引用兩件事情,而python不知道你每次引用哪個變量。事實上,當你在兩個地方使用相同的變量名時,後面的用法會覆蓋前者。只需將'Batting'中的播放器替換爲'在擊球中替換other_variable_name' – inspectorG4dget

+0

@ inspectorG4dget。實際上,Python知道使用哪一個。這是OP不知道的。 –

回答

4

這是因爲您的參數和循環變量都被稱爲player。重命名一個或另一個,否則使用循環迭代將您傳遞給函數的值破壞。