How can I fix this code and why would it not work?


Hey, I am doing this section and when I enter in my code, I get "None" however Codecademy tells me "Oops, try again. trip_cost should take exactly 2 arguments!"

Should it not just let it work if it does? I can't think of any other arguements!

def hotel_cost(nights):
    return nights * 140
def plane_ride_cost(city):
    if city == "Tampa":
        return 220
    elif city == "Charlotte":
        return 183
    elif city == "Pittsburgh":
        return 222
    elif city == "Los Angeles":
        return 475
def rental_car_cost(days):
    total = days * 40
    if days >= 7:
        total -= 50
    elif days >= 3:
        total -= 20
    return total
def trip_cost():
    return hotel_cost(nights) + plane_ride_cost(city) + rental_car_cost(days)


well currently your trip_cost has zero parameters:

def trip_cost():

it should have two parameters:

def trip_cost(parameter1, parameter2):

look in the instructions for what the parameters should be


Have you tried using raw_input so the program knows what the parameters are?

I did the following:

def hotel_cost(nights):
return 140 * int(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):
fee = 40 * int(days)
if int(days) >= 7:
fee -= 50
elif int(days) >= 3 and int(days) < 7:
fee -= 20
return fee
nights = raw_input('How many nights are you going to sleep in hotels? :')
city = raw_input('Which city do you want to visit? :')
days = raw_input('How many days do you need a car? :')
print hotel_cost(nights) + plane_ride_cost(city) + rental_car_cost(days)

I used the int() function so the calculations would come out right, else the values were just taken as strings and everything would be messed up


why don't cast the input directly:

nights = int(raw_input('How many nights are you going to sleep in hotels? :'))

saves a lot of conversions. You don't have to use raw_input, you can also provide the arguments when calling the function.


This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.