Продолжайте получать ошибки и не можете достичь результата - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь добиться этого вывода, но у меня есть ошибки. Я запускаю свои коды, но получил ошибки. Я пытаюсь сделать это:

Позвонить следующему клиенту.

  1. Показать, что в очереди ожидания нет клиентов, если очередь ожидания пуста
  2. В противном случае отобразить номер очереди клиента в очереди ожидания
  3. Если клиент отвечает на вызов, он удаляется из очереди ожидания и помещается в другую очередь «обслуживаемых клиентов», чтобы указать, что клиент получил свою еду
  4. Показать сообщение, указывающее, что клиент обслуживается

Ожидаемый результат:

Пожалуйста, выберите: 1

Могу ли я иметь ваше имя: Fad

Ошибки, которые я получаю при запуске:

TypeError
Traceback (most recent call last)
<ipython-input-16-85165eb1f15c> in <module>
     44     choice = int(input("Please choose:"))
     45     if choice == 1:
---> 46         register(wait_que, que_num)
     47         que_num += 1 # queue number will be incremented by 1. so if 100, then after that is 101
     48     elif choice == 2:
<ipython-input-16-85165eb1f15c> in register(queue, qnum)
     15 def register(queue, qnum):
     16     name = input("May I have your name ")
---> 17     queue.append[qnum, name, 0]
     18
     19     pass
TypeError: 'builtin_function_or_method' object is not subscriptable**

Мой код:

import random
from collections import deque
from time import sleep

print("Menu")
print("1. Register a customer")
print("2. Call next customer")
print("3. List customers in queue")
print("4. Exit")

def menu():
    pass

def register(queue, que_num):
    name = input("May I have your name ")
    queue.append[que_num, name, 0]
    pass

def call_next():
    if queue.empty:
        print("No customer in waiting queue")
    else:
        return 0
    pass

def list_cust():
    pass

wait_que = deque([]) # assign nothing to it
que_num = random.randint(1,5)*100
choice = ''

while choice != 0:
    menu() # print menu
    choice = int(input("Please choose:"))
    if choice == 1:
        register(wait_que, que_num)
        que_num += 1 # queue number will be incremented by 1. so if 100, then after that is 101
    elif choice == 2:
        call_next()
    elif choice == 3:
        list_cust()
    elif choice == 0:
        print("End of program")

    else:
        print("Invalid option...")

1 Ответ

0 голосов
/ 05 февраля 2020

append - это метод для списков в python. В связи с этим вам необходимо использовать скобки, чтобы использовать эту функциональность.

Изменить

def register(queue, que_num):
             name = input("May i have your name ")
             queue.append[que_num, name, 0]

на:

def register(queue, que_num):
    name = input('May i have your name ')
    queue.append([que_num, name, 0])
...