byteofpython | Unsorted

Telegram-канал byteofpython - 🐍 Укус питона 🐍

2619

🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки. 👽 Админ - @it_dashka 🔊 Купить рекламу: https://telega.in/c/byteofpython 👉 Чат: @abyteofpython 👉 Поделиться с друзьями: @byteofpython

Subscribe to a channel

🐍 Укус питона 🐍

🔥Pyrogram (в простонародье "Пирог") это мощная библиотека для создания так называемых User Ботов для телеграмма.

🤖ЮзерБоты - это скрипты которые работают от лица личного аккаунта и могут выполнять все тоже что и человек.

➡️Например, можно запрограммировать автоответчик, который будет автоматически отвечать на определенные сообщения.

➡️Но в основном ЮзерБоты используют как дополнения к телеграму, например, встроенный калькулятор. Вы скорее всего уже видели их. Кто-то пишет комманду, скажем, .calc 2+2, а скрипт все считает и изменяя сообщение, выводит ответ.

Читать полностью…

🐍 Укус питона 🐍

Станьте AI-разработчиком на Python и зарабатывайте от 150.000₽ в месяц 🔥🔥🔥

Мы научим вас создавать и тренировать нейронные сети, и вы сможете:

1️⃣ Устроиться разработчиком в крупную компанию и зарабатывать от 150 тыс. ₽ в месяц
2️⃣ Разрабатывать такие проекты на заказ и зарабатывать от 500 тыс. ₽ за проект
3️⃣ Создать нейро-сотрудника в вашей компании и вырасти на +30-100% в зарплате

На интенсиве будет много практики: создадим 9 нейросетей за 1 вечер:

🧬 Оценка выброса CO2 по параметрам машины
🧬 Сегментация изображения для робота доставщика
🧬 Трекинг людей на видео
🧬 Распознавание речи
и другие

Ведущий интенсива - Senior AI-разработчик и основатель Университета искусственного интеллекта

🔥 Регистрируйтесь на бесплатный интенсив! Встречаемся в ближайшую среду. Вы узнаете, как освоить самую востребованную профессию и гарантированно зарабатывать!

Читать полностью…

🐍 Укус питона 🐍

➡️Что такое cProfile?

cProfile - это модуль в стандартной библиотеке Python, который предоставляет возможность профилирования кода. Он позволяет измерить время выполнения каждой функции в вашем коде, а также количество вызовов каждой функции. Это делает его отличным инструментом для определения тех мест в вашем коде, которые являются узкими местами и могут быть оптимизированы.

➡️Как использовать cProfile?

Использование cProfile довольно просто. Вы просто импортируете модуль и вызываете функцию cProfile.run(), передавая ей строку кода, который вы хотите проанализировать. Вы также можете использовать cProfile в качестве командной строки, передав ему имя файла Python, который вы хотите профилировать. Результаты профилирования могут быть отсортированы по различным критериям, таким как общее время выполнения, время выполнения на вызов и количество вызовов.

➡️Пример использования cProfile:

import cProfile

def sum_of_numbers():
return sum(range(100000))

cProfile.run('sum_of_numbers()')

Читать полностью…

🐍 Укус питона 🐍

🖥 Упорство - это главное

Читать полностью…

🐍 Укус питона 🐍

✈️Датаклассы - это удобный способ создавать классы для хранения информации. Они позволяют делать это с минимальным количеством кода.

➡️ Вот как это работает:

from dataclasses import dataclass

@dataclass
class Point:
x: float
y: float
z: float

point = Point(1.5, 2.0, -3.7)

print(point) # Вывод: Point(x=1.5, y=2.0, z=-3.7)
print(point.x) # Вывод: 1.5
print(point.y) # Вывод: 2.0
print(point.z) # Вывод: -3.7


➡️Использование dataclasses позволяет существенно экономить время разработчика за счет избежания необходимости создавать множество методов для работы с данными, что делает код более чистым и понятным, повышая его читаемость. Благодаря этому, процесс понимания и поддержки кода становится более простым.

