+ 2

Python Data Structures - Ticket Office

My code looks right to me, but my answers are a little off. Where is the mistake in my code? Task: You are analyzing sales data from a ticket office. The ticket for an adult is $20, while the ticket for a child under 18 is $5. The data you are given is in a dictionary format, where the keys are the sold ticket numbers, and the values are the customer ages. For example, "123-08": 24 means that the ticket was bought a 24 year old. Your goal is to calculate how much more money the office would make if it would change the ticket discount age to the given input. So, your program needs to take an integer as input and output the percentage of revenue growth, if the discount was given to people under that age. For example, if the office made $15000 with the original discount age, and would make $18000 with 14 as the discount age, then the growth would be ((18000-15000)/15000)*100 = 20% So, for the input 14, your program should output 20. The output should be an integer (use int() to convert the result). My solution: https://code.sololearn.com/cA17A5A11384

26th Jun 2021, 5:40 PM
Sid
Sid - avatar
6 odpowiedzi
+ 1
you have to be keen on your declarations. new is set to 0 and old is set to 530 accord g to the question. then use for loop and the rest will work out age = int(input()) # your code goes here new = 0 old = 530 for var in data.values(): if var < age: new += 5 else: new += 20 if age < 18: print(int((new - old) / old * 100)) else: print(0)
26th Jun 2021, 6:32 PM
Allan 🔥STORMER🔥🔥🔥🔥
Allan 🔥STORMER🔥🔥🔥🔥 - avatar
+ 1
@Jayakrishna🇮🇳 The change to int(change) didn't work. The answer is close but off. For test case 1, if the input is 16, the output should be 5. I got 6. For test case 2, if the input is 10, the output should be 31. I got 34.
28th Jun 2021, 8:39 PM
Sid
Sid - avatar
0
Code is truncated.. save in playground and share link here .. https://www.sololearn.com/post/75089/?ref=app edit: Sid thank for edit. looks fine. try again by just editing last line to : (convert to int) print(int(change))
26th Jun 2021, 6:04 PM
Jayakrishna 🇮🇳
0
Sid yes. As @Angela pointed , you are using 25 instead of 20 for adult. So that may be problem ...
29th Jun 2021, 12:34 PM
Jayakrishna 🇮🇳
0
data = { "100-90": 25, "42-01": 48, "55-09": 12, "128-64": 71, "002-22": 18, "321-54": 19, "097-32": 33, "065-135": 64, "99-043": 80, "111-99": 11, "123-019": 5, "109-890": 72, "132-123": 27, "32-908": 27, "008-09": 25, "055-967": 35, "897-99": 44, "890-98": 56, "344-32": 65, "43-955": 59, "001-233": 9, "089-111": 15, "090-090": 17, "56-777": 23, "44-909": 27, "13-111": 21, "87-432": 15, "87-433": 14, "87-434": 23, "87-435": 11, "87-436": 12, "87-437": 16, "94-121": 15, "94-122": 35, "80-089": 10, "87-456": 8, "87-430": 40 } age = int(input()) main = 0 new = 0 for original in data.values(): if original >= 18: main += 20 else: main += 5 main_total = main for change in data.values(): if change >= age: new += 20 else: new += 5 new_total = new Growth = (new_total - main_total) / main_total * 100 print(int(Growth))
19th Nov 2022, 12:35 AM
Mohamed Gomaa Soliman
- 1
You are calculating with 25 for an adult, but should be 20!!! then it works fine.
29th Jun 2021, 7:58 AM
Angela
Angela - avatar