Please open Telegram to view this post
VIEW IN TELEGRAM
🤣90🔥57😁16❤5💊1
30 Kubernetes туториалов
Нашёл 30 действительно полезных руководств. Каждое из них фокусируется на ключевом концепте, инструменте или лучших практиках
👉 @PythonPortal
Нашёл 30 действительно полезных руководств. Каждое из них фокусируется на ключевом концепте, инструменте или лучших практиках
1. Архитектура Kubernetes
2. High Availability (HA)
3. Best practices по дизайну и настройке кластера
4. Minikube
5. Kubeadm
6. Файл kubeconfig
7. Кластер на Vagrant VM
8. eksctl для AWS EKS
9. kubectl и контексты
10. Ручная сборка кластера Kubernetes
11. Etcd: бэкап и восстановление
12. Pod в Kubernetes
13. Init-контейнеры
14. DaemonSet
15. Жизненный цикл Pod’а
16. Ingress в Kubernetes
17. Nginx Ingress Controller
18. YAML-манифесты для K8s
19. Alertmanager
20. EFK стек (Elasticsearch, Fluentd, Kibana)
21. Логирование в Kubernetes
22. Kustomize
23. Sealed Secrets
24. Docker-образ в Pod’е
25. Jenkins Build Agents в K8s
26. Secrets и ConfigMap через Kustomize
27. Деплой Argo CD через Helm
28. Установка Helm в Kubernetes
29. MongoDB в Kubernetes
30. HashiCorp Vault в Kubernetes
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤8🌚3🤔1
Худшие 3 однострочника в Python, которых стоит избегать
1. List comprehension для побочных эффектов
List comprehension создаёт список, а не «побочки». В итоге получаем непонятный список из None.
2. Сжатие функции в одну строчку
Формально это работает, но даже простая логика становится хуже читаемой.
3. Безумие с точками с запятой
Пихать всё в одну строчку через
👉 @PythonPortal
1. List comprehension для побочных эффектов
data = [print(i**2) for i in range(100) if i % 2 == 0]
List comprehension создаёт список, а не «побочки». В итоге получаем непонятный список из None.
2. Сжатие функции в одну строчку
def f(a, b=1): return a * b if a > 0 else a + b
Формально это работает, но даже простая логика становится хуже читаемой.
3. Безумие с точками с запятой
a = 1; b = 2; c = a + b; print(c * 2 ** a + b)
Пихать всё в одну строчку через
;
это убийство читаемости. Разбей на несколько строк, и всем станет легче.Please open Telegram to view this post
VIEW IN TELEGRAM
👍38❤18
This media is not supported in your browser
VIEW IN TELEGRAM
Учись программировать, играя
Codédex выпустили новую версию своей платформы
Это интерактивный мир, где ты выбираешь приключение, проходишь миссии, апаешь уровень, зарабатываешь бейджи, тренируешься и создаёшь проекты
То, что они сделали это реально круто😦
Думаю, самое простое что можно сделать — поддержать их запуск на Product Hunt, оставив голос
👉 @PythonPortal
Codédex выпустили новую версию своей платформы
Это интерактивный мир, где ты выбираешь приключение, проходишь миссии, апаешь уровень, зарабатываешь бейджи, тренируешься и создаёшь проекты
То, что они сделали это реально круто
Думаю, самое простое что можно сделать — поддержать их запуск на Product Hunt, оставив голос
Please open Telegram to view this post
VIEW IN TELEGRAM
❤39👍13👀4
Please open Telegram to view this post
VIEW IN TELEGRAM
😁49❤9🤣6
Я давно знал про
Но только сегодня узнал, что можно задать значение по умолчанию для всех ключей
Я думал, что всегда нужно инициализировать словарь так, чтобы все ключи указывали на🌟
👉 @PythonPortal
dict.fromkeys
в PythonНо только сегодня узнал, что можно задать значение по умолчанию для всех ключей
Я думал, что всегда нужно инициализировать словарь так, чтобы все ключи указывали на
None
Please open Telegram to view this post
VIEW IN TELEGRAM
❤45👍16🔥10
Media is too big
VIEW IN TELEGRAM
Эта библиотека реально взлетит, и вот почему
Она лучше всего подходит для создания чат-бота, который не галлюцинирует и умеет отвечать на вопросы.
Она open-source, и чтобы её запустить, достаточно пары строк кода.
Смотри видео с примером
GitHub: emcie-co/parlant
Каждая компания, либо уже делает, либо использует чат-бота. Эта библиотека может заменить тонны кода и при этом дать куда более качественный результат.🌼
👉 @PythonPortal
Она лучше всего подходит для создания чат-бота, который не галлюцинирует и умеет отвечать на вопросы.
Она open-source, и чтобы её запустить, достаточно пары строк кода.
Смотри видео с примером
GitHub: emcie-co/parlant
Каждая компания, либо уже делает, либо использует чат-бота. Эта библиотека может заменить тонны кода и при этом дать куда более качественный результат.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤24🔥4👍2🤣1
image_2025-08-17_09-32-25.png
983.2 KB
Шпаргалка для собеседования по Python
1. Swap переменных без временной
2. Однострочный if-else (тернарный)
3. List Comprehension
4. Set и Dict Comprehension
5. Наиболее частый элемент в списке
6. Объединение словарей (Python 3.9+)
7. Возврат нескольких значений
8. Использование zip для итерации по двум спискам
9. «Выпрямление» вложенных списков
10. Значения по умолчанию в словаре
11. Лямбда в одну строку
12. enumerate с индексом
13. Сортировка по ключу или значению
14. Чтение строк файла в список
15. Type Hints
👉 @PythonPortal
1. Swap переменных без временной
a, b = 5, 10
a, b = b, a
2. Однострочный if-else (тернарный)
result = "Even" if x % 2 == 0 else "Odd"
3. List Comprehension
squares = [x**2 for x in range(10)]
evens = [x for x in range(10) if x % 2 == 0]
4. Set и Dict Comprehension
unique = {x for x in [1,2,2,3]} # удалить дубликаты
squares = {x: x**2 for x in range(5)} # dict comprehension
5. Наиболее частый элемент в списке
from collections import Counter
most_common = Counter(['a','b','a','c']).most_common(1)[0][0]
6. Объединение словарей (Python 3.9+)
a = {'x': 1}
b = {'y': 2}
merged = a | b
7. Возврат нескольких значений
def stats(x):
return max(x), min(x), sum(x)
high, low, total = stats([1, 2, 3])
8. Использование zip для итерации по двум спискам
names = ['a', 'b']
scores = [90, 85]
for n, s in zip(names, scores):
print(f"{n}: {s}")
9. «Выпрямление» вложенных списков
nested = [[1,2], [3,4]]
flat = [item for sublist in nested for item in sublist]
10. Значения по умолчанию в словаре
from collections import defaultdict
d = defaultdict(int)
d['apple'] += 1 # без KeyError
11. Лямбда в одну строку
square = lambda x: x**2
print(square(4))
12. enumerate с индексом
for i, v in enumerate(['a', 'b', 'c']):
print(i, v)
13. Сортировка по ключу или значению
d = {'a': 3, 'b': 1, 'c': 2}
sorted_by_val = sorted(d.items(), key=lambda x: x[1])
14. Чтение строк файла в список
with open('file.txt') as f:
lines = f.read().splitlines()
15. Type Hints
def add(x: int, y: int) -> int:
return x + y
Please open Telegram to view this post
VIEW IN TELEGRAM
👍50❤20🔥11😁1
Нашел на Хабре годную статью 👧
Там показано, как собрать своего оффлайн голосового AI-ассистента всего за вечер
Микрофон слушает тебя, Whisper переводит речь в текст, локальная LLM отвечает, а gTTS всё это озвучивает
Полностью кастомный и без интернета
Код и гайд тут — Habr
Репо: тут
👉 @PythonPortal
Там показано, как собрать своего оффлайн голосового AI-ассистента всего за вечер
Микрофон слушает тебя, Whisper переводит речь в текст, локальная LLM отвечает, а gTTS всё это озвучивает
Полностью кастомный и без интернета
Код и гайд тут — Habr
Репо: тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍39❤13🔥4
Автоформатирование текста с помощью textwrap
В Python есть модуль textwrap, который упрощает работу с длинными строками. Он автоматически разбивает текст на заданную ширину, чтобы он выглядел аккуратно и легко читался, будь то вывод в консоли, логи или отчёты.
Пример кода:
Вывод:
Когда пригодится?
- автоматический перенос строк
- форматирование текста в CLI-программах
- подготовка читаемых логов, email или документации
👉 @PythonPortal
В Python есть модуль textwrap, который упрощает работу с длинными строками. Он автоматически разбивает текст на заданную ширину, чтобы он выглядел аккуратно и легко читался, будь то вывод в консоли, логи или отчёты.
Пример кода:
import textwrap
text = "Python — универсальный язык, который подходит для веба, анализа данных, автоматизации и многого другого."
result = textwrap.fill(text, width=40)
print(result)
Вывод:
Python — универсальный язык, который
подходит для веба, анализа данных,
автоматизации и многого другого.
Когда пригодится?
- автоматический перенос строк
- форматирование текста в CLI-программах
- подготовка читаемых логов, email или документации
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29👍10❤6
PyTorch против TensorFlow — новое исследование расставило точки над i
PyTorch → примерно на 25% быстрее в обучении и на ~78% быстрее в инференсе. Проще для ресёрча
TensorFlow → сильнее в продакшене (мобилки, браузер, сервера)
Полный обзор читай тут
👉 @PythonPortal
PyTorch → примерно на 25% быстрее в обучении и на ~78% быстрее в инференсе. Проще для ресёрча
TensorFlow → сильнее в продакшене (мобилки, браузер, сервера)
Полный обзор читай тут
Please open Telegram to view this post
VIEW IN TELEGRAM
❤35👍6🤝1
photo_2025-08-19_07-28-17.jpg
186.3 KB
Шпаргалка по регулярным выражениям
В ней собрано, как работают якори, классы символов, кванторы, диапазоны, утверждения, спецсимволы, модификаторы и подстановки, плюс примеры готовых шаблонов вроде поиска дат, e-mail или HTML-тегов.
Пригодится👍
👉 @PythonPortal
В ней собрано, как работают якори, классы символов, кванторы, диапазоны, утверждения, спецсимволы, модификаторы и подстановки, плюс примеры готовых шаблонов вроде поиска дат, e-mail или HTML-тегов.
Пригодится
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23❤10🏆5
Строй полноценные full-stack веб-приложения, используя только Python
Пиши полностью готовые приложения с фронтендом и бэкендом на Python без необходимости учить JavaScript или вести отдельные кодовые базы.
reflex это фреймворк на Python, который позволяет делать фронт и бэк одним языком. ты пишешь UI, логику, состояние, всё в Python, а Reflex сам компилит интерфейс на React/Next.js и запускает backend на FastAPI с WebSocket’ами для реактивности
Полностью опенсорс😋
👉 @PythonPortal
Пиши полностью готовые приложения с фронтендом и бэкендом на Python без необходимости учить JavaScript или вести отдельные кодовые базы.
reflex это фреймворк на Python, который позволяет делать фронт и бэк одним языком. ты пишешь UI, логику, состояние, всё в Python, а Reflex сам компилит интерфейс на React/Next.js и запускает backend на FastAPI с WebSocket’ами для реактивности
Полностью опенсорс
Please open Telegram to view this post
VIEW IN TELEGRAM
❤26👍12🤔6😁4🤝1
FastAPI теперь официально самый популярный веб-фреймворк среди Python-разработчиков 🎉
А вот ещё несколько интересных фактов из свежего опроса State of Python 2025 от JetBrains:
> 51% используют Python для работы с данными
> 46% применяют его для веб-разработки
> Половина сообщества — новички
> 83% всё ещё сидят на старых версиях Python
Подробный разбор: https://jb.gg/python-25
👉 @PythonPortal
А вот ещё несколько интересных фактов из свежего опроса State of Python 2025 от JetBrains:
> 51% используют Python для работы с данными
> 46% применяют его для веб-разработки
> Половина сообщества — новички
> 83% всё ещё сидят на старых версиях Python
Подробный разбор: https://jb.gg/python-25
Please open Telegram to view this post
VIEW IN TELEGRAM
👍40❤18🔥6🤔1
Совет по Python:
Вы можете заставить аргументы быть только позиционными, используя символ
👉 @PythonPortal
Вы можете заставить аргументы быть только позиционными, используя символ
/
в сигнатуре функции.def add(x, y, /):
return x + y
add(1, 2)
add(x=1, y=2) # TypeError: add() got some positional-only arguments passed as keyword arguments: 'x, y'
Please open Telegram to view this post
VIEW IN TELEGRAM
❤25👍11🌭4🤔2
Шпаргалка по очистке данных в Python Pandas
1. Обзор данных
2. Работа с пропусками и дубликатами
3. Переименование и приведение типов
4. Фильтрация и выборка
5. Сортировка и группировка
6. Операции с колонками
7. Сохранение очищенных данных
👉 @PythonPortal
1. Обзор данных
import pandas as pd
df = pd.read_csv('data.csv') # Загрузить CSV
df.head(5) # Первые 5 строк
df.info() # Типы данных и количество null
df.describe() # Сводная статистика
2. Работа с пропусками и дубликатами
df.isnull().sum() # Посчитать пропуски
df.dropna() # Удалить строки с null
df.fillna(0) # Заполнить пропуски нулями
df.duplicated().sum() # Посчитать дубликаты
df.drop_duplicates() # Удалить дубликаты
3. Переименование и приведение типов
df.rename(columns={'old': 'new'}) # Переименовать колонку
df.astype({'col': 'int'}) # Сменить тип данных
df.columns.str.strip() # Убрать пробелы
4. Фильтрация и выборка
df.loc[df['col'] > 100] # Фильтр по условию
df.iloc[0:5] # Выбор по индексу строк
df['col'].isin(['A', 'B']) # Фильтр по значениям
5. Сортировка и группировка
df.sort_values('col') # Сортировка по возрастанию
df.groupby('group')['val'].mean() # Группировка и агрегация
df['col'].value_counts() # Подсчёт уникальных значений
6. Операции с колонками
df['new'] = df['col1'] + df['col2'] # Новая колонка
df['col'] = df['col'].apply(lambda x: x*2) # Применить функцию
df.drop('col', axis=1) # Удалить колонку
7. Сохранение очищенных данных
df.to_csv('cleaned.csv', index=False) # Экспорт в CSV
Please open Telegram to view this post
VIEW IN TELEGRAM
❤29👍11🏆5👀1
PyAutoGUI
Крайне любопытная библиотека языка Python, позволяющая превратить твой ПК в автоматизированную систему
За пару строчек кода можно заставить скрипт сделать скриншот, заставить мышку навести на нужную точку на экране, взаимодействовать с различными параметрами окон, написать слово или целый абзац или даже загуглить за тебя🚬
Вот так можно создать простейший кликер:
Документация тут: https://pyautogui.readthedocs.io/en/latest/
👉 @PythonPortal
Крайне любопытная библиотека языка Python, позволяющая превратить твой ПК в автоматизированную систему
За пару строчек кода можно заставить скрипт сделать скриншот, заставить мышку навести на нужную точку на экране, взаимодействовать с различными параметрами окон, написать слово или целый абзац или даже загуглить за тебя
Вот так можно создать простейший кликер:
import pyautogui
import time
def click():
time.sleep(0.1)
pyautogui.click()
def main():
for i in range(20):
click()
main()
Документация тут: https://pyautogui.readthedocs.io/en/latest/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54❤19🔥4😁4