➡️Кроме того, dataclasses легко интегрируются с другими библиотеками и инструментами Python, что обеспечивает удобство в разработке и совместимость с другими компонентами проекта.

Читать полностью…

🐍 Укус питона 🐍

✈️Функция range() в Python - это важный инструмент для создания последовательности чисел. Хотя она часто используется в связке с циклом for, есть и другие способы, как можно использовать эту функцию.

➡️Использование range() в списковых включениях

Списковые включения - это мощный инструмент Python, который позволяет создавать списки в одну строку кода. Функция range() может быть использована в списковых включениях для создания списков, которые следуют определенной числовой последовательности. Например, [x for x in range(10)] создаст список чисел от 0 до 9.

➡️Использование range() в генераторах

Генераторы в Python - это специальный тип итераторов, который позволяет генерировать элементы "на лету", экономя память. Функцию range() можно использовать в генераторах для создания последовательностей чисел. Например, (x for x in range(10)) создаст генератор, который производит числа от 0 до 9.

Читать полностью…

🐍 Укус питона 🐍

Зачем нужно ключевое слово async в Python?

Ключевое слово async в Python используется для создания асинхронных функций (или корутин), которые позволяют выполнять задачи, не блокируя основной поток выполнения программы. Это особенно полезно для работы с такими операциями, как сетевые запросы, взаимодействие с базами данных или чтение/запись файлов.

Вот пример асинхронной функции:

import asyncio

async def fetch_data():
print("Fetching data...")
await asyncio.sleep(2) # симуляция длительной операции
print("Data fetched")
return "Data"

async def main():
result = await fetch_data()
print(result)

# запуск асинхронной функции
asyncio.run(main())

Как можно заметить, async идёт в паре с await, который приостанавливает выполнение fetch_data до завершения asyncio.sleep(2).

Читать полностью…

🐍 Укус питона 🐍

erid: LjN8KALxJ

Есть два стула…Python или Go. На примере Kubernetes

▶️ Как использовать k8s как API, даже не зная его устройства? 
▶️ Как создать при этом симбиоз между кодом и целым кластером?🤔
▶️ Как в k8s объединять бизнес-логику и инфраструктуру с помощью миллионов строк кода? 

Это можно делать и с помощью Golang, и с помощью Python. 
Расскажем и покажем как на бесплатном вебинаре от Слёрма 21 августа в 19:00 мск

А дальше — выбор за вами. Какой стул выберете?

Спикер: Виталий Лихачев, SRE в booking.com, ex-Avito Senior Software Engineer.

Подробности в боте @GolangPython_Bot
Присоединяйтесь!

Реклама. ООО "СЛЁРМ". ИНН 3652901451.

Читать полностью…

🐍 Укус питона 🐍

Зачем нужно ключевое слово async в Python?

Ключевое слово async в Python используется для создания асинхронных функций (или корутин), которые позволяют выполнять задачи, не блокируя основной поток выполнения программы. Это особенно полезно для работы с такими операциями, как сетевые запросы, взаимодействие с базами данных или чтение/запись файлов.

Вот пример асинхронной функции:

import asyncio

async def fetch_data():
print("Fetching data...")
await asyncio.sleep(2) # симуляция длительной операции
print("Data fetched")
return "Data"

async def main():
result = await fetch_data()
print(result)

# запуск асинхронной функции
asyncio.run(main())

Как можно заметить, async идёт в паре с await, который приостанавливает выполнение fetch_data до завершения asyncio.sleep(2).

Читать полностью…

🐍 Укус питона 🐍

➡️Что такое кеширование?

Кеширование позволяет сохранять результаты выполнения функций, избегая повторных вычислений. Это полезно, особенно если функция часто вызывается с одними и теми же данными или выполняет сложные операции.

➡️Как это сделать?

В 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 для улучшения производительности кода.

Читать полностью…

🐍 Укус питона 🐍

✈️ filter() - Это инструмент предоставляет фильтрацию элементов последовательности в соответствии с заданными критериями.

➡️ Что такое функция filter()?

Она принимает два параметра: функцию и итерируемый объект (например, список, кортеж или другую последовательность).

➡️ Где и зачем использовать функцию filter()?

