About Python [ru]
6.32K subscribers
314 photos
1 video
1.64K links
Все о Python: алгоритмы, паттерны проектирования, задачи, нейронные сети

Канал на бирже - https://telega.in/c/python_tesst

По вопросам рекламы или разработки: @g_abashkin
Download Telegram
🕵️‍♂️ Когда твоя работа зависит от Василия

Задача вроде простая, но всё стопорится, потому что «это знает только Василий, он тут со времён динозавров». Никакой документации, только магия в его голове. В итоге — пока он не ответит, ты зависаешь, а проект буксует. Звучит знакомо?

⚙️ Если так, пора разорвать этот порочный круг. Вместо бесконечных вопросов начни собирать всё в одну базу знаний — хоть в Notion, хоть на салфетках. Предложи команде попробовать парное программирование: пока Василий творит чудеса, ты уже разбираешься, как эти фокусы повторить.
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 7 продвинутых приемов pandas для науки о данных

Статья делится 7 продвинутыми приёмами работы с pandas для оптимизации задач анализа данных. Рассматриваются, например, итерации по группам с df.groupby().iter() и другие способы упростить повторяющиеся операции.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Что такое генераторы в Python и зачем они нужны?

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

➡️ Пример:

# Генератор для получения первых N чисел Фибоначчи
def fibonacci(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b

# Используем генератор
for num in fibonacci(5):
print(num)

# Вывод: 0, 1, 1, 2, 3


🗣️ В этом примере генератор fibonacci вычисляет числа по запросу, вместо сохранения всех значений в памяти. Это делает генераторы особенно удобными для работы с потоками данных или бесконечными последовательностями.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Увеличиваем размер выборки и прокрашиваем серые метрики: неочевидная ошибка при проведении А/B — тестов

В этой статье я постараюсь простым языком рассказать о последствиях, к которым может привести слепой запуск A/B-тестов без предварительного А/А-тестирования.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Задачка по Python

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

➡️ Пример:

print(reverse_words("Hello World"))  # Ожидаемый результат: "World Hello"
print(reverse_words("Python is great")) # Ожидаемый результат: "great is Python"


Решение задачи ⬇️

def reverse_words(sentence):
return ' '.join(sentence.split()[::-1])

# Пример использования:
print(reverse_words("Hello World")) # Ожидаемый результат: "World Hello"
print(reverse_words("Python is great")) # Ожидаемый результат: "great is Python"
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Что такое метаклассы в Python и как они работают?

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

➡️ Пример:

# Определение метакласса
class MyMeta(type):
def __new__(cls, name, bases, dct):
dct['custom_method'] = lambda self: f"Метод добавлен через {cls.__name__}"
return super().__new__(cls, name, bases, dct)

# Используем метакласс для создания класса
class MyClass(metaclass=MyMeta):
pass

# Пример использования
obj = MyClass()
print(obj.custom_method()) # Метод добавлен через MyMeta


🗣️ В этом примере метакласс MyMeta добавляет метод custom_method ко всем классам, которые его используют. Метаклассы дают мощный инструмент для динамического создания и модификации классов.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Двусвязный список в Python: простой инструмент для сложных задач

Эта статья написана для новичков, которые только начинают осваивать структуры данных на Python. Сегодня мы рассмотрим замечательную и очень полезную структуру — двусвязный список.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
📐 Удобство кода важнее скорости написания

Код, который пишется за час, но читается три дня — это не экономия времени.

👉 Совет: всегда думай о том, сколько времени займёт чтение и поддержка твоего кода. Быстрое написание ценится только один раз. Удобное чтение ценится бесконечно.
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Создание RESTful API с помощью Django и Django REST Framework

Наша сегодняшняя цель - подробно разобраться в процессе создания REST API с использованием Django и Django REST Framework, разбираясь в каждом шаге и его значение. Мы также рассмотрим, почему создание API важно и как это может быть полезно в ваших будущих проектах.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 ТОП-10 книг по Python для начинающих программистов в 2024 году

Хотите освоить программирование на Python, но не знаете с чего начать? Мы подготовили для вас подборку из 10 лучших книг, которые помогут быстро и эффективно изучить этот популярный язык.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Задачка по Python

Напишите скрипт, который принимает два текстовых файла и выводит строки, которые отличаются между ними.

➡️ Пример:

python compare_files.py file1.txt file2.txt

Различия:
file1.txt: Python is amazing.
file2.txt: Python is great.
file1.txt: This is file one.
file2.txt: This is file two.


Решение задачи ⬇️

def compare_files(file1_path, file2_path):
try:
with open(file1_path, 'r', encoding='utf-8') as file1, open(file2_path, 'r', encoding='utf-8') as file2:
file1_lines = file1.readlines()
file2_lines = file2.readlines()

max_lines = max(len(file1_lines), len(file2_lines))
print("Различия:")

for i in range(max_lines):
line1 = file1_lines[i].strip() if i < len(file1_lines) else "<пусто>"
line2 = file2_lines[i].strip() if i < len(file2_lines) else "<пусто>"

if line1 != line2:
print(f"file1.txt: {line1}")
print(f"file2.txt: {line2}")

except FileNotFoundError as e:
print(f"Ошибка: {e}")
except Exception as e:
print(f"Ошибка: {e}")

# Пример использования:
if __name__ == "__main__":
import sys
if len(sys.argv) < 3:
print("Использование: python compare_files.py <file1> <file2>")
else:
compare_files(sys.argv[1], sys.argv[2])
Please open Telegram to view this post
VIEW IN TELEGRAM