Вход Блог
Строительство и ремонт
Репетиторы
Красота
Фрилансеры
Разные специалисты
Тренеры
Уход за животными
Автоинструкторы

Разработка на Python — удалённая работа в Москве

Дата: 2025-05-31
Детали
Регион
Москва
Занятость
дистанционно
Стоимость
договорная
Дата публикации
2025-05-31
Описание
Простой код, один класс. Доработка существующего продукта, разработка с нуля. Нужно написать класс, который будет упрощать логические выражения по правилам алгебры логики с учетом разрешения циклом. Изначально задаются зависимости в виде: dependencies = { 'Y15': 'x15', 'Y16': 'x16', 'Y17': 'x17', 'Y18': 'x18', 'Y19': 'x19', 'Y1': 'x1 & (Y17|Y2|Y5)', 'Y2': 'x2 & (Y16|Y1|Y5|Y3|Y4)', 'Y3': 'x3 & (Y15|Y2|Y4)', 'Y4': 'x4 & (Y3|Y5|Y2|Y20|Y21)', 'Y5': 'x5 & (Y2|Y1|Y22|Y4)', 'Y6': 'x6 & (Y19|Y22|Y11|Y13|Y12)', 'Y7': 'x7 & (Y8|Y20|Y9)', 'Y8': 'x8 & (Y18|Y7)', 'Y9': 'x9 & (Y21|Y7|Y10|Y14)', 'Y10': 'x10 & (Y11|Y9)', 'Y11': 'x11 & (Y10|Y6)', 'Y12': 'x12 & (Y6|Y13)', 'Y13': 'x13 & (Y6|Y12|Y14)', 'Y14': 'x14 & (Y9|Y13)', 'Y20': 'x20 &(Y4|Y7)', 'Y21': 'x21 &(Y4|Y9)', 'Y22': 'x22 &(Y5|Y6)' } Также задается критерий относительно которого надо упростить выражение до ДНФ. 1.Все нераскрытые Yi выражения, полученного на предыдущем шаге, раскрываются и результаты записываются квадратных скобках, следующих сразу за обозначением раскрываемого условия., то есть Yi[…].Обозначения раскрываемых условий слева от соответствующие квадратных скобок сохраняются на всех последующих шагах до завершения преобразований. Возникающие в процессе указанного раскрытия дизъюнктивные группы условий обеспечения заключаются в круглые скобки. 2. После указанного раскрытия на данном шаге выполняются преобразования имеющихся циклических ситуаций по правилам: - Если встречаем переменную с таким же отрицанием - это цикл (заменяем на True, если циклы отрицательные то есть ~Yi и ~Yi и на False, если Yi и Yi), то есть Yi[…Yi…]= Yi[…False…], а если ~Yi[…~Yi…]= ~Yi[…True…] - Если встречаем переменную с противоположным отрицанием - это не цикл (продолжаем раскрытие) 3. Выполняются возможные упрощающие преобразования полученного выражения по его простым логическим переменным и константам 0 и I. Эти преобразования осуществляются на основе правил алгебры логики путем вынесения за скобки общих членов и удаления из записи тождеств и конструкций, равных логическому нулю или логической единице. Пункты 1-3 в общем случае на каждом шаге выполняются последовательно. Однако в рамках данного и следующего шагов указанные преобразования могут совмещаться в целях сокращения общей записи. Еще одно подробное описание пункта 2: 1. Определение цикла Цикл распознается ТОЛЬКО когда: • Встречается полное совпадение переменной и её знака отрицания на разных уровнях раскрытия: Yi[...Yi...] → цикл (замена на False) ~Yi[...~Yi...] → цикл (замена на True) • Все остальные случаи (с разными знаками) НЕ считаются циклами: Yi[...~Yi...] → не цикл ~Yi[...Yi...] → не цикл 2. Алгоритм обработки 1. Начинаем раскрытие целевой переменной (напр. Y14[...]) 2. Для каждого вхождения Yi: Если встретили тот же Yi с тем же знаком → цикл: Yi[...Yi[...]] → внутренний Yi → False ~Yi[...~Yi[...]] → внутренний ~Yi → True Если встретили Yi с другим знаком → продолжаем раскрытие 3. Для вложенных зависимостей (Yj[...Yk[...]]): Анализируем каждое вхождение рекурсивно Проверяем совпадение знаков на всех уровнях 3. Примеры обработки 1. Прямой цикл: Y1 = x1 | Y1[...] → Y1[ x1 | False ] = x1 2. Отрицательный цикл: ~Y2 = x2 & ~Y2[...] → ~Y2[ x2 & True ] = x2 3. Не цикл (разные знаки): Y3 = x3 & ~Y3[...] → дальнейшее раскрытие (не заменяем) 4. Многоуровневый цикл: Y4[...Y5[...~Y4...]] → не цикл (разные знаки) ~Y4[...Y5[...~Y4...]] → цикл (заменяем внутренний ~Y4 на True) 4. Важные замечания • Всегда сохраняем внешнюю переменную (Yi[...]) до конца преобразований • Упрощаем выражения ПОСЛЕ обработки всех циклов • В финале удаляем все [...] но сохраняем логическую структур.
Похожие заказы