- Фильтрации списка: Исключения элементов списка, не удовлетворяющих заданному условию.
- Устранения ненужных данных: Очистки данных от нежелательных значений или форматов.
- Обработки пользовательского ввода: Фильтрации ввода пользователя для удаления ошибочных или неподходящих значений.
- Фильтрации данных из баз данных: Выборки данных из базы в соответствии с критериями фильтрации.

➡️ Пример использования функции filter()

# Пример: отфильтровать список чисел, оставив только четные
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

def is_even(n):
return n % 2 == 0

even_numbers = list(filter(is_even, numbers))
print(even_numbers) # Вывод: [2, 4, 6, 8, 10]

Читать полностью…

🐍 Укус питона 🐍

Курс Слёрма «Python для инженеров»: когда 5 строк кода заменяют полчаса работы 

Научим вас автоматизировать задачи, которые годами решались вручную. Курс с обратной связью, 5 недель, старт 12 августа. 

После курса сможете сделать так, чтобы автоматически: 

▶Менялись конфигурации серверов и предоставлялся к ним доступ
▶Собирались, сводились и экспортировались нужные данные мониторинга 
▶Создавались базы данных из разных источников 
▶Генерировались ченджлоги прямо из коммитов
▶И многое другое

Формат курса: 

▶Видеолекции, онлайн-встречи со спикером и практические задания
▶Код-ревью, ответы на вопросы и обратная связь
▶Личный кабинет с короткими конспектами видеолекций
▶Постоянный чат со студентами, экспертами и куратором

Длительность — 5 недель. 
Старт — 12 августа. 

Посмотреть программу занятий и занять место на курсе — по ссылке

Читать полностью…

🐍 Укус питона 🐍

✈️ Модуль itertools — это инструмент для эффективной работы с интерациями в Python.

➡️ Основные функции itertools:

1. count(start, step): Генерирует бесконечную арифметическую прогрессию, начиная с заданного значения start и с указанным шагом step.

2. cycle(iterable): Бесконечно повторяет элементы из переданного итерируемого объекта.

3. chain(*iterables): Объединяет несколько итерируемых объектов в один последовательный поток.

4. zip_longest(*iterables, fillvalue=None): Объединяет элементы из различных итерируемых объектов

➡️ Пример использования:

import itertools

# Создаем бесконечную последовательность с шагом 2
counter = itertools.count(start=10, step=2)
for _ in range(5):
print(next(counter)) # Выведет числа: 10, 12, 14, 16, 18

# Объединяем несколько списков в один последовательный поток
letters = ['a', 'b', 'c']
numbers = [1, 2, 3]
combined = itertools.chain(letters, numbers)
print(list(combined)) # Выведет: ['a', 'b', 'c', 1, 2, 3]

Читать полностью…

🐍 Укус питона 🐍

разница между методами str и repr ?
Спросят с вероятностью 3%

Метод str:
- Цель: Возвращает строковое представление объекта, понятное и удобное для пользователя.
- Использование: Вызывается функцией str() и при использовании print().
- Предназначение: Для более дружественного и читаемого представления объекта.

Метод repr:
- Цель: Возвращает строку, представляющую объект официально и, по возможности, позволяющую воссоздать объект при передаче этой строки в eval().
- Использование: Вызывается функцией repr() и отображается интерактивной оболочкой Python для представления объектов.
- Предназначение: Для более точного и детализированного представления объекта, предназначенного для разработчиков.

Основные различия:
1. Контекст использования:
- str предназначен для удобного представления объекта пользователю.
- repr предназначен для официального представления объекта, полезного для отладки и разработки.

2. Вызываемые функции:
- str() и print() используют str.
- repr() и интерактивная оболочка Python используют repr.

3. Содержимое строки:
- str возвращает удобочитаемую строку.
- repr возвращает строку, которая может содержать больше технической информации и может использоваться для воссоздания объекта.

Примеры реализации обоих методов:

class Point:
def init(self, x, y):
self.x = x
self.y = y

def str(self):
return f"Point({self.x}, {self.y})"

