+ 2

Izzy the iguana issue

The test case no.4 keeps failing. Can anyone please, find where the mistake could be? Thank you! snacks = input().split(' ') points = 0 for i in snacks: if 'Lettuce' in snacks: points += 5 if 'Carrot' in snacks: points += 4 if 'Mango' in snacks: points += 9 if points >= 10: print('Come on Down!') else: print('Time to wait')

28th May 2022, 7:34 AM
Atalantos
3 Respostas
+ 6
I can't read the izzy the iguana question (no pro), but your for loop makes no sense: Can you try it like this: snacks = input().split(' ') points = 0 for i in snacks: if i == 'Lettuce': points += 5 if i == 'Carrot': points += 4 if i == 'Mango': points += 9 if points >= 10: print('Come on Down!') else: print('Time to wait')
28th May 2022, 9:07 AM
Paul
Paul - avatar
+ 2
Atalantos the reason is that yours is checking if the snack is in the list. Hence, your test case will fail if there are duplicate snacks in the input. Paul's solution checks if the list item is the snack and adds points accordingly. Here's how using dictionary makes the code simpler: snacks = {"Mango": 9, "Lettuce": 5, "Carrot": 4} points = 0 inv = input().split() #get function to retrieve the value of the snack in the inventory from the dictionary. If the snack is not inside the dictionary, the second argument in the get function returns a 0, adding no points. for x in inv: points += int(snacks.get(x, 0)) if points >= 10: print("Come on Down!") else: print("Time to wait")
27th Sep 2022, 12:44 PM
Eugene Teh
Eugene Teh - avatar
+ 1
Yup, that was it. Thank you very much Paul!
28th May 2022, 9:16 AM
Atalantos