Добавляйте счетчик в python каждый раз, когда записывается имя, оно увеличивается на 1

Я хотел бы, чтобы номер покупателя менялся каждый раз, когда появляется новый покупатель

total = 200  # Assigns 200 tickets to variable total
sold = 0  # Assigns 0 tickets to variable sold
count = 0
while sold < total:  # Runs while loop as long as tickets sold is less than total tickets
    remaining = total - sold  # Assigns total - sold to variable remaining
    if sold == 0:  # If tickets are equal to 0
        print("Welcome to Movies4Us!")  # Prints "Welcome to Movies4Us!" if condition above is satisfied
    else:
        print('You are buyer NO.', count + 1, "." "The number of remaining tickets is now", remaining, ".")  # Prints user's number and remaining amount of tickets
    name = input('What is your name?: ')
    tickets = input("How many tickets would you like to purchase?: ")  # Asks user to enter desired amount of tickets to purchase
    try:
        tickets = int(tickets)  # Converts variable tickets to integer type
        if tickets > remaining:  # If user enters more tickets than remaining tickets available
            print("Sorry, there aren't that many tickets available.")  # Prints no more tickets available
        else:
            sold += tickets  # Updates value of variable sold into tickets
            print("You have purchased", tickets, "tickets, Enjoy the movie", name, '!')  # Prints the amount of tickets the user purchased
    except ValueError:  # If user inputs anything except for an integer
        print("Invalid input. Please enter a number.")  # Prints invalid input and asks user to input again
        continue  # Ends current loop and runs the while loop again

print ("There are no more tickets available.")  # If number of tickets reached 0, program ends

Пробовал добавлять count = 0 и count + 1

count+1 => count+=1
Shuo 13.04.2023 05:05
count + 1 — это выражение, которое оценивает count, а затем добавляет 1 к значению. count = count + 1 будет оценивать это выражение (справа), а затем использовать оператор =, чтобы присвоить это вычисленное значение переменной слева, count, тем самым изменив его старое значение на старое значение плюс один. Такого рода обновление переменной — обычное дело, и повторение нежелательно, поэтому есть специальный оператор +=, который прибавляет к значению в переменной. count += 1 означает «добавить 1 к значению в count» и дает тот же результат, что и count = count + 1, но более лаконичный.
steveha 13.04.2023 05:14
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
66
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы уже инициализировали счетчик: count = 0. Вам просто нужно увеличивать его внутри цикла всякий раз, когда совершается действующая покупка билета.

Добавьте count += 1 внутри блока else, где покупка действительного билета осуществляется по заявлению sold += tickets. Это будет увеличивать счетчик всякий раз, когда происходит успешная покупка.

Если вы хотите обновить значение count, самый простой и понятный способ — обновить его в строке перед оператором печати. В качестве альтернативы вы можете обновить другую часть кода, где вы обновляете значение sold.

if sold == 0:  # If tickets are equal to 0
        print("Welcome to Movies4Us!")  # Prints "Welcome to Movies4Us!" if condition above is satisfied
    else:
        count += 1
        print(f"You are buyer NO.{count}.", end = " ") # Use string interpolation
        print(f"The number of remaining tickets is now {remaining}.")  # Prints user's number and remaining amount of tickets

Я также обновил это, чтобы использовать f-строки для форматирования, иначе у вас возникнет проблема с наличием лишнего пробела между значением count и следующим «.».

Если вы действительно не хотите иметь отдельную строку для count+=1, можно обновить счетчик, встроенный в оператор печати, но только если вы не используете f-строки и если вы используете оператор :=, потому что аргументы для оператор печати должен быть выражением, поэтому обычное присваивание было бы синтаксической ошибкой:

print('You are buyer NO.', count := count +1, ". The number of remaining tickets is now", remaining, ".")  # Prints user's number and remaining amount of tickets

Другие вопросы по теме