Разработка на Python

дистанционно
договорная
Веб-разработка. Доработка существующего продукта, или новая. Сделать несложного бота.
Москва Фрилансеры

Разработка на Python

дистанционно
договорная
Веб-разработка. Доработка существующего продукта.
Москва Фрилансеры

Разработка на Python

дистанционно
договорная
Совет по коду. Настройка, тестирование, доработка существующего продукта. Пожелания и особенности: Цена условная, договорная! Подробности уточните в лс, пожалуйста. Код простой, небольшие части. Нужен человек который сможет улучшить структуру работы кода, исправить ошибки и дать совет. Важно уложиться в сроки. Сегодня договориться и завтра поработать совместно в звонке.
Москва Фрилансеры

Разработка на Django

дистанционно
договорная
задача на Django. Доработка существующего продукта. Подготовка к выполнению задания Клонируйте репозиторий django-sprint1 на свой компьютер, в рабочую папку Dev. Репозиторий должен был появиться в вашем аккаунте на GitHub сразу после того, как вы открыли этот урок. Разверните и активируйте виртуальное окружение в папке Dev/django-sprint1, установите в виртуальное окружение зависимости из requirements.txt. Подсказки есть в уроке Из тренажёра на компьютер. Настройка VS Сode. Создайте новый Django-проект blogicum. В этом поможет урок Создание Django-проекта. Приложения. Должна получиться такая структура: Dev ??? django-sprint1/ ??? .vscode/ Служебная папка редактора кода (опционально, скрытая) ??? .git/ Служебная информация Git (скрытая) ??? html/ HTML-вёрстка для страниц и статика ??? tests/ Тесты Яндекс Практикума, проверяющие проект ??? venv/ Виртуальное окружение ??? blogicum/ <-- Рабочая папка с вашим кодом проекта ??? .flake8 Настройки тестов Практикума ??? .gitignore Список файлов и папок, которые не отслеживает Git ??? LICENSE Лицензия ??? pytest.ini Конфигурация тестов Практикума ??? README.md Описание проекта ??? requirements.txt Зависимости проекта Задание Создайте и зарегистрируйте приложения: pages — это приложение понадобится для работы со статическими страницами проекта; blog — тут будет происходить вся работа с публикациями пользователей. Описание процесса есть в уроке Создание Django-проекта. Приложения. Опишите маршруты и напишите соответствующие view-функции согласно таблице: Адрес Приложение Функция-обработчик Имя шаблона '' blog index index.html 'posts//' blog post_detail detail.html 'category//' blog category_posts category.html 'pages/about/' pages about about.html 'pages/rules/' pages rules rules.html Для каждого адреса установите namespaсe и name, совпадающие с именем приложения и view-функции соответственно. В файле views.py приложения blog разместите список posts. Каждый элемент этого списка — словарь, в котором хранится вся информация об отдельном посте. Информация из этого словаря должна будет выводиться на страницы проекта. Подобную работу вы уже делали в задании 3 урока Словарь контекста, ветвление и циклы в шаблонах. posts = [ { 'id': 0, 'location': 'Остров отчаянья', 'date': '30 сентября 1659 года', 'category': 'travel', 'text': '''Наш корабль, застигнутый в открытом море страшным штормом, потерпел крушение. Весь экипаж, кроме меня, утонул; я же, несчастный Робинзон Крузо, был выброшен полумёртвым на берег этого проклятого острова, который назвал островом Отчаяния.''', }, { 'id': 1, 'location': 'Остров отчаянья', 'date': '1 октября 1659 года', 'category': 'not-my-day', 'text': '''Проснувшись поутру, я увидел, что наш корабль сняло с мели приливом и пригнало гораздо ближе к берегу. Это подало мне надежду, что, когда ветер стихнет, мне удастся добраться до корабля и запастись едой и другими необходимыми вещами. Я немного приободрился, хотя печаль о погибших товарищах не покидала меня. Мне всё думалось, что, останься мы на корабле, мы непременно спаслись бы. Теперь из его обломков мы могли бы построить баркас, на котором и выбрались бы из этого гиблого места.''', }, { 'id': 2, 'location': 'Остров отчаянья', 'date': '25 октября 1659 года', 'category': 'not-my-day', 'text': '''Всю ночь и весь день шёл дождь и дул сильный порывистый ветер. 25 октября. Корабль за ночь разбило в щепки; на том месте, где он стоял, торчат какие-то жалкие обломки, да и те видны только во время отлива. Весь этот день я хлопотал около вещей: укрывал и укутывал их, чтобы не испортились от дождя.''', }, ] Создайте шаблоны страниц и разместите их на уровне проекта. Вёрстку шаблонов сделайте на основе html-файлов, которые хранятся в директории html. Подсказки и описание структуры файлов для директории templates есть в уроках спринта. Подключите статику. В репозитории, в директории html, лежат папки со статикой: css и img. Сохраните статику на уровне проекта и подключите её к шаблонам — подобно тому, как это описано в уроке Подключение стилей, картинок и скриптов к шаблонам. Вывод информации на страницы проекта На главную страницу проекта выведите полный список публикаций из словаря posts. В директории html есть уже свёрстанная главная страница проекта: index.html. Переделайте её в Django-шаблон и сохраните в директории для шаблонов проекта. Порядок вывода постов должен быть таким же, как в исходном файле index.html. Вёрстка отдельной страницы публикации подготовлена в файле html/detail.html. На эту страницу должен быть выведен полный текст поста. На страницу категории ('category//') посты выводить пока что не надо; выведите на эти страницы лишь значение category_slug из адреса. Например, для адреса http://127.0.0.1:8000/category/personal/ выведите personal; текст на этой странице должен быть таким: «Публикации в категории personal». Публикации должны передаваться в шаблоны в словаре контекста под ключом post. Не применяйте к дате публикации фильтр шаблонов date — это сейчас строка, а не объект даты. Шаблоны about.html и rules.html из директории html сохраните на уровне проекта и подключите к соответствующим view-функциям приложения pages. Проверка Вот так должен выглядеть в браузере результат вашей работы: После выполнения задания: Запустите тесты локально, на компьютере. В активированном виртуальном окружении через терминал из папки Dev/django-sprint1 выполните команду pytest. Если все тесты пройдены успешно, то можно отправлять проект на GitHub. Структура папок в вашем репозитории должна быть такой: django-sprint1/ ??? html/ Шаблоны для выполнения задания ??? tests/ Тесты Практикума, проверяющие проект ??? blogicum/ <-- Рабочая папка с вашим кодом ??? .flake8 Настройки тестов Практикума ??? .gitignore Список файлов и папок, скрытых от отслеживания Git ??? LICENSE Лицензия ??? pytest.ini Конфигурация тестов Практикума ??? README.md Описание проекта ??? requirements.txt Зависимости проекта Отправьте задание на проверку. На странице задания на вкладке ревью нажмите кнопку «Отправить новую версию». На учебной платформе запустятся автоматические тесты, которые проверят ваше задание. Если автоматические тесты пройдены успешно — ваш проект отправится на проверку человеку-ревьюеру. Скорее всего, он оставит комментарии и попросит внести правки. Задание считается выполненным, когда исправлены все замечания с пометкой «Надо исправить». Задание считается выполненным прекрасно, если вам удастся реализовать все рекомендации с пометкой «Можно лучше».
Москва Фрилансеры

Разработка на Python

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

Разработка на Python

дистанционно
договорная
-. скажу. Расскажу.
Санкт-Петербург Фрилансеры

Разработка на Python

дистанционно
договорная
Разработка приложений для ПК. Разработка с нуля. Финальная цель - получить отредактированный (орфографически и пунктуационно) большой массив текста ~ 1.500.000 слов Самый простой путь вижу через написание скрипта, который через api 1) прочитает DOC, 2) разобьет текст на удобоваримые для ИИ куски (скажем 5-10 глав), 3) отправит эти куски в клауде, гемини или чатгпт, 4) получит исправленный текст, 5) сошьет его, выдав одним доком. Этот документ и есть цель. Не требуется, чтобы текст был идеально вылизан. Cкажем, чтобы было не более одной ошибки на главу. Если есть пути проще - на здоровье.
Москва Фрилансеры