Не работает меню (реализация match case) в Jupyter

Колллеги, добрый день! Есть задача, необходимо реализовать одну мини-программку. У меня вопрос, почему при запуске данного скрипта у меня в браузере jupyter notebook я не могу получить возомжность вводить последовательно необходимые команды. Сама программа работает, в PyCharm если запускать тоже все отрабатывается, а вот браузерной версии блокнот не работает - просто бесконечный цикл, страница не отвечает и потом просто ее надо закрывать...?


documents = [{'type': 'passport', 'number': '2207 876234', 'name': 'Василий Гупкин'},
             {'type': 'invoice', 'number': '11-2', 'name': 'Геннадий Покемонов'},
             {'type': 'insurance', 'number': '10006', 'name': 'Аристарх Павлов'}]
 
directories = {'1': ['2207 876234', '11-2'], '2': ['10006'], '3': []}
 
# start at the PyCharm or CMD! DON'T EXECUTE IN NOTEBOOKS IN JUPYTER
 
def menus():
    while True:
        choice = input('Введите команду: ')
        match choice:
            case 'q':
                break
            case 'p':
                number = input('Введите номер документа: ')
                for document in documents:
                    if document['number'] == number:
                        print(f'Владелец документа: {document["name"]}')
                        break
                print('Пользователь не найден')
            case 's':
                number = input('Введите номер документа: ')
                for key, value in directories.items():
                    if value == number:
                        print(f'Документ хранится на полке: {key}')
                        break
                print('Документ не найден')
            case 'i':
                for document in documents:
                    print(
                        f'№{document["number"]}, '
                        f'тип: {document["type"]}, '
                        f'владелец: {document["name"]}, '
                        f'полка хранения: '
                        f'{"".join([p for p in directories.keys() if document["number"] in directories[p]])}')
            case 'ads':
                p = input('Введите номер полки: ')
                if p not in directories.keys():
                    directories[p] = []
                    print(f'Полка добавлена. '
                          f'Текущий перечень полок: {", ".join([p for p in directories.keys()])}')
                else:
                    print(
                        f'Такая полка уже существует. '
                        f'Текущий перечень полок: {", ".join([p for p in directories.keys()])}')
            case 'ds':
                p = input('Введите номер полки: ')
                if p in directories.keys():
                    if len(directories[p]) == 0:
                        del directories[p]
                        print(
                            f'Полка удалена. '
                            f'Текущий перечень полок: {", ".join([p for p in directories.keys()])}')
                    else:
                        print(
                            f'На полке есть документ/ы, очистите полку перед удалением. '
                            f'Текущий перечень полок: {", ".join([p for p in directories.keys()])}')
                else:
                    print(
                        f'Такой полки не существует. Текущий перечень полок: {", ".join([p for p in directories.keys()])}')

Ответы (0 шт):