unsupported operand type(s) for +: 'int' and 'NoneType'

Question:

This code is supposed to return the total cost for a trip to different cities

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 = days*40
    if days>=7:
        cost = cost - 50
    elif days>=3:
        cost = cost - 20
    return cost

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

print trip_cost("Los_Angeles",5,600)

It is running fine if i dont call the function plane_ride_cost but if I do it is showing the following error:

Traceback (most recent call last):
File "python", line 25, in <module>
File "python", line 23, in trip_cost
TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'  
Asked By: Sairam Saladi

||

Answers:

You have a typo

"Los_Angeles" != "Los Angeles"

But more importantly you don’t have an else case to handle the situation where they enter a city that is not in your list

Answered By: Cory Kramer
Categories: questions Tags:
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.