def repr(self):
return f"Point({self.x}, {self.y})"

p = Point(1, 2)

# Использование str

print(str(p))  # Выведет: Point(1, 2)
print(p) # Выведет: Point(1, 2)

# Использование

 repr

print(repr(p)) # Выведет: Point(1, 2)


Таким образом, метод str возвращает понятное для пользователя строковое представление объекта, используемое функцией str() и print(), в то время как метод repr возвращает официальное строковое представление объекта, используемое функцией repr() и интерактивной оболочкой Python, и часто предназначен для отладки.

Читать полностью…

🐍 Укус питона 🐍

Jinja 2 - это шаблонный движок для языка программирования Python, предлагающий удобные инструменты для создания динамических веб-страниц и генерации контента на основе шаблонов.

➡️ Ключевые особенности Jinja 2

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

Еще одна важная особенность - использование условных операторов и циклов в шаблонах. Вы можете проверять условия и выполнять различные действия в зависимости от результатов проверок.

🔎 Кроме того, Jinja 2 поддерживает наследование шаблонов, что делает его чрезвычайно гибким в использовании. Вы можете создать базовый шаблон с общей структурой и стилями, а затем наследовать от него и создать дочерние шаблоны, наследующие все основные элементы базового шаблона. Это позволяет использовать код повторно и упрощает разработку и поддержку веб-приложений.

Читать полностью…

🐍 Укус питона 🐍

Понимание функции Keyboard.add_hotkey

Функция keyboard.add_hotkey() в Python позволяет назначить определенную функцию на сочетание клавиш, известное как горячая клавиша. Она принимает два основных аргумента: комбинацию клавиш и функцию, которая будет выполнена при нажатии этой комбинации. Синтаксис выглядит следующим образом: keyboard.add_hotkey(hotkey, callback, args=(), suppress=False, timeout=3, trigger_on_release=False). Горячая клавиша может состоять из одной клавиши, комбинации клавиш или даже последовательности нажатий.

Примеры использования Keyboard.add_hotkey

Функция keyboard.add_hotkey() очень полезна для автоматизации задач и повышения интерактивности ваших скриптов на Python. Например, ее можно использовать для создания простого кейлоггера, автоматизации создания скриншотов или назначения пользовательских ярлыков для определенных действий в вашем приложении на Python. Важно помнить о необходимости ответственного и этичного использования этой функции, учитывая возможные злоупотребления.

Практические примеры применения Keyboard.add_hotkey

Рассмотрим пример, в котором мы хотим вывести "Привет, Мир!" при нажатии сочетания клавиш 'Ctrl + H'. Сначала необходимо импортировать модуль keyboard. Если он не установлен, вы можете установить его с помощью pip. Затем определяем нашу функцию и добавляем горячую клавишу следующим образом:

import keyboard

def hello_world():
print("Привет, Мир!")

keyboard.add_hotkey('ctrl + h', hello_world)
keyboard.wait()

Читать полностью…

🐍 Укус питона 🐍

✈️Датаклассы - это удобный способ создавать классы для хранения информации. Они позволяют делать это с минимальным количеством кода. Например, если вы хотите хранить информацию о точке в трехмерном пространстве, вам не нужно писать много кода для создания класса и методов. Просто используйте dataclass, и Python сделает всю работу за вас.

➡️ Вот как это работает:

from dataclasses import dataclass

@dataclass
class Point:
x: float
y: float
z: float

point = Point(1.5, 2.0, -3.7)

print(point) # Вывод: Point(x=1.5, y=2.0, z=-3.7)
print(point.x) # Вывод: 1.5
print(point.y) # Вывод: 2.0
print(point.z) # Вывод: -3.7


➡️Использование dataclasses позволяет существенно экономить время разработчика за счет избежания необходимости создавать множество методов для работы с данными, что делает код более чистым и понятным, повышая его читаемость. Благодаря этому, процесс понимания и поддержки кода становится более простым.

Читать полностью…

🐍 Укус питона 🐍

Как звучат названия библиотек на русском.

Читать полностью…

🐍 Укус питона 🐍

📌 Чем let отличается от var ?

