(Learner-here) Lists + Functions = headache

Bradley Wright bradley.wright.biz at gmail.com
Sun May 5 21:24:44 EDT 2013


On Sunday, May 5, 2013 9:21:33 PM UTC-4, alex23 wrote:
> On May 6, 10:59 am, Bradley Wright <bradley.wright.... at gmail.com>
> 
> wrote:
> 
> > def fizz_cout(x):
> 
> >     count = 0
> 
> >     for item in x:
> 
> >         while item == "fizz":
> 
> >             count += 1
> 
> >             return count
> 
> >
> 
> > Please remember that i am a eager beginner, where am i going wrong?
> 
> 
> 
> There are several problems with your code:
> 
> 
> 
> >     for item in x:
> 
> >         while item == "fizz":
> 
> >             count += 1
> 
> 
> 
> The `for` takes an item out of the list `x`. If that item is the
> 
> string 'fizz', it increments count. As it's a `while` loop, it will
> 
> continue to increment for as long as `item` is 'fizz'. Since the while
> 
> loop doesn't look up another list item, it will remain as 'fizz' until
> 
> the end of time. Well, it would except for your second bug:
> 
> 
> 
> >         while item == "fizz":
> 
> >             count += 1
> 
> >             return count
> 
> 
> 
> The very first time it encounters a list item that is 'fizz', it adds
> 
> one to `count`, then exits the function passing back `count`.
> 
> 
> 
> You want to move the return to _outside_ the for loop, and you want to
> 
> change your `while` condition to an `if` instead.

Thank you Alex - much appreciated, about to implement right now!



More information about the Python-list mailing list