en
Feedback
Python Hub - сборище Питонистов

Python Hub - сборище Питонистов

Open in Telegram

Уголок счастья для любого питониста. Сотрудничество или заказы: @leshunist https://shcoder.dev - студия разработки ShcoderDevelopment https://t.me/pythonhub_chat - чат

Show more
1 751
Subscribers
-124 hours
-57 days
+330 days
Posts Archive
🐈 Можно ли положить сайт, делая к нему запросы через Python? 🤙 Разбор темы 1: Определение DDoS-атаки DDoS-атака (Distribute
🐈 Можно ли положить сайт, делая к нему запросы через Python? 🤙 Разбор темы 1: Определение DDoS-атаки DDoS-атака (Distributed Denial of Service) - это атака, направленная на перегрузку ресурсов сервера или сети путем отправки большого количества запросов с целью обрушить его работу. Возникает вопрос, можно ли провести подобную атаку с помощью Python. Ответ - да, это технически возможно. Однако, важно отметить, что DDoS-атака является противозаконной и незаконным использование таких методов может повлечь за собой серьезные юридические последствия. 🤙 Разбор темы 2: Python и нагрузочное тестирование Python является мощным языком программирования, который позволяет автоматизировать множество задач, включая отправку запросов к веб-сайтам. Однако, использование Python для нагрузочного тестирования, то есть для проверки производительности сайта под высокой нагрузкой, не означает, что вы сможете сразу "положить" сайт. Нагрузочное тестирование проводится с целью определить, как сайт будет работать при реальных условиях использования, и в большинстве случаев не представляет угрозу для его доступности. 🤙 Разбор темы 3: Защита от DDoS-атак У веб-сайтов существуют механизмы защиты от DDoS-атак, которые позволяют обнаруживать и отражать подобные попытки. Это может быть использование специальных сервисов, фильтрация трафика или анализ поведения пользователей. Поэтому, даже если вы попытаетесь "положить" сайт с помощью Python, шансы на успех будут невелики. Пробовали ли вы когда-нибудь что-нибудь положить? Я помню, как когда-то давно пытался положить какой-то html'ный заброшенный сайт при помощи команды ping 🏓

👩‍💻 Асинхронное программирование в Python: Шаг в будущее ⚡️ Привет, уважаемые подписчики Python-канала! Сегодня мы вместе поговорим о важном аспекте программирования - асинхронном программировании в Python. Этот подход становится все более популярным, так как обеспечивает эффективную обработку множества задач одновременно. Давайте рассмотрим основы этой техники и как она может изменить ваш подход к написанию кода. 🔄 Что такое асинхронное программирование? Асинхронное программирование - это способ написания кода, позволяющий выполнять несколько задач одновременно без блокировки основного потока выполнения. В Python для этого используются ключевые слова async и await, которые делают функции асинхронными и определяют точки, где происходит ожидание. 💡 Преимущества асинхронного программирования: 1. Увеличение производительности: Асинхронный код позволяет эффективно использовать ресурсы, ускоряя выполнение задач. 2. Масштабируемость: Обработка множества задач одновременно без блокировки позволяет создавать масштабируемые приложения. 3. Улучшен отклик приложения: Пользователи получают быстрый отклик, даже если выполняются длительные операции. 🔍 Основные концепции асинхронного программирования в Python: - `async def` и `await`: Обозначают асинхронные функции и точки ожидания выполнения задачи. - Цикл событий (Event Loop): Основной механизм управления выполнением асинхронных задач. - Корутины (Coroutines): Асинхронные функции, которые могут приостанавливать свое выполнение. 🚀 Пример асинхронного кода:
import asyncio

async def async_example():
    print("Начало выполнения")
    await asyncio.sleep(2)
    print("Завершение выполнения")

async def main():
    tasks = [async_example() for _ in range(5)]
    await asyncio.gather(*tasks)

if __name__ == "__main__":
    asyncio.run(main())
⚙️ Интеграция асинхронного кода: Множество библиотек и фреймворков в Python уже поддерживают асинхронное программирование, включая aiohttp, asyncio, и многие другие. Это позволяет создавать высокопроизводительные веб-приложения, работающие с асинхронными запросами. 📚 Дополнительные ресурсы: - [Документация Python по асинхронному программированию](https://docs.python.org/3/library/asyncio.html) - [Статья на Real Python: "Async IO in Python: A Complete Walkthrough"](https://realpython.com/async-io-python/) 🔗 Заключение: Асинхронное программирование в Python открывает перед вами новые горизонты возможностей. Надеемся, что данная статья помогла вам понять основы этой техники и вдохновила на ее использование в ваших проектах. Делитесь своим опытом в комментариях, и продолжайте изучение Python вместе с нами! 🚀🐍

Почему вдруг пропали все бусты? 🙁 (ссылка, как намек) ☺️ https://t.me/pythonhub001?boost

👩‍💻 Популярная библиотека Boto и Botocore на PyPi 1️⃣ Boto3 помогает разработчикам упростить работу с AWS. Она предоставляе
👩‍💻 Популярная библиотека Boto и Botocore на PyPi 1️⃣ Boto3 помогает разработчикам упростить работу с AWS. Она предоставляет простой и понятный способ взаимодействия с различными сервисами AWS, такими как создание и настройка виртуальных серверов, управление файловым хранилищем, отправка сообщений и многое другое. Это позволяет автоматизировать различные задачи и сделать работу с AWS более эффективной. 2️⃣ Botocore представляет собой набор инструментов и клиентских библиотек для работы с Amazon Web Services (AWS). Она обеспечивает низкоуровневый доступ к различным сервисам AWS, таким как Amazon S3, Amazon EC2 и многим другим. Botocore позволяет разработчикам создавать, управлять и автоматизировать ресурсы в облаке AWS с помощью простого и интуитивно понятного API. 👆 Библиотека botocore также является ключевым компонентом PyPI - крупнейшего репозитория пакетов Python. PyPI предоставляет доступ к миллионам пакетов, которые можно установить и использовать в своих проектах. Botocore позволяет разработчикам использовать пакеты, связанные с AWS, и управлять ими с помощью простого и удобного интерфейса. https://aws.amazon.com/ru/sdk-for-python/ https://pypi.org/project/boto3/ https://pypi.org/project/botocore/

👩‍💻 Лучшие пакеты PyPi! Решил проверить, какие вообще самые популярные (по каким-то критериям, хз сам каким) библиотеки на
👩‍💻 Лучшие пакеты PyPi! Решил проверить, какие вообще самые популярные (по каким-то критериям, хз сам каким) библиотеки на PyPi PyPI (Python Package Index) — это официальный репозиторий пакетов для языка программирования Python. Здесь собраны тысячи библиотек, модулей и приложений, которые могут быть полезны для разработчиков Python. https://pypistats.org/top https://hugovk.github.io/top-pypi-packages/ Вот два ресурса. Мне понравился больше первый. Для ленивых предлагаю скрин! Стоит ли вообще сделать краткий обзор этих либ из списка?

▶️ Субботний чилловый видос с решением задач на CodeWars! ▶️ 😊 Уже на канале! https://www.youtube.com/watch?v=R3DGJ-iO12k

Были бы интересны видео, где пилим большой проект? Или лучше маленькие проекты на 10-15 минут?
Anonymous voting

‼️‼️ 📹 Думаю, что один из последних видосов по Tkinter вышел на канале! 📹 Есть тут еще олдовые любители Tk GUI? (показываю варианты реализации paint приложения, ссылаясь на авторов. Все исходники в описании) https://www.youtube.com/watch?v=YtTAdFCWsHc

Умер создатель языка программирования Pascal Николаус Вирт Ему было 89 лет. По данным iTWire, Вирт умер в своём доме в окруже
Умер создатель языка программирования Pascal Николаус Вирт Ему было 89 лет. По данным iTWire, Вирт умер в своём доме в окружении родных 1 января 2024 года. Почитать подробнее можно тут Кто из вас писал на паскале? 🖥

Разбор 👨‍💻 '2' + '2' —> '22' текстовый формат. При умножении текста на число, текст дублируется столько раз, чему равно число. В нашем случае '22' * 3 —> '222222' Если было бы, например 'hello' * 3 —> 'hellohellohello'

Что выдаст код выше?
Anonymous voting

❗️ Округление чисел в Python ➡️ Функция round() Один из самых простых способов округления числа в Python - использовать встро
❗️ Округление чисел в Python ➡️ Функция round() Один из самых простых способов округления числа в Python - использовать встроенную функцию round(). Функция round() округляет число до ближайшего целого значения. Например, если у нас есть число 3.7, функция round() округлит его до 4, а если у нас есть число 3.4, оно будет округлено до 3. Важно отметить, что если дробная часть числа равна 0.5, функция round() округлит число в сторону ближайшего четного значения. Например, число 2.5 будет округлено до 2, а число 3.5 будет округлено до 4.
num1 = 3.7
num2 = 3.4

rounded_num1 = round(num1)
rounded_num2 = round(num2)

print(rounded_num1)  # Output: 4
print(rounded_num2)  # Output: 3
➡️ Методы floor() и ceil() Кроме функции round(), в Python также доступны методы floor() и ceil(). Метод floor() округляет число до наибольшего целого значения, которое меньше или равно данному числу. Например, если у нас есть число 4.8, метод floor() округлит его до 4. С другой стороны, метод ceil() округляет число до наименьшего целого значения, которое больше или равно данному числу. Например, если у нас есть число 2.2, метод ceil() округлит его до 3.
import math

num = 4.8

floored_num = math.floor(num)
ceiled_num = math.ceil(num)

print(floored_num)  # Output: 4
print(ceiled_num)   # Output: 5
➡️ Модуль math Еще один способ округления чисел в Python - использование модуля math. Модуль math предоставляет различные функции для работы с числами, включая функции округления. Например, функция math.floor() эквивалентна методу floor(), а функция math.ceil() эквивалентна методу ceil(). Кроме того, модуль math также предоставляет функции округления вниз и вверх до ближайшего целого значения, а также функцию для округления до определенного количества знаков после запятой.
import math

num = 3.7

floored_num = math.floor(num)
ceiled_num = math.ceil(num)

print(floored_num)  # Output: 3
print(ceiled_num)   # Output: 4

Кэширование результатов функций в Python 🐍 💬 Что такое кеширование? Кеширование позволяет сохранять результаты выполнения функций, избегая повторных вычислений. Это полезно, особенно если функция часто вызывается с одними и теми же данными или выполняет сложные операции. ❓ Как это сделать? В Python есть модуль functools, включающий декоратор lru_cache, который автоматически кеширует результаты функции. 🥸 Зачем это нужно? Кеширование ускоряет программу, сохраняя результаты вычислений функций. Это особенно полезно при работе с большими данными или сложными расчетами. Пример:
from functools import lru_cache

@lru_cache(maxsize=20) # 20 - это максимальное количество "запоминаний" 
def fibonacci(n):
    if n < 2:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

print(fibonacci(10))  # Первый вызов - вычисляем
print(fibonacci(10))  # Результат уже закеширован
💻 Теперь вы знаете, как использовать кеширование в Python для улучшения производительности кода. Оставайтесь с нами для еще больше интересной информации о Python! 😉

🥳Привет, Python и не Python герои! 🐍 С наступающим 2024 годом! 🥳 От имени всей команды сообщества Shcoder, мы желаем вам б
🥳Привет, Python и не Python герои! 🐍 С наступающим 2024 годом! 🥳 От имени всей команды сообщества Shcoder, мы желаем вам бесконечного цикла успеха и счастья, чтобы ваш код всегда был чистым, а переменные — всегда именованными с любовью! 💻❤️ Пусть новый год принесет вам меньше багов, больше интересных проектов и нового опыта! 🎁🐞 Пусть ваши проекты будут масштабируемыми, а итерации — всегда успешными! 🔄🚀 Пусть у вас всегда будет актуальная и понятная документация! 📚🤝 С наступающим вас, Шкодеры! Пусть 2024 год будет полон новых версий ваших идей! 🥳🔍 🥳🥳🥳 УРА! 🥳🥳🥳

⭕️ Создать список, который хранит в себе объекты в Python (на примере списка с людьми) Python предоставляет нам множество воз
⭕️ Создать список, который хранит в себе объекты в Python (на примере списка с людьми) Python предоставляет нам множество возможностей для работы с данными. Одной из таких возможностей является использование списков для хранения объектов. Сейчас мы рассмотрим, как создать класс, создать объекты на основе этого класса, поместить эти объекты в список и обратиться к ним. 👀 1. Создание класса Для начала, давайте создадим класс, который будет представлять людей. Класс будет иметь атрибуты "имя" и "возраст". Вот пример такого класса:
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
👀 2. Создание объектов Теперь, когда у нас есть класс, мы можем создать объекты на его основе. Например, давайте создадим двух людей:
person1 = Person("John", 25)
person2 = Person("Alice", 30)
👀 3. Помещение объектов в список Чтобы поместить объекты в список, мы можем использовать метод append(). Например, чтобы создать список людей и добавить туда наших двух людей, мы можем написать следующий код:
people = []
people.append(person1)
people.append(person2)
Теперь у нас есть список people, в котором хранятся объекты, представляющие двух людей. 👀 4. Обращение к объектам в списке Чтобы обратиться к объектам в списке, мы можем использовать индексы. Например, чтобы получить имя первого человека в списке people, мы можем написать следующий код:
first_person_name = people[0].name
Теперь в переменной first_person_name будет храниться значение "John".

🤟 Суббота - время отдыхать и решать задачки на Codewars или leetcode? 🤟 💻 В этот раз задачи решаю на кодварс — закрываю год на любимом алгоритмическом сайте! https://youtu.be/6y19_r6XxvE

▶️ Вышел скучный, но полезный видос по Python! ▶️ ❗️В нем мы разбираем, что такое рекурсия на примерах❗️ Если формат зайдет, то продолжим в том же духе! https://www.youtube.com/watch?v=w3FlW2THtUk

🔐 Модуль secrets в Python: Защита вашей информации ✨ Модуль secrets предоставляет инструменты для создания безопасных случайных данных, сложнее предсказать. 🔑 Функции модуля secrets: 1. secrets.choice(sequence): Выбирает случайный элемент из последовательности. Полезно для генерации случайных выборок или паролей из определенного набора символов. 2. secrets.randbelow(n): Возвращает случайное число от 0 до n-1. Используется для генерации случайных чисел в определенном диапазоне. 3. secrets.randbits(k): Генерирует k случайных битов. Полезно для создания случайных битовых строк или чисел. 4. secrets.token_bytes(nbytes=None): Генерирует безопасную случайную последовательность байтов длиной nbytes (по умолчанию - 32 байта). 5. secrets.token_hex(nbytes=None): Генерирует безопасную случайную строку в шестнадцатеричном формате длиной nbytes (по умолчанию - 32 байта). 6. secrets.token_urlsafe(nbytes=None): Генерирует безопасную случайную URL-совместимую строку длиной nbytes (по умолчанию - 32 байта). 7. secrets.compare_digest(a, b): Сравнивает две строки для предотвращения временных атак. Это полезно при сравнении хэшей паролей или токенов без утечки информации о длине сравниваемых строк. 🔍 Почему использовать secrets лучше? - secrets предоставляет криптографически безопасные данные, что делает их сложными для предсказания. - Эти функции обеспечивают высокий уровень безопасности при генерации случайных данных, паролей и токенов в Python. Используйте модуль secrets для защиты вашей информации и обеспечения безопасности ваших данных в Python. 🔐✨

❕ Оператор моржа в Python :=❕ В программировании, оператор моржа в Python, также известный как оператор присваивания с услови
Оператор моржа в Python :=❕ В программировании, оператор моржа в Python, также известный как оператор присваивания с условием, является нововведением в версии Python 3.8. Он предоставляет удобный способ проверить условие и присвоить значение переменной, если условие истинно. Оператор моржа в Python обозначается двумя символами ":= ", за которыми следует символ ">" для сравнения. Этот оператор может быть использован в выражениях if и while, чтобы одновременно проверить условие и присвоить значение переменной. Например:
if (x := some_function()) > 10:
    print("x is greater than 10")
else:
    print("x is less than or equal to 10")
В этом примере, если значение, возвращаемое функцией some_function(), больше 10, то оно будет присвоено переменной x, и будет выведено сообщение "x is greater than 10". В противном случае будет выведено сообщение "x is less than or equal to 10". ➕ Преимущества использования оператора моржа Оператор моржа предлагает несколько преимуществ, которые могут значительно упростить кодирование. Во-первых, он позволяет объединить проверку условия и присваивание значения в одной строке, что делает код более компактным и легким для чтения. Во-вторых, он устраняет необходимость использования временных переменных для хранения результатов выражений, что уменьшает количество кода и повышает эффективность. Наконец, оператор моржа может быть использован в циклах, что позволяет более эффективно использовать ресурсы и улучшить производительность программы.