Ключевые слова let и var используются для объявления переменных, но между ними есть несколько важных различий, касающихся области видимости, поднятия (hoisting) и создания блока.

🤔 Область видимости (Scope)

Var:

Объявления переменных с использованием var имеют функциональную область видимости, что означает, что переменная, объявленная с помощью нее внутри функции, доступна везде в этой функции.

Let:

В отличие от var, let имеет блочную область видимости. Это означает, что переменная, объявленная с помощью нее в блоке (например, в цикле или условном операторе), будет доступна только в пределах этого блока.

🤔 Поднятие (Hoisting)

Var:

Переменные, объявленные с ее помощью, поднимаются в начало функции или скрипта. Это означает, что они могут быть использованы до своего объявления, хотя до инициализации они будут иметь значение undefined.

Let:

Переменные, объявленные с ее помощью, также поднимаются, но не инициализируются. Попытка доступа к такой переменной до её объявления приведет к ошибке ReferenceError. Это поведение известно как "временная мертвая зона" (temporal dead zone, TDZ).

🤔 Создание в глобальном контексте

Var:

Переменные, объявленные с ее помощью в глобальном контексте, становятся свойствами глобального объекта (window в браузерах).

Let:

Переменные, объявленные с ее помощью в глобальном контексте, не становятся свойствами глобального объекта.

🤔 Примеры:

if (true) {
var varVariable = "Я доступен везде в функции";
let letVariable = "Я доступен только в этом блоке";
}


console.log(varVariable); // Работает, потому что var имеет функциональную область видимости
console.log(letVariable); // Ошибка, потому что let имеет блочную область видимости


console.log(a); // undefined из-за поднятия
var a = 3;


console.log(b); // ReferenceError из-за временной мертвой зоны
let b = 4;


🤔 Итог:

let
предоставляет более строгую и предсказуемую область видимости переменных, что улучшает управляемость кодом и уменьшает вероятность ошибок, связанных с неожиданным доступом или изменением данных. var может быть полезен, когда нужна функциональная область видимости, но сейчас let и const (для объявления констант) являются предпочтительными вариантами для управления переменными.

В то время как var объявляет переменную, доступную во всей функции, а let ограничивает видимость переменной блоком, в котором она объявлена.

Читать полностью…

🐍 Укус питона 🐍

✈️Django ORM (Object-Relational Mapping) — это мощный инструмент, который позволяет разработчикам взаимодействовать с базой данных, используя объекты Python.

➡️Создание моделей

Одним из основных аспектов работы с Django ORM является создание моделей. Модель — это класс Python, который описывает структуру таблицы в базе данных. Django ORM автоматически создает таблицу в соответствии с заданной моделью. Модели могут включать поля, которые соответствуют столбцам таблицы, а также методы и связи с другими моделями. Определение модели в Django ORM интуитивно понятно и упрощает процесс разработки.

Вот пример создания модели в Django ORM:

from django.db import models

class Product(models.Model):
name = models.CharField(max_length=100)
price = models.DecimalField(max_digits=5, decimal_places=2)
description = models.TextField()


➡️Запросы к базе данных

С помощью Django ORM можно выполнять различные типы запросов, включая выборку данных, фильтрацию, сортировку и агрегирование.

Вот несколько примеров основных команд для выполнения запросов в Django ORM:

# Выборка всех объектов модели
products = Product.objects.all()

# Фильтрация объектов по условию
cheap_products = Product.objects.filter(price__lt=10)

# Сортировка объектов
sorted_products = Product.objects.order_by('-price')

# Агрегирование данных
total_price = Product.objects.aggregate(Sum('price'))


➡️Миграции базы данных

Еще одно важное преимущество Django ORM — это автоматическое создание и применение миграций базы данных. Миграции позволяют легко изменять структуру базы данных, добавлять новые таблицы, поля или изменять существующие. Django ORM отслеживает изменения в моделях и генерирует миграционные файлы, которые можно применить к базе данных. Это значительно упрощает процесс разработки и поддержки приложения.

Читать полностью…

🐍 Укус питона 🐍

