Посты с тэгом занимательные задачки


От парсера афиши театра на Python до Telegram-бота. Часть 2



Продолжаем историю о разработке Telegram-бота для поиска билетов — HappyTicketsBot, начало можно почитать в первой части.
Во второй расскажу о самом боте, поделюсь кодом, а также идеями, которым скорее всего не суждено стать реальностью. Большая часть функционала к моменту создания бота уже была написана в формате скрипта, поэтому основной задачей стояло наладить интерфейс взаимодействия с пользователем через Telegram-messenger. Получилось не так болтологически, как в 1й части, так что attention — много кода.

Спойлер: HappyTicketsBot так и не улетел крутиться на иностранный сервер, он локальный и русский, но однажды запуск (верю) состоится =)
Читать дальше →


От парсера афиши театра на Python то Telegram-бота. Часть 1


Я очень люблю оперу и балет, но не очень — отдавать большие деньги за билеты. Ежедневный просмотр сайта театра с тыканьем в каждую кнопку ужасно утомлял, а внезапно появлявшиеся билеты по 170 рублей на супер-составы бередили душу.
Чтобы автоматизировать это дело появился скриптик, который бежит по афише и собирает информацию о самых дешевых билетах на выбранный месяц. Запросы из серии «выдай список всех опер в марте на старой и новой сцене до 1000 рублей». Подруга обронила «а ты не Telegram-бота делаешь?». Такого в плане не было, но почему бы и нет. Бот родился, хоть и крутился на домашнем ноутбуке.
Потом Telegram заблокировали. Мысль запулить бота на рабочий сервер растаяла, да и интерес, чтобы довести функционал до ума, угас. Под катом рассказываю о судьбе сыщика дешевых билетов с самого начала и о том, что с ним сталось после года использования.


Как я марс спасал или небольшой квест на питоне

Привет, Мир!

Август 2018



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



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

Продолжение под катом!


Занимательный пролог #3

Так вот, сообщество, прошу предоставить мне шанс удивить вас с третьего раза, в предыдущем решении я задействовал питон, думал вот тут привлеку внимание знатоков и мне сразу скажут, да зачем это делать, вообще есть же регулярные выражения — сделал и все там точно будет работать, этот наш питон может выдать и поболее скорости.
Следующая тема статьи должна быть другая задача по очереди, ан нет меня не оставила еще первая, что можно сделать, чтобы получить еще более быстрое решение, так как победа на сайте увенчалась еще одним соревнованием.
Я написал реализацию которая в среднем была вот такого вида скорости, значит есть еще 90 процентов решений, которых я не заметил, что кто-то знает как ее решить еще быстрее и он молчит, и посмотрев две предыдущие статьи не сказал: ах, если это вопрос производительности, тогда все понятно — тут пролог не подходит. Но с производитель



Занимательный пролог #2

Привет, сообщество разработчиков,
надо довести дело до конца.
В предыдущем моем опусе был вызов показать как можно использовать язык Пролог, да и показать что бы это было забавно. Превратить это в упражнение.
Попробую продолжить выпендриваться демонстрировать.
Коротко напомню задачу:


Wildcard Matching

Given an input string (s) and a pattern (p), implement wildcard pattern matching with support for '?' and ''.
'?' Matches any single character.
'
' Matches any sequence of characters (including the empty sequence).
The matching should cover the entire input string (not partial).


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



Разминка для тех, кто умеет в Python

Привет! Мы обожаем квизы, посвященные языкам программирования. В нашем блоге мы разместили уже целых три: первый — по Python, PHP, Golang, DevOps, второй — полностью по Go, третий — только по PHP. Сегодняшний квиз посвящен исключительно Python.


Предлагаем вам размяться в честь конца ещё одной летней недели и в преддверии PyCon Russia 2018. (Кстати, кто едет? Мы там будем).


Под катом — семь вопросов, советы от друга, Чапаев, отрывки из ABBA (что? да!) и крутой мерч.


Читать дальше →


[Перевод] Что за чёрт, Python


Недавно мы писали о забавных, хитрых и странных примерах на JavaScript. Теперь пришла очередь Python. У Python, высокоуровневого и интерпретируемого языка, много удобных свойств. Но иногда результат работы некоторых кусков кода на первый взгляд выглядит неочевидным.


Ниже — забавный проект, в котором собраны примеры неожиданного поведения в Python с обсуждением того, что происходит под капотом. Часть примеров не относятся к категории настоящих WTF?!, но зато они демонстрируют интересные особенности языка, которых вы можете захотеть избегать. Я думаю, это хороший способ изучить внутреннюю работу Python, и надеюсь, вам будет интересно.


Если вы уже опытный программист на Python, то многие примеры могут быть вам знакомы и даже вызовут ностальгию по тем случаям, когда вы ломали над ними голову :)



[Из песочницы] Расчет оттока клиентов банка (решение задачи с помощью Python)

Хочу поделиться опытом решения задачи по машинному обучению и анализу данных от Kaggle. Данная статья позиционируется как руководство для начинающих пользователей на примере не совсем простой задачи. Читать дальше →



[recovery mode] Есть и нет

Сначала пример олимпиадной задачи по логике. На острове живут мудрецы и лжецы. Причем, их да и нет звучат как пиф и паф. Что именно из них что – неизвестно.

Решаем. Мудрец ответит следующим образом: (А = А), (А ≠ not А). Ответ же лжеца в таком случае: (А ≠ А), (А = not А). Пусть на их языке пиф – это да. Тогда на вопрос (пиф – это да?) мудрец ответит пиф. Если же на их языке (пиф – это нет), то его ответ будет таким же: пиф. Лжец же всегда будет высказывать несуществующее (то, чего нет), говоря паф.

Итак, конструкция истины (тождественно истинной формулы) А=А, лжи (тождественно ложной формулы) А≠А. Эти же формулы позволяют передавать логические примитивы: есть А, нет А. Вот пример на языке python.
Читать дальше →



Python и красивые ножки — как бы я знакомил сына с математикой и программированием


Раньше мы уже искали необычные модели Playboy с помощью библиотеки Python Scikit-learn. Теперь мы продемонстрируем некоторые возможности библиотек SymPy, SciPy, Matplotlib и Pandas на живом примере из разряда занимательных школьных задач по математике. Цель — облегчить порог вхождения при изучении Python библиотек для анализа данных.



Читать дальше →