Не работает меню (реализация 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()])}')