FAQ: Learn Python: A Day at the Supermarket - Lists + Functions

Community%20FAQs%20on%20Codecademy%20Python%20Exercises

This community-built FAQ covers the “Lists + Functions” exercise in Codecademy’s lessons on Python.

FAQs for the Codecademy Python exercise Lists + Functions:

Join the Discussion. We Want to Hear From You!

Have a new question or can answer someone else’s? Reply (reply) to an existing thread!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources about Python in general? Go here!

Want to take the conversation in a totally different direction? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account, billing, Pro, or Pro Intensive? Reach out to our support team!

None of the above? Find out where to ask other questions here!

Other FAQs

The following are links to additional questions that our community has asked about this exercise:

  • This list will contain other frequently asked questions that aren’t quite as popular as the ones above.
  • Currently there have not been enough questions asked and answered about this exercise to populate this FAQ section.
  • This FAQ is built and maintained by you, the Codecademy community – help yourself and other learners like you by contributing!

Not seeing your question? It may still have been asked before – try (search) in the top-right of this page. Still can’t find it? Ask it below by hitting the reply button below this post (reply).

Hi. It kept telling me there was an unexpected indent at “return count” but if I backspaced it “return count” would be outside the function. I was pretty sure I was doing it correctly and sure enough I copied the code pressed solution pasted my code under it and they are exactly the same. Now I don’t know if something is wrong with my code or just codeacademy. I had similar issues in past lessons(can’t rememebr which) where it told me there was an indentation error when there was in fact no indentation error. I remembered to indent where I needed. I copied and pasted the code and sure no eugh my code was the same.

2 Likes

I have a similar problem, although mine is for the “for” line. I also checked my work against the solution (including indentation!) and it should be correct. Buggy tutorial?

# Write your function below!
def fizz_count(x):
	count = 0
	for item in count:
 		 if item == 'fizz':
  	 		count = count + 1
 		 return count

fizz = ['fizz','cat','fizz']
total = fizz_count(fizz)
print total

I keep getting

Traceback (most recent call last):
  File "python", line 10, in <module>
  File "python", line 4, in fizz_count
TypeError: 'int' object is not iterable

I can’t figure out what i’ve got wrong for this

You have not defined total

Had the same so I used a text editor to check the indents.

Hey, the exercise itself is going to input the ‘[“fizz”,“cat”,“fizz”]’ inside of your “x”.
Also, you have a mistake in your for loop. Check the code below to see if you can identify your mistake.

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

My code works for this exercise (ran it on my own computer with a local terminal), but I’m not getting the result display… this is my code:

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

fizz_count(["hello", "my", "name", "fizz", "is", "fizz"])

The lesson has been marked as correct, but this is the result I’m getting:

I’m on a chrome web browser, and I’ve tried reloading/restarting the browser… is this happening to anyone else?

1 Like

Why can’t I use this function (fizz_count) to count the instances of “fizz” inside a string?
My code is:
image
and it gives 0 as an output

looping over a string gives one character a time, simple to demonstrate with a simple print statement:

for item in x:
   print item

a single letter will never equal multiple letters/a whole word.

1 Like

The code still has issue as in the past from 2018 -2020 and to pass this execise you should copy the code provided in the solution. :expressionless:

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

fizz_counted = [“fizz”, “cat”, “fizz”]
counted = fizz_count(fizz_counted)
print(counted)

Output
1 :no_pedestrians: instead of 2

What is this code? Is that what you wrote? Or?

The code below is from the module.

The code you posted is the provided solution? I find that difficult to believe

Where is the exercise url in this FAQ? can’t find it, could you provide it?

Here is the screenshot of the webpage with required url, exercise and solution. I hope you are able to make out the content of the screenshot.

So I now have to type the entire url? Please copy paste the url to the forum, makes access a lot easier.

If there is indeed a problem in the solution, having the exercise url makes reporting the bug a lot easier

But feels more like the code you wrote, contains a mistake. Your return is nested within your for loop, so the moment a match has been found, return keyword is reached, which will signal that the function is done executing

def count_small(numbers):
total = 0
for n in numbers:
if n < 10:
total = total + 1
return total

lotto = [4, 8, 15, 16, 23, 42]
small = count_small(lotto)
print small

This is an example code from the lesson. I don’t understand how
‘numbers’ is being defined here. Seeing as numbers is suppose to be the list/dictionary that the variable n is suppose to be checked for.

If you’re posting code to the forums, please see- How do I format code in my posts? as it makes reading and interpreting your text much easier for everyone else.

In this example the function is defined with one parameter called numbers. When you call your function here you pass a single argument, in this case a list [4, 8, 15, 16, 23, 42].

This effectively assigns that object to the name numbers inside the function, equivalent to the following- numbers = lotto.

Each time you call that function with a different argument you assign something different to numbers inside the function (it is forgotten as soon as the function exits).

To be more explicit you can specify the parameter in the function call such that-

small = count_small(lotto)
# is equivalent to-
small = count(numbers=lotto)

numbers is a parameter. A parameter is the variable that is defined within the parenthesis of the function definition. You can name the parameters anything you want excluding keywords such as: def count(foo) or def count(n): In this case numbers is just a parameter that represents the list/dictionary that the variable n is checking. Hope this helps!