|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
31.10.2024, 18:27 | #1 |
Пользователь
Регистрация: 31.05.2023
Сообщений: 23
|
Программирование на Python
Здравствуйте, помогите пожалуйста найти ошибки в коде не проходит тесты. Заранее благодарен.
Удаляем заказ От менеджеров поступило требование написать функционал, который позволяет очищать заказ. Для этого нужно разработать функцию delete_order, которая имеет следующие параметры обязательный ключевой параметр number_table - номер стола, где будем очищать заказ необязательный ключевой параметр delete_all со значением по умолчанию False. Если передать в него True, должна очищаться полностью информация о заказе для указанного столика. При значении False удаление в заказе будет точечным по категориям произвольное количество ключевых параметров с булевым значением вида drink=True, desert=True, call=True, шаурма=True Среди этих значений вам нужно удалять из заказа только те, имена которых находятся в списке категорий и переданное значение равно True Для успешного решения задания вам необходимо определить новую функцию delete_order и продублировать ранее созданные reserve_table и make_order со всеми их зависимостями. Не забывайте про кнопку «Запустить код» для проверки работоспособности программы перед отправкой. Sample Input 1: tables = { 1: {'name': 'Andrey', 'is_vip': True, 'order': {}}, 2: None, 3: None, 4: None, 5: {'name': 'Vasiliy', 'is_vip': False, 'order': {}}, } make_order(1, soup='Borsh') make_order(1, soup='Лапша', bring='Салфетку', meal='Манка') reserve_table(2, 'Vlad') make_order(2, soup='Чечевичный', salad='Цезарь', breakfast='Яичница') make_order(2, drink='Raf', main_dish='Утка по-пекински') make_order(2, desert='Трюфель', call='такси') print(tables) delete_order(number_table=2, delete_all=True) print(tables) Sample Output 1: {1: {'name': 'Andrey', 'is_vip': True, 'order': {'soup': 'Лапша'}}, 2: {'name': 'Vlad', 'is_vip': False, 'order': {'soup': 'Чечевичный', 'salad': 'Цезарь', 'drink': 'Raf', 'main_dish': 'Утка по-пекински', 'desert': 'Трюфель'}}, 3: None, 4: None, 5: {'name': 'Vasiliy', 'is_vip': False, 'order': {}}} {1: {'name': 'Andrey', 'is_vip': True, 'order': {'soup': 'Лапша'}}, 2: {'name': 'Vlad', 'is_vip': False, 'order': {}}, 3: None, 4: None, 5: {'name': 'Vasiliy', 'is_vip': False, 'order': {}}} Failed test #1 of 4. Wrong answer This is a sample test from the problem statement! Test input: tables = { 1: {'name': 'Andrey', 'is_vip': True, 'order': {}}, 2: None, 3: None, 4: None, 5: {'name': 'Vasiliy', 'is_vip': False, 'order': {}}, } make_order(1, soup='Borsh') make_order(1, soup='Лапша', bring='Салфетку', meal='Манка') reserve_table(2, 'Vlad') make_order(2, soup='Чечевичный', salad='Цезарь', breakfast='Яичница') make_order(2, drink='Raf', main_dish='Утка по-пекински') make_order(2, desert='Трюфель', call='такси') print(tables) delete_order(number_table=2, delete_all=True) print(tables) Correct output: {1: {'name': 'Andrey', 'is_vip': True, 'order': {'soup': 'Лапша'}}, 2: {'name': 'Vlad', 'is_vip': False, 'order': {'soup': 'Чечевичный', 'salad': 'Цезарь', 'drink': 'Raf', 'main_dish': 'Утка по-пекински', 'desert': 'Трюфель'}}, 3: None, 4: None, 5: {'name': 'Vasiliy', 'is_vip': False, 'order': {}}} {1: {'name': 'Andrey', 'is_vip': True, 'order': {'soup': 'Лапша'}}, 2: {'name': 'Vlad', 'is_vip': False, 'order': {}}, 3: None, 4: None, 5: {'name': 'Vasiliy', 'is_vip': False, 'order': {}}} Your code output: {1: {'name': 'Andrey', 'is_vip': True, 'order': {'soup': ['Borsh', 'Лапша']}}, 2: {'name': 'Vlad', 'is_vip': False, 'order': {'soup': ['Чечевичный'], 'salad': ['Цезарь'], 'drink': ['Raf'], 'main_dish': ['Утка по-пекински'], 'desert': ['Трюфель']}}, 3: None, 4: None, 5: {'name': 'Vasiliy', 'is_vip': False, 'order': {}}} {1: {'name': 'Andrey', 'is_vip': True, 'order': {'soup': ['Borsh', 'Лапша']}}, 2: {'name': 'Vlad', 'is_vip': False, 'order': {}}, 3: None, 4: None, 5: {'name': 'Vasiliy', 'is_vip': False, 'order': {}}} def reserve_table(table_number, name, is_vip=False): """Резервирует столик и добавляет ключ 'order'.""" global tables if table_number not in tables: return "Столик с таким номером не существует." if tables[table_number] is not None: return "Столик занят." tables[table_number] = {"name": name, "is_vip": is_vip, "order": {}} return f"Столик {table_number} забронирован для {name}." menu = {"salad", "soup", "main_dish", "drink", "desert"} def make_order(n, **kwargs): """Добавляет заказ к столику, обрабатывая несколько блюд в одной категории и добавляя их в список. """ global tables if n not in tables: return "Столик с таким номером не существует." if tables[n] is None: return "Столик не забронирован." order = tables[n]['order'] for category, items in kwargs.items(): if category in menu: if category not in order: order[category] = [] # Разделяем блюда по запятой, если они есть dishes = [dish.strip() for dish in items.split(',')] order[category].extend(dishes) def delete_order(number_table, delete_all=True, **kwargs): """Удаляет заказ из столика.""" global tables if number_table not in tables: return "Столик с таким номером не существует." if tables[number_table] is None: return "Столик не забронирован." if delete_all: tables[number_table]['order'] = {} return f"Заказ для столика {number_table} полностью очищен." order = tables[number_table]['order'] for category, delete_flag in kwargs.items(): if category in menu and delete_flag and category in order: del order[category] return f"Заказ для столика {number_table} изменен." |
01.11.2024, 00:56 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,376
|
Код стоит обрамлять тегами [CODE] (с помощью соответствующей кнопки), т.к. в питоне отступы влияют на интерпретацию кода. Я бы сначала проверял delete_flag, а потом уже нахождение в menu и в order. Вижу только одну ошибку - неверное значение по умолчанию для delete_all параметра.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
01.11.2024, 18:32 | #3 |
Пользователь
Регистрация: 31.05.2023
Сообщений: 23
|
Благодарю за подсказку.
|
04.11.2024, 14:18 | #4 |
Пользователь
Регистрация: 31.05.2023
Сообщений: 23
|
Здравствуйте, помогите пожалуйста найти ошибки в коде не проходит тесты. Заранее благодарен.
Удаляем заказ От менеджеров поступило требование написать функционал, который позволяет очищать заказ. Для этого нужно разработать функцию delete_order, которая имеет следующие параметры обязательный ключевой параметр number_table - номер стола, где будем очищать заказ необязательный ключевой параметр delete_all со значением по умолчанию False. Если передать в него True, должна очищаться полностью информация о заказе для указанного столика. При значении False удаление в заказе будет точечным по категориям произвольное количество ключевых параметров с булевым значением вида drink=True, desert=True, call=True, шаурма=True Среди этих значений вам нужно удалять из заказа только те, имена которых находятся в списке категорий и переданное значение равно True Для успешного решения задания вам необходимо определить новую функцию delete_order и продублировать ранее созданные reserve_table и make_order со всеми их зависимостями. Не забывайте про кнопку «Запустить код» для проверки работоспособности программы перед отправкой. Sample Input 1: tables = { 1: {'name': 'Andrey', 'is_vip': True, 'order': {}}, 2: None, 3: None, 4: None, 5: {'name': 'Vasiliy', 'is_vip': False, 'order': {}}, } make_order(1, soup='Borsh') make_order(1, soup='Лапша', bring='Салфетку', meal='Манка') reserve_table(2, 'Vlad') make_order(2, soup='Чечевичный', salad='Цезарь', breakfast='Яичница') make_order(2, drink='Raf', main_dish='Утка по-пекински') make_order(2, desert='Трюфель', call='такси') print(tables) delete_order(number_table=2, delete_all=True) print(tables) Sample Output 1: {1: {'name': 'Andrey', 'is_vip': True, 'order': {'soup': 'Лапша'}}, 2: {'name': 'Vlad', 'is_vip': False, 'order': {'soup': 'Чечевичный', 'salad': 'Цезарь', 'drink': 'Raf', 'main_dish': 'Утка по-пекински', 'desert': 'Трюфель'}}, 3: None, 4: None, 5: {'name': 'Vasiliy', 'is_vip': False, 'order': {}}} {1: {'name': 'Andrey', 'is_vip': True, 'order': {'soup': 'Лапша'}}, 2: {'name': 'Vlad', 'is_vip': False, 'order': {}}, 3: None, 4: None, 5: {'name': 'Vasiliy', 'is_vip': False, 'order': {}}} Failed test #1 of 4. Wrong answer This is a sample test from the problem statement! Test input: tables = { 1: {'name': 'Andrey', 'is_vip': True, 'order': {}}, 2: None, 3: None, 4: None, 5: {'name': 'Vasiliy', 'is_vip': False, 'order': {}}, } make_order(1, soup='Borsh') make_order(1, soup='Лапша', bring='Салфетку', meal='Манка') reserve_table(2, 'Vlad') make_order(2, soup='Чечевичный', salad='Цезарь', breakfast='Яичница') make_order(2, drink='Raf', main_dish='Утка по-пекински') make_order(2, desert='Трюфель', call='такси') print(tables) delete_order(number_table=2, delete_all=True) print(tables) Correct output: {1: {'name': 'Andrey', 'is_vip': True, 'order': {'soup': 'Лапша'}}, 2: {'name': 'Vlad', 'is_vip': False, 'order': {'soup': 'Чечевичный', 'salad': 'Цезарь', 'drink': 'Raf', 'main_dish': 'Утка по-пекински', 'desert': 'Трюфель'}}, 3: None, 4: None, 5: {'name': 'Vasiliy', 'is_vip': False, 'order': {}}} {1: {'name': 'Andrey', 'is_vip': True, 'order': {'soup': 'Лапша'}}, 2: {'name': 'Vlad', 'is_vip': False, 'order': {}}, 3: None, 4: None, 5: {'name': 'Vasiliy', 'is_vip': False, 'order': {}}} Your code output: {1: {'name': 'Andrey', 'is_vip': True, 'order': {'soup': ['Borsh', 'Лапша']}}, 2: {'name': 'Vlad', 'is_vip': False, 'order': {'soup': ['Чечевичный'], 'salad': ['Цезарь'], 'drink': ['Raf'], 'main_dish': ['Утка по-пекински'], 'desert': ['Трюфель']}}, 3: None, 4: None, 5: {'name': 'Vasiliy', 'is_vip': False, 'order': {}}} {1: {'name': 'Andrey', 'is_vip': True, 'order': {'soup': ['Borsh', 'Лапша']}}, 2: {'name': 'Vlad', 'is_vip': False, 'order': {}}, 3: None, 4: None, 5: {'name': 'Vasiliy', 'is_vip': False, 'order': {}}} Код:
Последний раз редактировалось Nicodim; 04.11.2024 в 14:25. |
05.11.2024, 03:32 | #5 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,376
|
С отступами получше, но они не все верно стоят, поправил, чтобы питон не жаловался:
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
05.11.2024, 13:18 | #6 |
Пользователь
Регистрация: 31.05.2023
Сообщений: 23
|
Благодарю вас, что подсказали где икать.
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программирование на Python Задача на программирование покрытие отрезками | Nicodim | Помощь студентам | 2 | 29.12.2023 21:19 |
Программирование в Python | fyz abkbvjyjdf | Помощь студентам | 1 | 17.12.2022 11:34 |
Программирование на Python | fyz abkbvjyjdf | Помощь студентам | 11 | 14.12.2022 19:42 |
Программирование на python | Семен_13 | Python | 7 | 17.10.2022 17:59 |
Программирование Python | Белка и Стрелка | Помощь студентам | 1 | 29.05.2017 23:53 |