+ 4

Ballpark order challenge

I have been trying to solve Code Coach "Ballpark order challenge" which can be viewed at this link-- https://www.sololearn.com/coach/15?ref=app I have written a solution which fails all three hidden tests but gives desired output for the first two. I am unable to find the bug in my code. Can you please help me?? Here is my code-- menu = { "Nachos":6, "Pizza" :6, "Cheeseburger":10, "Water":4, "Coke":5 } order = input().split(" ") price = 0 for item in order: price += menu.get(item,5) #final price is price of all items ordered + tax final_price = price * 1.07 print (final_price)

26th Dec 2020, 11:38 AM
CHANDAN ROY
CHANDAN ROY - avatar
14 Réponses
+ 2
CHANDAN ROY Solved --------- menu = { "Nachos":6.00, "Pizza" :6.00, "Cheeseburger":10.00, "Water":4.00, "Coke":5.00 } order = input().split(" ") price = 0.00 for item in order: if item in menu: price += menu[item] else: price += menu['Coke'] #print (price) #final price is price of all items ordered + tax final_price = price + (price * 7) / 100 print (final_price) --------- Read this task again: "Determine the total cost of ordering four items from the concession stand. If one of your friend’s orders something that isn't on the menu, you will order a Coke for them instead."
26th Dec 2020, 12:38 PM
A͢J
A͢J - avatar
+ 5
CHANDAN ROY menu.get will also work. You can try. But in case of price * 1.07 you may get 10.0000003 or something else.
26th Dec 2020, 1:00 PM
A͢J
A͢J - avatar
+ 2
I Am Groot ! Sir, can you elaborate your last point a bit ?? Why is final_price = price *1.07 different from final_price = price *107/100
26th Dec 2020, 1:05 PM
CHANDAN ROY
CHANDAN ROY - avatar
+ 2
CHANDAN ROY I don't know the actual reason but when I tried with dummy value then I got something like that.
26th Dec 2020, 1:51 PM
A͢J
A͢J - avatar
+ 1
I Am Groot ! Sir, I just found out the mistake I was making. when I put final_price = price *1.07 #it fails the test but when I change final_price to final_price = price *107/100 or the way you have written it. it works. can you explain why it happens???
26th Dec 2020, 12:59 PM
CHANDAN ROY
CHANDAN ROY - avatar
+ 1
A short explanation: Its about how floats are stored by programming languages (binary), which cause to sometimes give funny results like 17.1000000000000000001. To work around it, you can use up the round() function, whereas first argument is the number or operation, and the second one, the number of decimals (by default is 0)
31st May 2022, 4:53 AM
Maximiliano Gabriel Navarro
Maximiliano Gabriel Navarro - avatar
+ 1
My code: x = input().split(" ") menu = {"Pizza"} sum = 0 for i in x: if i=="Pizza": sum +=6 elif i=="Nachos": sum +=6 elif i=="Cheeseburger": sum+=10 elif i=="Water": sum+=4 else: sum+=5 fsum = sum + (sum*7)/100 print (fsum)
26th Jan 2023, 2:41 PM
Amirmohammad Rabiee
Amirmohammad Rabiee - avatar
0
Abol Do you suggest the following changes in for loop?? for item in order: if item in menu: price+= menu[item] else: price+=4 I tried this and it produced the same result. It passes first two tests but fails the rest hidden ones. I don't think using different methods of same type can solve an issue. There is some error in my code. Help me trace that brother so that I can find peace 😄
26th Dec 2020, 11:56 AM
CHANDAN ROY
CHANDAN ROY - avatar
0
Abol question is in the link given. Click on this click and you will get the question. https://www.sololearn.com/coach/15?ref=app
26th Dec 2020, 11:57 AM
CHANDAN ROY
CHANDAN ROY - avatar
0
I Am Groot ! JOY Sir help
26th Dec 2020, 12:00 PM
CHANDAN ROY
CHANDAN ROY - avatar