2013-09-10 4 views
-2

Я делаю проект в академии кода, и мне нужно сделать программу, которая суммирует всю стоимость отпуска (например, путешествие, город и т. Д.). Я не уверен, что случилось с моим кодом.Программа отпускных цен Python

def hotel_cost(nights): 
    return nights * 140 

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

def trip_cost(city,days): 
    city = plane_ride(city) 
    days = rental_car_(days) + hotel_cost(nights) 
    return total_cost(city + days) 

Кроме того, любые советы о том, как сделать мой код менее избыточным и чистым.

+2

Что он не делает, что он должен делать, или делать это не должен? –

+0

Ну, это вызывает немедленный 'IndentationError'. Если я исправлю это, он определит кучу функций, которые он никогда не вызывает, и ничего не делает. Итак, если он предназначен для того, чтобы ничего не делать, исправьте отступ; в противном случае вам нужно что-то делать где-то. – abarnert

+0

oh извините, он должен добавить общую стоимость общей стоимости hotal_cost и plane_ride и rent_car_cost –

ответ

1

Ваш trip_cost испорчен. Он никогда не вычисляет total_cost и пытается вызвать несуществующую функцию. Вот моя догадка о том, что вы имели в виду:

def trip_cost(city, days): 
    nights = days - 1 
    total_cost = plane_ride_cost(city) + rental_car_cost(days) + hotel_cost(nights) 
    return total_cost 
+1

Это определенно _a_ большая проблема с кодом. Учитывая неполную программу и никаких объяснений, трудно сказать, что это проблема, с которой он пришел сюда, но ... доблестная догадка, по крайней мере. – abarnert

+0

Да, все работает якобы в кодекадемии. единственная проблема - когда я пытаюсь добавить все цены вверх. поэтому в основном def trip_cost (город, дни) и вниз. это вопрос моего кода –

+0

Спасибо, рекурсивный, Night = days -1. не работал, потому что в основном сказал, что если вы останетесь на 0 дней, вы не можете оставаться отрицательными ночами. поэтому я сделал ночь = дни. и он работает, поэтому спасибо и всем, кто помог –

0

Простите, что это поздно, это предназначено для тех, кому понадобится помощь в будущем.

Право сценарий Codeacademy, скорее всего, ищет выглядит следующим образом:

def trip_cost(city,days): 
     totalcost=plane_ride_coast(city)+rental_car_cost(days)+hotel_cost(days) 
     return totalcost 

Codeacademy предполагает, что # дней автомобиль был арендован (rental_car_cost) равно # ночей, которые были остались (hotel_costs), из-за этого нужны были только два параметра (город, дни), а не третий (ночей).

Надеюсь, это помогло.

Смежные вопросы