Python/ django
61.3K subscribers
2.2K photos
96 videos
48 files
2.92K links
по всем вопросам @haarrp

@itchannels_telegram - 🔥 все ит-каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - 📚

@pythonlbooks

РКН: clck.ru/3FmxmM
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Walrus оператор := — присвоение прямо в выражении

В Python есть малоизвестная фишка: можно использовать оператор присваивания := (его ещё называют «walrus»). Он позволяет присваивать значение прямо внутри выражения. Это делает код короче и избавляет от повторных вызовов функций.

📌 Особенности:
• Работает в while, if, list comprehension.
• Удобен для сокращения кода и избежания дублирования.
• Но злоупотребление может сделать код менее читаемым.

🟢Пример: удобно при чтении строк из файла или работе с регулярными выражениями.


Чтение строк из файла с walrus-оператором

def read_file(path):
with open(path) as f:
while (line := f.readline()):
print("Строка:", line.strip())

# Поиск совпадения через regex
import re
pattern = re.compile(r"\d+")

if (match := pattern.search("abc123xyz")):
print("Нашли число:", match.group())

# Применение в list comprehension
nums = [s for s in ["42", "hello", "100"] if (n := s.isdigit())]

print(nums) # ['42', '100']


📌 Больше фишек Python

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
15👍8🔥7😱1
🐍 Полезный совет по Python: используйте "".join() вместо конкатенации строк в цикле

Многие новички пишут так:


words = ["Python", "очень", "крут"]
result = ""
for w in words:
result += w + " "
print(result)


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

🚀 Правильный способ — использовать " ".join():


words = ["Python", "очень", "крут"]
result = " ".join(words)
print(result)


💡 Преимущества:

- Быстрее и эффективнее на больших списках
- Код чище и короче
-Можно легко задавать разделитель (пробел, запятая, \n)

📊 Пример:


lines = ["строка 1", "строка 2", "строка 3"]
text = "\n".join(lines)
print(text)


Вывод:

строка 1
строка 2
строка 3


📌 Итог
Используйте "".join() для объединения строк из списка — это питонично, быстро и удобно.
👍307🔥6😁1
🚀 Docker + Python полезный совет

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


# Этап сборки зависимостей
FROM python:3.12-slim AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --user -r requirements.txt

# Финальный минимальный образ
FROM python:3.12-slim
WORKDIR /app
COPY --from=builder /root/.local /root/.local
COPY . .

ENV PATH=/root/.local/bin:$PATH
CMD ["python", "app.py"]


💡 Такой подход уменьшает размер образа и ускоряет деплой.
Вместо гигабайт вы получаете лёгкий production-контейнер с только нужным кодом и либами.

@pythonl
👍197🔥5😱1
🖥 Полный проект с нуля: клон голоса на Python

🔊 Клонирование голоса на Python с нуля: пошаговый разбор, рабочий код, проверка сходства и защита с водяными знаками.

Полное руководство для разработчиков по созданию собственного проекта voice cloning.

📌 Читать

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥1😁1