Попытка вычесть значения из исходных значений - PullRequest
0 голосов
/ 01 мая 2018

поэтому я написал небольшую программу ниже. Это работает хорошо, за исключением одной части, которую я не могу заставить ее работать. Я пытаюсь вычесть открытые места из первоначального значения 10 или 4 каждый раз, когда один или несколько берут / заказывают. Но я не вижу возможности сделать это. Кроме этого мой код, кажется, работает хорошо для меня. Не могли бы вы просмотреть мой код и помочь мне улучшить. Спасибо.

Например, я хотел бы, чтобы количество мест в общих местах вычиталось каждый раз, когда пользователь вводит количество необходимых мест. если им нужно 2 места, это должно быть 10 - 2, или если им нужны сиденья на полу, это должно быть 4 - 2

def ticket_check(section, seats):

    sections = "general \n floor"

    general_seats = 10

    floor_seats = 4

    total_seats = general_seats + floor_seats

    print ("Available sections:",sections)

    section = input("Chose a section (G or F): ").capitalize()

    if general_seats > 0 or floor_seats > 0:
        if section == "G":
            print ("Available seats", general_seats)

            if general_seats > 0:

                general_seat_order = int(input("Choose no. of seats: "))

                general_seats = general_seats - general_seat_order

                print ("Your seat order has been confirmed")

            else:
                print ("Sorry, no more general seats available")

        elif section == "F":
            print ("Available seats",floor_seats)

            if floor_seats > 0:

                floor_seat_order = int(input("Choose no. of seats: "))

                floor_seats = floor_seats - floor_seat_order

                print ("Your seat order has been confirmed")

            else:
                print ("Sorry, No more floor seats available")

        else:
            print ("Sorry, Section not available")

    else:
        print ("Pre-sale seats are sold out")


ticket_check("general \n floor", 14)

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Похоже, что этот метод является частью более крупного приложения. Если это так, general_seats, вероятно, не следует сбрасывать на 10 каждый раз. Вместо этого, число открытых мест (я думаю, genetal_seats) должно передаваться как переменная, чтобы ее можно было изменить, а затем вернуть. В зависимости от других факторов, он может быть установлен как глобальная переменная, но это, как правило, не лучшая практика. Я надеюсь, что это то, что вы искали. Дайте мне знать, если я неправильно понял.

РЕДАКТИРОВАТЬ ПОСЛЕ РАЗЪЯСНЕНИЯ: Если они установлены как глобальные переменные, general_seats = 10 и floor_seats = 4 могут быть удалены из функции. Каждый раз, когда функция запускается, эти две строки сбрасывают переменные на 10 и 4 соответственно.

0 голосов
/ 01 мая 2018

Каждый раз, когда вы вызываете ticket_check, вы создаете новую переменную general_seats со значением 10. Вам нужно переместить переменную за пределы вызова функции, чтобы она сохранялась между вызовами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...