ITDEAL
前往频道在 Telegram
Разработка комплексных IT решений для бизнеса и частных заказчиков. Чат: @pybytes_chat Founder: @lunasantrope
显示更多1 198
订阅者
无数据24 小时
-67 天
-2030 天
帖子存档
1 198
Погружаемся в True, False и None в Python
📈 Python обладает тремя основными объектами, играющими ключевую роль в логике и управлении потоком программ: True, False и None.
- True и False являются экземплярами ти
па bool, который, в свою очередь, является подклассом int. Это означает, что они могут участвовать в математических выражениях как 1 и 0.
# Пример с математикой
результат = True + False # будет 1
😱 Создание подклассов для bool запрещено, чтобы обеспечить чистоту и предсказуемость кода.
➡️Взгляд на None и NoneType
None — это единственный экземпляр NoneType и представляет собой синглтон, указывающий на отсутствие значения. Эта особенность позволяет использовать None в качестве уникального индикатора "пустоты" или "ничего".
# Демонстрация None
a = None
print(a is None) # Выведет True
😠 Каждая функция в Python, которая не имеет явного return, по умолчанию возвращает None. Это важно для понимания поведения функций, которые не предназначены для возвращения значения.
def test_func():
pass
print(test_func() is None) # Выведет True
😎Понимание True, False и None необходимо для осознания логических операций и управления потоком в Python, что делает код более чистым и интуитивно понятным.
🔝 PyBytes Media | ✉ Telegram / 📷 Instagram / 📈Mentor Service1 198
Типизация в Python
😈 В последние годы Python сделал большой шаг вперёд, предоставив программистам возможность использовать аннотации типов. Это нововведение значительно упрощает жизнь разработчиков, делая код более читаемым и безопасным.
Примеры использования:
def greet(name: str) -> str:
return f"Привет, {name}!"
> Мы уточняем что функция принимает и возвращает строку
tasks: list[str] = ["python", "PyBytes"]
> tasks должен содержать только строки
configuration: dict[str, float] = {"volume": 0.5, "brightness": 0.8}
> В этом словаре все ключи это строки, а значения - числа с плавающей запятой
🔍 Преимущества аннотаций типов:
— Повышение читаемости кода
— Упрощение отладки
— Интеграция с инструментами статического анализа (Например MyPy)
🧑💻 Интеграция с современными библиотеками:
Аннотации типов отлично сочетаются с такими библиотеками, как Pydantic, которые используют типизацию для валидации данных и создания моделей данных с автоматическими проверками типов.
❗️Важно помнить:
Аннотации типов — это не более чем подсказки для разработчиков и инструментов статического анализа. Они не влияют на выполнение вашего кода, но служат мощным инструментом для предотвращения ошибок и улучшения качества кода.
🔝 PyBytes Media | ✉ Telegram / 📷 Instagram / 📈Mentor Service1 198
Управление ресурсами (
with в Python)
ℹ️Python предоставляет уникальный инструмент для эффективного управления ресурсами, который часто недооценивают. Это оператор with, который обеспечивает правильное управление ресурсами, такими как файлы, сетевые соединения и блокировки.
➡️with используется для оборачивания выполнения блока кода. Основное преимущество использования with заключается в том, что он гарантирует освобождение ресурсов после использования. Примеры:
with open('file.txt', 'r') as file:
data = file.read()
> Файл автоматически закроется после выхода из блока with.
😎Зачем это нужно? - Использование with позволяет избежать распространенных ошибок, таких как утечка ресурсов или их неправильное закрытие, особенно при возникновении исключений.
😱Под капотом - with работает с объектами, которые поддерживают контекстное управление. Это означает, что объект должен иметь методы __enter__ и __exit__. В методе __enter__ обычно происходит инициализация ресурса, а в __exit__ - его освобождение.
class ManagedResource:
def __enter__(self):
print("Resource is acquired.")
return self
def __exit__(self, exc_type, exc_value, traceback):
print("Resource is released.")
with ManagedResource() as resource:
print("Using the resource.")
> Вывод:
> Resource is acquired.
> Using the resource.
> Resource is released.
❤️🔥Интегрируйте эту практику в свои проекты для более чистого, безопасного и эффективного управления ресурсами.
🔝 PyBytes Media | ✉ Telegram / 📷 Instagram / 📈Mentor Service1 198
🚀 Ищем Разработчика!
👨💼 Специалист по разработке ПО, который знает Python. Нас инетресует Middle специалист.
Требования к знаниям:
➡️ Python 3.9+
➡️ aiogram 3.0
➡️ asyncio
➡️ aiohttp
➡️ postgresql
➡️ docker
➡️ docker compose
➡️ SQL / noSQL
➡️ sqlalchemy
➡️ alembic
➡️ typing
➡️ Портфолио
➡️ 18+
➡️ ООП
➡️ Коммуникабельность
➡️ Умение работать в команде
➡️ Ответственность
➡️ Умение воспринимать большие нагрузки
👨💼 Оклад от 800$ и выше
🤖 Контакты @lunasantrope
1 198
Эффективность в каждой строке (Итераторы и Генераторы)
➡️Python предоставляет мощные инструменты для работы с данными - итераторы и генераторы. Они оптимизируют использование памяти и упрощают код.
🧐Итераторы - это объекты, обеспечивающие проход по элементам коллекции по одному за раз. Метод
__iter__() вызывается для создания итератора, а __next__() - для доступа к следующему элементу. При достижении конца коллекции, __next__() вызывает исключение StopIteration (Эта ошибка автоматически обрабатывается такими конструкциями как for).
my_list = [1, 2, 3]
iterator = iter(my_list) # __iter__() вызывается здесь
print(next(iterator)) # __next__() вызывается здесь
🙉Генераторы - это упрощенные итераторы, создаваемые с помощью функций и выражений. Когда вы вызываете генератор, Python возвращает объект-итератор. Каждый вызов функции next() для этого итератора возобновляет выполнение функции-генератора с того места, где было последнее слово yield, и продолжается до следующего.
def my_generator(n):
for i in range(n):
yield i ** 3
gen = my_generator(3) # Возвращает итератор
print(next(gen)) # Возобновляет выполнение до следующего yield
🥰Используйте эти концепции для создания более оптимизированного и чистого кода.
🔝 PyBytes Media | ✉ Telegram / 📷 Instagram / 📈Mentor Service1 198
Разнится между "is" и "=="
ℹ️В Python есть два основных оператора равенства. Иметь представление о разнице их применения и работы - критически важно. В будущем - это сэкономит вам не один час при поиске бага.
_________ is _________
🔗Все ваши переменные, классы, функции, и т.д. находятся где то в памяти компьютера. Оператор сравнения is проверяет, что бы два объекта ссылались на один и тот же адрес памяти. Другими словами, вы проверяете что бы ваши объекты являлись одним и тем же.
_________ == _________
🟰Любой объект в python содержит информацию. Это могут быть как атрибуты добавленные программистом, так и скрытые данные от самого python. Оператор равенства == проверяет, что бы два объекта содержали одну и ту же информацию.
dict is dict
> True
🤨 dict всегда ссылается на один и тот же класс в памяти, поэтому мы получаем True.
dict() is dict()
> False
🤨 При вызове класса dict, мы получаем новый экземпляр класса dict. Python создает наш экземпляр в новом отделе памяти, по этому 2 разных экземпляра не являются одним и тем же.
dict() == dict()
> True
🤨 Оба экземпляра класса dict пустые и не содержат разнящихся данных, так что мы получаем True.
❤️🔥Ожидайте новых постов
🔝 PyBytes Media | ✉ Telegram / 📷 Instagram / 📈Mentor Service1 198
🚀 Ищем Разработчика!
👨💼 Специалист по разработке ПО, который знает Python. Нас инетресует Middle специалист.
Требования к знаниям:
➡️ Python 3.9+
➡️ aiogram 3.0
➡️ asyncio
➡️ aiohttp
➡️ postgresql
➡️ docker
➡️ docker compose
➡️ SQL / noSQL
➡️ sqlalchemy
➡️ alembic
➡️ typing
➡️ Портфолио
➡️ 18+
➡️ ООП
➡️ Коммуникабельность
➡️ Умение работать в команде
➡️ Ответственность
➡️ Умение воспринимать большие нагрузки
Оклад будет оговорен в зависимости от уровня навыков специалиста, а также будет предложена система PoW
🤖 Контакты @lunasantrope
1 198
Выводи данные как профи (String formatting)
➡️Python предоставляет множество инструментов для быстрой и эффективной разработки. Однако многие из них остаются в тени. Одним из таких инструментов является форматирование строк, хорошее его понимание, сделает ваш код более читаемым, и быстрым в написании.
🧐 format - является встроенной функцией python, используется для форматирования и стилизации строк. Она принимает основной объект (число, строку и т.д.) и строку формата, определяющую, как именно следует представить объект. Примеры использования:
format(3.14159, ".2f")
> "3.14"
format(3, "04d")
> "0003"
format(3, "#06b")
> "0b0011"
🙉Ещё меньше кода? - Да.
Что делать когда вам нужно добавить отформатированные значения в шаблон текста? Для этого вы можете использовать f-strings. Просто укажите формат после «:»
f"pi ≈ {math.pi:.2f}"
> "pi ≈ 3.14"
name = "PyBytes"
f"Первые две буквы - {name:.2s}"
> "Первые две буквы - Py"
😎Ниже список часто используемых форматеров (изменяйте значения под себя):
format("PyBytes", "_^11") # по центру
> "__PyBytes__"
format("PyBytes", "_<11") # по левому краю
> "PyBytes____"
format("PyBytes", "_>11") # по правому краю
> "____PyBytes"
format("PyBytes", ".2s") # обрезание
> "Py"
format(13.123, ".1f") # округление
> "13.1"
format(123123123, ",d") # большие числа
> "123,123,123"
🤓Под капотом
Перечисленные методы (format и f-string) полагаются на дандер метод __format__ Его даже можно вызвать на прямую:
"PyBytes".__format__(".2s")
> "Py"
Определив этот метод в вашем классе, вы сможете использовать форматирование:
class A:
def __format__(self, form):
return form
a = A()
f"`А` это `{a:эхо форматер}`"
> "`А` это `эхо форматер`"
❤️🔥Внедрите эти методы в вашем проекте и будьте готовы к новым публикациям, чтобы активно развивать свои навыки разработчика
🔝 PyBytes Media | ✉ Telegram / 📷 Instagram / 📈Mentor Service1 198
🔥 Призы были высланы победителям, ну а фото мерча от победителя с 1-ого места мы получим в течении 14 дней (доставка)
Спасибо за участие и ждите новых евентов :)
1 198
➡️ User ID победителей:
1️⃣ 1963756461
2️⃣ 710580176
3️⃣ 6418039524
Скидывайте подтверждения из @userinfobot
1 198
Ловите файл с участниками. Выгружены USER_ID так как не у всех есть USERNAME.
Проверить свое наличие в списках можно через @userinfobot
