# creating menu
def menu():
print("What do you want to do:")
print("1)Push")
print("2)Pop")
print("3)Display")
print("4)Quit")
choice = int(input("Make a selection: "))
return choice
# creating a queue with a list
def create_queue():
# creating a queue
queue = []
while menu() > 0 & menu() < 5:
if menu() == 1:
print("You choose: Push")
num_input = int(input("How many items do you want to enter: "))
for i in range(num_input):
queue.append(input("Enter items: "))
elif menu() == 2:
print("You choose: Pop")
# making sure queue is not empty
if len(queue) == 0:
print("Empty, nothing to get rid of.")
return
else:
print("Popping item out")
queue.pop(0)
elif menu() == 3:
print("You choose: Display")
print(queue)
elif menu() == 4:
print("You chose: Quit")
return
else:
print("Not a choice")
return
create_queue()
Это мой код выше, каждый раз, когда я его запускаю, он будет спрашивать, что я хочу сделать, это то, что я имею в виду, когда он продолжает повторяться:
Что вы хотите сделать: 1)Нажать 2)Вытолкнуть 3)Отобразить 4)Выйти Сделайте выбор: 1 Что вы хотите сделать: 1)Нажать 2)Вскрыть 3)Отобразить 4)Выйти Сделать выбор: 1 Что делать что вы хотите сделать: 1)Нажать 2)Всплеск 3)Отобразить 4)Выйти Сделайте выбор: 1 Вы выбираете: Нажать Сколько элементов вы хотите ввести:
Я попытался поместить выбор пользователя в цикл, но он просто застрял бы в одном выборе, а не в цикле.
Я просто хочу, чтобы он спросил один раз, а затем снова зациклился. Где я ошибся и что я могу изменить, чтобы исправить это?
1 ответ
В вашем коде вы вызываете функцию «menu()» несколько раз.
while menu() > 0 & menu() < 5:
if menu() == 1:
Сохраните его в переменной:
choice = None
while choice > 0 and choice < 5:
choice = menu()
if choice == 1:
# Etc.
Надеюсь, это решит вашу проблему!
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.
while menu() > 0 & menu() < 5:
определенно не делает то, что вы думаете, может быть,choice = menu()
, а затемwhile choice > 0 & choice < 5:
??if menu() == 1
необходимо снова вызватьmenu
, он не будет использовать возврат предыдущего вызова. Нет никакой причины, потому что функцию нельзя вызывать более одного раза, и вы никогда не просили программу сохранить значение предыдущего вызова.