Форум сайта python.su
0
День Добрый! Подскажите плиз, как можно выполнить красивый вывод на экран результата программы.
Спасибо
import random class Train: def __init__(self): return self.trains() def trains(self): self.trains = [] train = dict.fromkeys(["number", "stations", "day", "price"], None) numbers = [1, 2, 3] days = [["Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье"], ["Вторник", "Суббота", "Понедельник"], ["Среда", "Четверг", "Пятница", "Воскресенье"] ] trips = [["Одесса", "Кишинев", "Харьков", "Киев", "Москва"], ["Днепропетровск", "Кривой рог", "Киев", "Харьков", "Одесса"], ["Харьков", "Киев", "Симферополь", "Москва"] ] prices = [[0, 50, 150, 200, 1000], [0, 50, 100, 150, 200], [0, 150, 200, 800] ] for x in range(len(numbers)): train = train.copy() train["number"] = numbers[x] train["stations"] = trips[x] train["price"] = prices[x] train["day"] = days[x] self.trains.append(train) class Passenger: def order(self, day, dest, from_st): zapros = dict.fromkeys(["day", "dest"], None) zapros["day"] = day zapros["dest"] = dest zapros["from_st"] = from_st return zapros def train(self, match): return random.choice(match) class Kassa: def zapros(self, zapros, train): match = [] for train in train.trains: if zapros["dest"] in train["stations"] and zapros["day"] in train["day"]: match.append(train) return match def price(self, zapros, vibor): new_price = dict.fromkeys(["amount"], 0) new_price["amount"] = vibor["price"][vibor["stations"].index(zapros["dest"])] \ - vibor["price"][vibor["stations"].index(zapros["from_st"])] return new_price kassir = Kassa() passenger = Passenger() train = Train() while True: user = input('1 Сделать запрос. 2 Выйти из системы: ') if user == "1": day = input("Введите день (Понедельник-Воскресенье): ") dest = input("Пункт назначения: ") from_st = input("Пункт отправки: ") zapros = {'day': day, 'dest': dest, 'from_st': from_st, } zapros = passenger.order(day, dest, from_st) if not zapros: print("Свободных билетов на поезда нет") else: match = kassir.zapros(zapros, train) vibor = passenger.train(match) new_price = kassir.price(zapros, vibor) print("\t\t\t Ваш поезд и маршрут :\n" + str(vibor)) print("\t\t\t Цена билета {}".format(new_price["amount"])) break elif user == "2": print("Good Bye!!!") break
Офлайн
294
VasiliyArmavirкрасивый понятие субьективное, но есть пару правил.
как можно выполнить красивый вывод на экран результата программы.
VasiliyArmavirсделайте чтоб выглядело както так:
Сейчас вывод выглядит как-то так:
Что вы хотите:
1. Сделать запрос
2. Выйти из системы
Введите номер пункта: 1
Выберите день:
1. Понедельник
2. Вторник
3. Среда
4. Четверг
5. Пятница
б. Суббота
7. Воскресенье
Введите номер пункта: 1
Пункт назначения: Москва
Пункт отправки: Харьков
Ваш поезд:
Номер: 1
Маршрут: Одесса-Москва
Остановки: Одесса -> Кишинев -> Харьков -> Киев -> Москва
Цена билета, (руб.): 850
[code python][/code]
Отредактировано PEHDOM (Окт. 30, 2018 12:58:28)
Офлайн
221
print("\t\t\t Ваш поезд и маршрут :\n" + str(vibor))
Офлайн
0
Спасибо, буду пробовать
Офлайн