PyInstrument — это удобный инструмент для профилирования кода Python, который помогает находить узкие места в производительности.
Установка библиотеки:
pip install pyinstrument
Пример:
from pyinstrument import profile
@profile()
def my_function():
# ...
pass
✄┈┈┈┈┈┈┈┈┈┈┈┈┈
Заметки программиста
«(!?»Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
✄┈┈┈┈┈┈┈┈┈┈┈┈┈
Заметки программиста
«(!?»Please open Telegram to view this post
VIEW IN TELEGRAM
Эта программа на Python проверяет, является ли заданное слово или фраза палиндромом (читается одинаково как слева направо, так и справа налево).
def is_palindrome(text):
# Удаляем все непробельные символы и переводим текст в нижний регистр
clean_text = ''.join(char.lower() for char in text if char.isalnum())
# Сравниваем очищенный текст с его реверсированной версией
return clean_text == clean_text[::-1]
# Пример строки для проверки
text = "А роза упала на лапу Азора"
print("Является палиндромом:", is_palindrome(text))
Является палиндромом
: True
✄┈┈┈┈┈┈┈┈┈┈┈┈┈
Заметки программиста
«(!?»Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Эти 20% — просто формальность.
Вперёд!
✄┈┈┈┈┈┈┈┈┈┈┈┈┈
Заметки программиста
«(!?»Please open Telegram to view this post
VIEW IN TELEGRAM
Python -
JavaScript -
Java -
✄┈┈┈┈┈┈┈┈┈┈┈┈┈
Заметки программиста
«(!?»Please open Telegram to view this post
VIEW IN TELEGRAM
Вместо длинных операторов CASE для обработки NULL-значений используйте COALESCE():
SELECT COALESCE(name, 'Unknown') FROM users;
Эта функция возвращает первое ненулевое значение в списке.
Нужна последовательность чисел, но нет таблицы с числами? Используйте GENERATE_SERIES (PostgreSQL) или WITH RECURSIVE (MySQL 8+):
SELECT generate_series(1, 10);
Легко находите повторяющиеся значения с помощью GROUP BY и HAVING:
SELECT email, COUNT(*)
FROM users
GROUP BY email
HAVING COUNT(*) > 1;
Нужна случайная выборка данных? Используйте:
Используйте CASE с SUM() для ручного создания сводных данных:
SELECT
user_id,
SUM(CASE WHEN status = 'active' THEN 1 ELSE 0 END) AS active_count,
SUM(CASE WHEN status = 'inactive' THEN 1 ELSE 0 END) AS inactive_count
FROM users
GROUP BY user_id;
Вместо отдельного SELECT используйте:
✄┈┈┈┈┈┈┈┈┈┈┈┈┈
Заметки программиста
«(!?»Please open Telegram to view this post
VIEW IN TELEGRAM