# "Hey You Never Know" wondering about something (no code error)

#1

Hi. I have no problems with my code, but I am wondering why this happens.

When I set this code in (which is correct), everything is fine.

``````def hotel_cost(nights):
return 140*nights

def plane_ride_cost(city):

if city=="Charlotte":
return 183
elif city=="Tampa":
return 220
elif city=="Pittsburgh":
return 222
elif city=="Los Angeles":
return 475

def rental_car_cost(days):
cost=40*days
if days >= 7:
cost -=50
elif days >=3:
cost -=20
else:
return cost

def rental_car_cost(days):
cost=days*40
if days >= 7:
cost -=50
return cost
elif days >=3:
cost -=20
return cost
else:
return cost

def trip_cost(city,days,spending_money):
sum=rental_car_cost(days)+hotel_cost(days)+plane_ride_cost(city)+spending_money
return sum``````

When I add this code here:

``````def trip_cost(city,days,spending_money):
sum=rental_car_cost(days)+hotel_cost(days)+plane_ride_cost(city)
return sum``````

It doesn't work.

The error is:
trip_cost('Pittsburgh', 1, 58) returned 402 instead of the correct value 460

The only difference between code 1 and code 2 is I got rid of "+spending_money" at the end.
Why does the first one work and not the second. I didn't even mention "spending_money" anywhere before in the code. How does the system know to add money when there isn't even a number or a variable connected with "spending_money"?
This has been puzzling me for a while.

#2

you can pass spending_money as argument when calling the function:

``print trip_cost('Pittsburgh', 1, 58)``

the exercise makes a few function calls to test your function is correct, spending money is part of this.

#3

Ok. thank you. It cleared up my wonderings.