2015-03-05 2 views
1

В настоящее время я работаю над проектом, который действует как система бронирования авиабилетов. На данный момент у меня проблема с вычислением и отображением промежуточного итога, который был рассчитан внутри оператора if if else else if, если это имеет смысл.Печать промежуточного итога, когда значение определено внутри оператора if-elif-else? Ошибка имени ошибки [Python 2.7]

Например, мне нужно рассчитать промежуток времени на места и багаж. Ниже мой код:

user_people = int(raw_input("Welcome to Ramirez Airlines! How many people will be flying?")) 
user_seating = str(raw_input("Perfect! Now what type of seating would your party prefer?")) 
user_luggage = int(raw_input("Thanks. Now for your luggage, how many bags would you like to check in?")) 
user_frequent = str(raw_input("Got it. Is anyone in your party a frequent flyer with us?")) 
user_continue = str(raw_input("Your reservation was submitted successfully. Would you like to do another?")) 
luggage_total = user_luggage * 50 


import time 
print time.strftime("Date and time confirmation: %Y-%m-%d %H:%M:%S") 

if user_seating == 'economy': 
    seats_total = user_people * 916 
    print seats_total 

elif user_seating == 'business': 
    seats_total = user_people * 2650 
    print seats_total 

else: 
    print user_people * 5180 

print luggage_total 

print luggage_total + seats_total 

Как я уже говорил выше, я пытаюсь добавить общую цену на количество билетов на самолет защищены на основе того, какой класс пользователь выбрал (эконом, бизнес и первого класса) и общее необходимо указать количество требуемого багажа (х сумма & $ 50).

Это ошибка я получаю при выполнении приведенного выше кода:

Traceback (most recent call last): 
    File "C:/Users/Cory/Desktop/Project 1.py", line 26, in <module> 
    print luggage_total + seats_total 
NameError: name 'seats_total' is not defined 

Как я могу идти об определении seats_total за пределами операторов, если-Элиф-то еще?

Большое вам спасибо!

+0

Упс был ошибкой, извините. Это Python 2.7 – Lukon

ответ

2

Ну, ваша переменная seats_total будет определена только для user_seating == 'economy' или user_seating == 'business'. Для третьего случая такая переменная не определена. Чтобы определить «seat_total вне операторов if-elif-else», просто установите его на ноль, например, или какое-то значение по умолчанию.

+0

Эй, спасибо за ответ! Я понимаю, что вы только что сказали выше, но как бы я добавил, чтобы добавить seat_total в luggage_total, тогда в зависимости от того, какой случай пользователь выбрал для сидения? Все они находятся внутри операторов if-elif-else. – Lukon

+0

Значение по умолчанию, например. ноль, будут перезаписаны в операторах if. – Marcin

+0

Итак, вы говорите, что я могу просто объявить seat_total = 0, либо до, либо после операторов if, и это сработает? – Lukon