➡️JSON (JavaScript Object Notation) - это универсальный формат для обмена данными между приложениями.

➡️Чтение JSON-данных в Python

Одной из основных операций при работе с JSON в Python является чтение данных из JSON-файла или строки. Для этого в Python есть модуль json, который предоставляет функции для преобразования JSON в Python-объекты и наоборот. Например, чтобы прочитать данные из JSON-файла, мы можем использовать функцию json.load():

import json

with open('data.json') as file:
data = json.load(file)


➡️Создание JSON-данных в Python

Помимо чтения JSON-данных, в Python мы также можем создавать и записывать JSON-данные. Для этого мы можем использовать функцию json.dump(). Например, допустим, у нас есть словарь Python, который мы хотим преобразовать в JSON-формат и записать в файл:

import json

data = {
'name': 'John',
'age': 30,
'city': 'New York'
}

with open('data.json', 'w') as file:
json.dump(data, file)

Читать полностью…

🐍 Укус питона 🐍

➡️Команда pip show

Команда 'pip show' позволяет получить подробную информацию о конкретном пакете Python. Она показывает название пакета, его версию, автора, домашнюю страницу, зависимости и многое другое.

Пример использования команды pip show:

pip show requests


➡️Команда pip search

Команда 'pip search' предоставляет возможность искать новые пакеты Python прямо из командной строки. Она позволяет разработчикам найти пакеты по ключевым словам, описанию или автору.

Пример использования команды pip search:

pip search data analysis


➡️Команда pip freeze

Команда 'pip freeze' позволяет создать файл со списком всех установленных пакетов Python и их версиями. Это полезно, когда вы хотите поделиться своим проектом с другими разработчиками или восстановить его на другой машине. Просто запустите 'pip freeze > requirements.txt' и получите файл, который можно передать другим, чтобы они могли легко установить все необходимые зависимости.

Пример использования команды pip freeze:

pip freeze > requirements.txt

Читать полностью…

🐍 Укус питона 🐍

🔎Иногда, при разработке программного обеспечения на Python, мы можем столкнуться с ситуациями, когда необходимо явно указать на наличие ошибки.

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

➡️Использование оператора raise

Оператор raise в Python позволяет нам создавать исключения вручную. Мы можем указать тип исключения и дополнительное сообщение, которое будет содержаться в исключении.

➡️Вот пример использования оператора raise:

def divide_numbers(a, b):
if b == 0:
raise ValueError("Делитель не может быть нулем")
return a / b

try:
result = divide_numbers(10, 0)
print("Результат:", result)
except ValueError as e:
print("Ошибка:", str(e))

Читать полностью…

🐍 Укус питона 🐍

➡️Boto3 помогает разработчикам упростить работу с AWS. Она предоставляет простой и понятный способ взаимодействия с различными сервисами AWS, такими как создание и настройка виртуальных серверов, управление файловым хранилищем, отправка сообщений и многое другое.

➡️Botocore представляет собой набор инструментов и клиентских библиотек для работы с Amazon Web Services (AWS). Она обеспечивает низкоуровневый доступ к различным сервисам AWS, таким как Amazon S3, Amazon EC2 и многим другим. Botocore позволяет разработчикам создавать, управлять и автоматизировать ресурсы в облаке AWS.

⬆️Библиотека botocore также является ключевым компонентом PyPI - крупнейшего репозитория пакетов Python. PyPI предоставляет доступ к миллионам пакетов, которые можно установить и использовать в своих проектах. Botocore позволяет разработчикам использовать пакеты, связанные с AWS, и управлять ими с помощью простого и удобного

Читать полностью…

🐍 Укус питона 🐍

🖥 Что означает some-variable ?

Двойное подчеркивание перед и после имени переменной в Python называется "dunder" (Double underscore) и используется для специальных методов и атрибутов, которые могут быть вызваны автоматически. Например, init - это специальный метод, который вызывается при создании экземпляра класса. Другие примеры включают str, len, call, iter, и так далее.

Также могут использоваться "dunder" атрибуты, такие как name, module, doc, file, dict, class, all и другие, которые предоставляют информацию о модуле, классе, функции или другом объекте.

