Hotel_cost(0) returned None instead of correct value 0


#1



taking a vacation, pulling it all together


oops, try again. hotel_cost(0) returned None instead of correct value 0


when working up to this point, the code for hotel_cost worked and now it's not. doesn't make any sense.
i have even tried not to have the sum = line, just the return "plane..., hotel..., car...'

getting frustrated

def hotel_cost(nights):
    if nights > 0:
        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
    else:
        return "You don't want to go there."
        
def rental_car_cost(days):
    if days >= 7:
        return days * 40 - 50
    elif 3 <= days < 7:
        return days * 40 - 20
    else:
        return days * 40
        
def trip_cost(city, days):
    sum = plane_ride_cost(city) + rental_car_cost(days) + hotel_cost(days)
    return sum



#2

this line is a problem:

elif 3 <= days < 7:

not sure what zou are doing here. If you want to do multiply comparisons, you should use the and or or operator. but you don't have to, you could checks if the days are more then 3 (currently, it checks if it is less then 3 days) and then return the right number with 20 discount


#3

if you look at that again it says-

'3' is 'less than or equal to' the amount of 'days' that is 'less than 7'
unless my understanding of logic is that far off

i can understand the and,
elif days >= 3 and days < 7
True and True, which is what the answer needs for the proper discount
yes that makes sense
but not an or
elif days >= 3 or days < 7
this could then give me a True/False or False/True, maybe then giving someone the wrong or additional discount

yet the error that i'm getting has nothing to do with the amount of days that i'm renting a car.
it has to do with the hotel cost.


#4

you should use the and keyword, but you seem to understand that logic

uhm... zero isn't greater then 0, so nothing gets returned


#5

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