(Learner-here) Lists + Functions = headache

alex23 wuwei23 at gmail.com
Sun May 5 21:21:33 EDT 2013


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.





More information about the Python-list mailing list