Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
29 / 29 / 0
Регистрация: 31.01.2020
Сообщений: 181

Шоколадный Цех

19.10.2020, 17:20. Показов 3220. Ответов 3

Студворк — интернет-сервис помощи студентам
– Это очень важный цех! – воскликнул мистер Вонка, достав из кармана связку ключей и вставив один из них в замочную скважину. – Это сердце фабрики, основа всего производства! И он такой красивый! Пожалуйста, заходите! Но, умоляю, будьте осторожны, не волнуйтесь, соблюдайте спокойствие, не падайте в обморок от восторга!

Мистер Вонка открыл дверь. И... о чудо!

Перед ними раскинулась волшебная долина, по обе стороны которой тянулись зеленые луга, а внизу текла широкая коричневая река.

Напишите функцию chocolate_shop(), которая считает, сколько всего замечательного в волшебной долине. Ой, в шоколадном цеху!

Функция принимает неограниченное число кортежей из двух строк-слов. В каждой строке буквы заменяются индексом под которым она стоит в слове, если его неповторяющиеся буквы отсортировать по алфавиту. Полученные числа переставляются в кортеже по возрастанию, если их рассматривать как строки, а затем из второго вычитается первое. Волшебство!

Кроме позиционных аргументов функция принимает именованный параметр length, по умолчанию 2, – кортежи, в которых есть слова короче этого числа, не рассматриваются.

Функция возвращает список полученных чисел.

Если после удаления кортежей с короткими словами ничего не осталось, возбуждается исключение EmptyInputError, в качестве сообщения указывается строка No input data.

Если параметр length имеет значение меньше 2, возбуждается стандартное исключение AttributeError с сообщением Invalid value.

Если в итоговом списке есть отрицательные значения, то возбуждается исключение NegativeError, его сообщение: Negative values in result.

Пример 1
Ввод Вывод
Python
1
2
3
args = [('shop', 'plant'), ('choco', 'beans'), ('magic', 'candy'), ('Willy', 'Wonka')]
 
print(chocolate_shop(*args))
Code
1
[28012, 10832, 29907, 3098]
Пример 2
Ввод Вывод
Python
1
2
3
args = [('chocolate', 'sweet'), ('valley', 'river')]
length  = 8
print(chocolate_shop(*args, length=length))
Code
1
EmptyInputError raised with "No input data"
Пример 3
Ввод Вывод
Python
1
2
3
args = [('attractor', 'zoom'), ('valley', 'river')]
length  = 3
print(chocolate_shop(*args, length=length))
Code
1
NegativeError raised with "Negative values in result"
Примечания
Обработка исключений производится проверяющей системой.

Она же и генерирует сообщения вида Error raised with message "String"

Поскольку один и тот же набор данных может порождать разные исключения, стоит придерживаться порядка проверки, указанного в условии.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.10.2020, 17:20
Ответы с готовыми решениями:

Шоколадный цех
– Это очень важный цех! – воскликнул мистер Вонка, достав из кармана связку ключей и вставив один из них в замочную скважину. – Это сердце...

Цех выпускает трансформаторы двух видов
Цех выпускает трансформаторы двух видов. Для изготовления трансформаторов обоих видов используются железо и проволока. Общий запас железа -...

Отменить автоматическое закрытие формы бд Шоколадный магазин
Форма Оформление заказа предназначена для добавления данных о новом заказе в таблицы. Добавление происходит с помощью кнопки добавления...

3
Эксперт Python
8849 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
19.10.2020, 22:06
Лучший ответ Сообщение было отмечено playandwork как решение

Решение

playandwork,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class EmptyInputError(Exception):
    def __init__(self):
        Exception.__init__(self)
 
class NegativeError(Exception):
    def __init__(self):
        Exception.__init__(self)
 
def chocolate_shop(args, length = 2) :
        temp = []
        for tup in args :
            w1, w2 = tup
            if len(w1) >= length and len(w2) >= length :
                w1di = {k: v for v, k in enumerate(sorted(list(set(w1))))}
                w1num = int(''.join((str(w1di[i]) for i in w1)))
                w2di = {k: v for v, k in enumerate(sorted(list(set(w2))))}
                w2num = int(''.join((str(w2di[i]) for i in w2)))
                print(w1num, w2num)
                if str(w1num) > str(w2num) :
                    w1num, w2num = w2num, w1num
                if w1num > w2num :
                    raise NegativeError
                temp.append(w2num - w1num)
        if not len(temp) :
            raise EmptyInputError
        return temp
 
try :
    args = [('shop', 'plant'), ('choco', 'beans'), ('magic', 'candy'), ('Willy', 'Wonka')]
    length = int(input())
    if length < 2 :
        raise AttributeError
    print(chocolate_shop(args,length))
except AttributeError :
    print('Invalid value')
except NegativeError :
        print('Negative values in result')
except EmptyInputError :
        print('No input data')
2
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
20.10.2020, 08:15
Цитата Сообщение от Gdez Посмотреть сообщение
class EmptyInputError(Exception):
def __init__(self):
Exception.__init__(self)
Можно просто
Python
1
2
class EmptyInputError(Exception):
    pass
2
Эксперт Python
8849 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
20.10.2020, 08:34
Рыжий Лис, Спасибо.
Первый раз попробовал пользовательское исключение
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.10.2020, 08:34
Помогаю со студенческими работами здесь

Поле расчета общей стоимости заказа бд Шоколадный магазин
Как в поле на форме Существующие заказы рассчитать общую стоимость заказа?

Механический цех
Помогите решить пожалуйста, не могу ни кк докурить че да как. Механический цех за смену может изготовить 600 деталей №1 или 1200 деталей...

Мебельный цех
Здравствуйте,может есть у кого нибудь база данных &quot;мебельный цех&quot;?

Реализовать класс ЦЕХ
Всем доброго времени суток. Необходимо реализовать программу с классом ЦЕХ В нем надо: 1. Определить пользовательский класс в...

Транспортный цех объединения
Очень долго искал в инете решение этой задачи,находил схожее,но цель у них не та которая нужна.Прошу помощи. Если кто-нибудь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru