Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 4, 2024 12:44:58

Viktron
Зарегистрирован: 2024-11-04
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

программирование на python

Здравствуйте, помогите пожалуйста найти ошибки в коде не проходит тесты. Заранее благодарен.

Удаляем заказ

От менеджеров поступило требование написать функционал, который позволяет очищать заказ. Для этого нужно разработать функцию delete_order, которая имеет следующие параметры

обязательный ключевой параметр number_table - номер стола, где будем очищать заказ

необязательный ключевой параметр delete_all со значением по умолчанию False. Если передать в него True, должна очищаться полностью информация о заказе для указанного столика. При значении False удаление в заказе будет точечным по категориям

произвольное количество ключевых параметров с булевым значением вида
drink=True, desert=True, call=True, шаурма=True
Среди этих значений вам нужно удалять из заказа только те, имена которых находятся в списке категорий и переданное значение равно True



Для успешного решения задания вам необходимо определить новую функцию delete_order и продублировать ранее созданные reserve_table и make_order со всеми их зависимостями.
test
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': }}, 2: {'name': ‘Vlad’, ‘is_vip’: False, ‘order’: {'soup': , ‘salad’: , ‘drink’: , ‘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’: {}}}


Код программы.


 CATEGORIES = ['soup', 'salad', 'drink', 'main_dish', 'desert']
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}."
def make_order(n, **kwargs):
    """Добавляет заказ к столику, если он есть в меню."""
    global tables
    if n not in tables:
        return "Столик с таким номером не существует."
    if tables[n] is None:
        return "Столик не забронирован."
    for k, v in kwargs.items():
        if k in CATEGORIES:
            tables[n]['order'][k] = v
def delete_order(*, number_table, delete_all = False, **kwargs):
    """Удаляет заказ со столика."""
    global tables
    if number_table not in tables:
        return "Столик с таким номером не существует."
    if delete_all:
        tables[number_table]['order'] = {}
    else:
        for category, delete_flag in kwargs.items():
            if delete_flag and category in tables[number_table]['order'] and category in CATEGORIES:
                del tables[number_table]['order'][category]

Отредактировано Viktron (Ноя. 4, 2024 21:18:21)

Офлайн

#2 Ноя. 4, 2024 13:09:37

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1348
Репутация: +  118  -
Профиль   Отправить e-mail  

программирование на python

[code python]между этими тегами вставлять код на форуме[/code]

Офлайн

#3 Ноя. 4, 2024 13:30:37

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2739
Репутация: +  183  -
Профиль   Отправить e-mail  

программирование на python

> Функциональное программирование на python

А причем тут функциональное программирование?



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#4 Ноя. 4, 2024 22:07:55

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9843
Репутация: +  853  -
Профиль   Отправить e-mail  

программирование на python

Viktron
Здравствуйте, помогите пожалуйста найти ошибки в коде не проходит тесты.
Создай tables. И убери отдельную звёздочку в начале из определения функции delete_order().



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version