Python Telegram Bot
الذهاب إلى القناة على Telegram
☑️ Заявки принимаются автоматически! Обучаем созданию и продвижению чат-ботов в телеграм. ссылка: @pybotg связь: @oksi_young https://telega.in/channels/+Mj_twnrYuAxkZmUy/card/?r=BrHKEWMo
إظهار المزيد5 003
المشتركون
لا توجد بيانات24 ساعات
-67 أيام
+1730 أيام
أرشيف المشاركات
5 003
Продолжение к посту выше
В папке
data создаем файл location.py со списком магазинов(в качестве учебного примера мы пропишем 2 магазина и продублируем их, рандомно изменив некоторые параметры).
В это файле пишем: Shops = [("KFC", {"lat": 50.427714, "lon": 30.538275}), ("McDonald's", {"lat": 50.447028, "lon": 30.5088229}), ]. После запятой в таком же виде вы можете добавить свои магазины. С помощью этого списка мы будем определять, какой магазин ближе всего к нашел геолокации.
После всех этих действий, полученные широту долготу мы используем в файле show_on_gmaps.py следующим образом: URL = "http://maps.google.com/maps?q={lat},{lon}" def show(lat, lon): return URL.format(lat=lat, lon=lon).
И наконец, отдадим нашему пользователю ссылку на Google Maps, чтобы он мог посмотреть, где находятся эти магазины5 003
Сколько я могу зарабатывать на Python?
Этот вопрос входит в список самых часто задаваемых, еще до начала изучения языка.
Ребята из JunSup подготовили небольшой тест, который покажет, сколько ты можешь зарабатывать на Python прямо сейчас
5 003
Продолжение к посту выше
Пишем функцию дальше:
a = math.sin(dlat / 2) ** 2 + math.cos(lat2) * math.sin(dlon / 2) ** 2 c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a)) distance = R * c. Данный кусок вычисляет расстояние.
Далее, с помощью функции choose_shortest с помощью переданной локации мы определяем ближайшую точку. Сама функция выглядит следующим образом: def choose_shortest(location: types.Location): distances = List() for shop_name, shop_location in Shops: distances.append((shop_name, calc_distance(location.latitude, location.longitude, shop_location['lat'], shop_location['lon'])), show_on_gmaps.show(**shop_location), shop_location)) return sorted(distances, key=lambda x: x[1])[:2].
В следующем посте рассмотрим список формирование списка магазином Shops5 003
☑️ Доделать бота на Python с AI
• Бюджет: Цена договорная
• Срок: по договоренности
• Задача:
Ищем разработчика который поможет доделать продукт.
Есть AI модель которая умеет распознавать ненасильственное и насильственное общение.
Что нам нужно:
1. Сделать классификатор сообщений ( наша модель анализирует, gpt 3 делает перефраз по нашему тз)
2. Интеграция c slack ( интеграция с классификатором, onboarding для клиентов)
Часть интеграции со слаком частично готова
Откликнуться
5 003
Что нужно для изучения программирования? —Курсы, книги, статьи
В этой подборке мы собрали канал с курсами, книгами и статьями, Забирайте:
Python Magazine - палочка-выручалочка для всех, кто учит и хочет выучить Python. Видеоуроки, подборки полезных программ, книги и новости из мира IT.
Java с нуля – обучение по cамому востребованный язык программирования в мире. Его используют 97% корпоративных компьютеров. Вилка зарплат составляет от 80 000 до 450 000 рублей по России.
Этичный хакер – настоящая кость в горле интернет-мошенников. Читайте бесплатные статьи по кибербезу, защите персональных данных и борьбе с вирусами.
5 003
В этой серии постов мы разберем, как работать с геопозицией и контактами, которые могут быть присланы по нажатию на одну кнопку. К тому же, мы не просто возьмем геопозицию, а еще и рассчитаем расстояние до других точек(например, расстояние до ближайших к вам магазинов).
У нас есть функция
calc_distance, которая расчитывает расстояние между двумя точками. В этом посте мы ее частично покажем. Сама функция выглядит следующим образом: def calc_distance(lat1, lon1, lat2, lon2): lat1 = math.radians(lat1) lon1 = math.radians(lon1) lat2 = math.radians(lat2) lon2 = math.radians(lon2) dlon = lon2 - lon1 dlat = lat2 - lat1.
Данный кусок кода вычисляет значения в радианах и считает разницу между первой и второй точкой5 003
Предопределённые действия по очистке
Некоторые объекты определяют стандартные действия при очистке, применяемые если объект больше не нужен, независимо от того, удачна была операция использования объекта или нет. Посмотрите на следующий пример, в которым мы пытаемся открыть файл и вывести его содержимое на экран Код 1
Проблема этого кода в том, что он оставляет файл открытым на неопределённое количество времени после выполнения данной части кода. В простых сценариях это не является проблемой, но может стать ей в больших приложениях. Оператор
with позволяет использовать объекты (например, файлы) таким образом, чтобы вы всегда могли быть уверены в том, что ресурсы будут сразу и корректно очищены
После выполнения оператора, файл f всегда закрывается, даже если при прочтении строк обнаружилась проблема. В документации к объектам, которые поддерживают предопределённые действия по очистке, таким как файлы, данная их способность будет явно указана5 003
Только до конца месяца дарим 3 курса по IT за 0 рублей вместо 23 500!
У тебя всегда 💡 много возможностей.
Брать их или нет - решать тебе.
Забирать свой пак можно тут 👌
5 003
Финал поста выше
Создаем хендлер на команду
/more_cats, куда мы будем передавать уже альбом: @dp.message_handler(Command("more_cats")) async def more_cats(message: Message): album = MediaGroup().
Далее надо прописать те же переменные, которые были в прошлом хендлере и прописать: album.attach_photo(photo_file_id) и так для каждой переменной. В конце хендлера пишем: await bot.send_media_group(chat_id=message.from_user.id, media=album). Ну и другим способом это можно сделать так: await message.answer_media_group(media=album).
Регестрируем наши хендлеры и запускаем бота. Но перед этим создадим новые команды. Для этого переходим в папку utils и создаем там файл set_bot_commands.py. В самом файле пишем: async def set_default_commands(dp): await dp.bot.set_my_commands([types.BotCommand("get_cat"), types.BotCommand("more_cats")]). Делаем представление кнопок в app.py и запускаем бота5 003
Продолжение к посту выше
Теперь, мы хотим, чтобы по команде
/get_cat наш бот присылал фото кота: @dp.message_handler(Command("get_cat")) async def send_cat(message: Message):. Дальше можно пойти тремя разными путями - 1) Пересылать фото по полученному id: photo_file_id = "..". 2) Пересылать по URL(работает только в том случае, если путь дан прямо на фото в интернете, а не на файлообменник): photo_url = "". 3) С помощью перевода фото в байты: photo_bytes = InputFile(path_or_bytesio="в кавычки можно передать просто путь до локального файла". Мы остановимся на 2 варинте.
Далее пишем: await bot.send_photo(chat_id=message.from_user.id, photo=photo_url, caption="Вот тебе фото кота /more_cats"). В следующем посте мы создадим хендлер на команду /more_cats5 003
5 003
Определение очищающих действий. Часть 3
Более сложный пример возникновения исключения на фото.
Как видно,
finally блок выполняется в любом случае. Вызывается TypeError при делении двух строк, не обрабатывается except блоком и поэтому повторно вызывается после выполнения блока finally.
В реальных приложениях блок finally полезен для освобождения внешних ресурсов (например, файлы или сетевые подключения), независимо от того, было ли использование ресурса успешным.
#python_обучение5 003
OpenAi вместе с другими нейросетями создали свое официальное сообщество, в котором публикуются статьи, тесты, видео , интересные факты, которые помогут тебе максимально погрузиться в тему искусственного интеллекта!
Советуем подписаться @back_to_the_future
5 003
Что выведет следующий код, при его исполнении? Используется Python 3.x.
