# Help understanding functions. Code not working, Vacation Altogether Now with inputs

#1

Hi there,

I am still trying to wrap my head around functions. I am trying to include get my code to accept input to use in functions and then print the total cost

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

def plane_ride_cost(city):
if city.lower() == "charlotte":
return 183
elif city.lower() == "tampa":
return 220
elif city.lower() == "pittsburgh":
return 222
elif city.lower() == "los angeles":
return 475

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

def trip_cost(city, days, nights, money):
return rental_car_cost(days) + hotel_cost(nights) + plane_ride_cost(city) + spending_money

hotel = int(raw_input("How many nights in the hotel? "))
plane = raw_input('Charlotte, Tampa, Pittsburgh or Los Angeles? ')
rental = int(raw_input("How many days driving? "))
spending_money = int(raw_input("How much spending money? "))
print trip_cost(rental_car_cost(rental) + hotel_cost(hotel) + plane_ride_cost(plane) + spending_money)``````

the error i get is:

Traceback (most recent call last):
File "C:/Users/Celeste/PycharmProjects/Codeacademy 5 Vacation/5. VacationAlltogetherSpendingMoney.py", line 31, in
print trip_cost(rental_car_cost(rental) + hotel_cost(hotel) + plane_ride_cost(plane) + spending_money)
TypeError: trip_cost() takes exactly 4 arguments (1 given)

Process finished with exit code 1

Any advice would be greatly appreciated, I am very new to coding and python and have never posted on a forum before but I am so confused at the moment

#2

From what I can see, everything looks okay except for your trip_cost function. The parameters of a function (things that are in parenthesis) are like variables that can be used in the function and are assigned a value of whatever you pass to them. The issue with your code is that your parameters are city, days, nights, money. This is fine, but you use spending_money as a variable within the function, which is not defined anywhere. Try changing the money variable to spending_money and it should work a lot better.

#3

what is wrong in my code...

def rental_car_cost(days):
return 140*night
def plane_ride_cost(city):
if input(city) =='Charlotte':
return "183"
elif input(city)=='Tampa':
return "220"
elif input(city) =='Pittsburgh':
return "222"
else:
return "475"

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