2016-04-27 70 views
0

我正在學習python 2,並且正在測試我所瞭解的循環。如何獲得for循環返回列表中特定事物的總數量?

def fizz_count(x): 
    count = 0 
    for item in x: 
     if item == 'fizz': 
      count = count + 1 
      return count 
fizz = [2, 'fizz', 'fizz', 'fIzZ', 6, 10, 'fizz', 'fizz'] 
print fizz_count(fizz) 

以上是我提出來測試它,這個想法是,每一個字符串「嘶嘶」被確定它的時候加1到變量計數。正如你所看到的,字符串'fizz'出現4次,所以應該打印4號。它沒有。

+0

爲什麼你會回到那裏? –

+1

相關[如何計算Python中列表項的出現?](http://stackoverflow.com/q/2600191) –

回答

3

當循環結束時,您會希望返回。隨着您的縮進,只要找到第一個fizz就會返回。

def fizz_count(x): 
    count = 0 
    for item in x: 
     if item == 'fizz': 
      count = count + 1 
    return count 

但是你還沒有想到pythonicallyfor循環是爲鳥類。我們使用一個生成器表達式。或者,我們可以懶惰(聰明),只需調用一個內置函數來爲我們做這件事。

def fizz_count(x): 
    return x.count('fizz') 
1

您需要將return語句放在循環之外。當python得到一個return語句時,它立即退出函數。所以你想在for循環完成時返回,否則它不會完成循環。 但是你也可以在函數中設置打印語句,返回在這裏沒有用處