Значение, которое присваивается такой переменной, зависит от контекста использования.

Например, name - это специальный атрибут, который содержит имя текущего модуля.

Обычно используйте двойное подчеркивание только для специальных методов и атрибутов, которые имеют специальный смысл в языке Python, и не используйте такие имена для своих собственных переменных, чтобы избежать конфликтов и неожиданного поведения

Читать полностью…

🐍 Укус питона 🐍

Хотите стать востребованным Python-разработчиком? Пройдите курс от Hexlet!

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

🎁 🏖 А до 31 июля вас ждет специальное предложение - скидка 35 000 р. на обучение и второй курс в подарок!

Вас ждут сотни упражнений, 4 проекта для портфолио на GitHub, а во время обучения вы также поучаствуете в Карьерном треке. 

Пройдите 5 бесплатных уроков и откройте для себя увлекательный процесс обучения. Поймите, насколько интересен и перспективен этот путь, и получите уникальную возможность продолжить обучение на полном курсе со скидкой!

Читать полностью…

🐍 Укус питона 🐍

Зачем нужно ключевое слово async в Python?

Ключевое слово async в Python используется для создания асинхронных функций (или корутин), которые позволяют выполнять задачи, не блокируя основной поток выполнения программы. Это особенно полезно для работы с такими операциями, как сетевые запросы, взаимодействие с базами данных или чтение/запись файлов.

Вот пример асинхронной функции:

import asyncio

async def fetch_data():
print("Fetching data...")
await asyncio.sleep(2) # симуляция длительной операции
print("Data fetched")
return "Data"

async def main():
result = await fetch_data()
print(result)

# запуск асинхронной функции
asyncio.run(main())

Как можно заметить, async идёт в паре с await, который приостанавливает выполнение fetch_data до завершения asyncio.sleep(2).

Читать полностью…

🐍 Укус питона 🐍

🔎 Keras — это высокоуровневая библиотека для создания нейронных сетей, написанная на Python. Она предлагает простой и интуитивно понятный интерфейс, что позволяет быстро разрабатывать и обучать глубокие нейронные сети.

Благодаря своей доступности и гибкости, Keras помогает разработчикам оперативно создавать и тестировать различные модели машинного обучения.

➡️ Преимущества Keras

У Keras есть множество преимуществ, которые делают его популярным среди специалистов в области машинного обучения. Во-первых, его API отличается простотой и понятностью, что делает его идеальным для новичков. Во-вторых, Keras предоставляет большое количество предварительно обученных моделей, которые можно применять для решения различных задач.

➡️ Возможности Keras

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

Читать полностью…

🐍 Укус питона 🐍

Jinja 2 - это шаблонный движок для языка программирования Python, предлагающий удобные инструменты для создания динамических веб-страниц и генерации контента на основе шаблонов.

➡️ Ключевые особенности Jinja 2

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

Еще одна важная особенность - использование условных операторов и циклов в шаблонах. Вы можете проверять условия и выполнять различные действия в зависимости от результатов проверок.

🔎 Кроме того, Jinja 2 поддерживает наследование шаблонов, что делает его чрезвычайно гибким в использовании. Вы можете создать базовый шаблон с общей структурой и стилями, а затем наследовать от него и создать дочерние шаблоны, наследующие все основные элементы базового шаблона. Это позволяет использовать код повторно и упрощает разработку и поддержку веб-приложений.

Читать полностью…

🐍 Укус питона 🐍

DevOps - это методология, объединяющая разработку и операционное обслуживание программного обеспечения.

🟢 Одним из ключевых преимуществ DevOps является ускорение процесса разработки и поставки программного обеспечения.

🔼Еще одно преимущество DevOps заключается в улучшении качества программного обеспечения. Автоматическое тестирование и непрерывная интеграция позволяют выявлять и устранять ошибки на ранних стадиях разработки, предотвращая возникновение серьезных проблем в продукте и повышая его надежность.

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

🕯 Роль DevOps инженера заключается в реализации принципов DevOps в компании.

Читать полностью…
Subscribe to a channel