Python_No_Panic
2.06K subscribers
123 photos
18 videos
49 links
Самый перспективный, полезный и ламповый канал по Python в русскоязычном телеграме!

Обучающие посты в хронологическом порядке, посты по софт скиллам и чат, где вам всегда помогут админы и комьюнити.

Сотрудничество:
@Niik_Whaale
Download Telegram
🔄 zip() — идеальный способ для параллельного обхода нескольких списков
Функция zip() помогает вам одновременно работать с несколькими коллекциями. Она "пакует" их элементы по парам, что удобно, когда нужно итеративно проходить по двум или больше спискам.

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

names = ["Alice", "Bob", "Charlie"]
scores = [85, 90, 78]

for name, score in zip(names, scores):
print(f"{name} scored {score}")

Результат:

Alice scored 85
Bob scored 90
Charlie scored 78

🎯 Преимущество: Не нужно использовать индексы для доступа к элементам! zip() "параллельно" соединяет элементы, делая код более читаемым и компактным.
🔥1
🚀 Крутая фишка enumerate() — избавляемся от лишних счетчиков!
Часто нужно перебирать список и знать индекс каждого элемента. Вместо того чтобы вручную заводить i = 0 и увеличивать его в цикле, используйте enumerate()!

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

fruits = ["🍎 Apple", "🍌 Banana", "🍒 Cherry"]

for index, fruit in enumerate(fruits, start=1):
print(f"{index}. {fruit}")

Результат:

1. 🍎 Apple
2. 🍌 Banana
3. 🍒 Cherry


🔥 Почему это удобно?
Код становится чище и короче
Можно сразу задать нужный стартовый индекс (start=1)
🔥2
🎲 Случайный выбор из списка с random.choice()
Если нужно выбрать случайный элемент из списка, не нужно писать сложные циклы. Просто используйте random.choice()!

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

import random

movies = ["🎬 Inception", "🎥 Interstellar", "📽 The Matrix", "🎞 The Dark Knight"]

random_movie = random.choice(movies)

print(f"Сегодня стоит посмотреть: {random_movie}")

Результат (например):

Сегодня стоит посмотреть: 🎞 The Dark Knight


🎯 Дополнительно:
random.choices() позволяет выбрать несколько элементов сразу
random.sample() выбирает без повторений
Используйте random и пусть Python делает выбор за вас! 🎰
🔥3
Как засечь время выполнения кода? timeit в помощь!
Хотите узнать, сколько времени занимает выполнение кода? Python предлагает удобный модуль timeit, который точно измеряет производительность.

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

import timeit

code = """
result = [x**2 for x in range(1000)]
"""

execution_time = timeit.timeit(code, number=1000)

print(f"Время выполнения: {execution_time:.5f} секунд")


Результат (пример):

Время выполнения: 0.08523 секунд


🔥 Зачем использовать timeit?
Точнее, чем time.time(), так как выполняет код многократно
Удобен для оптимизации алгоритмов
2🔥1
🔥 Расширенный print() — настраивай вывод под себя!
Функция print() в Python может намного больше, чем просто выводить текст. Можно менять разделитель и конец строки!

💡 Пример 1: Задаем кастомный разделитель (sep)

print("Python", "is", "awesome", sep="🔥")


Результат:

Python🔥is🔥awesome


💡 Пример 2: Изменяем конец строки (end)

print("Первая строка", end=" 😎 ")
print("Вторая строка")


Результат:

Первая строка 😎 Вторая строка


🎯 Когда это полезно?
sep удобно использовать для форматирования вывода
end помогает избежать лишних переводов строк
Теперь print() — это не просто вывод, а гибкий инструмент! 🚀
🔥1
🛠 Как проверить, занята ли нужная переменная? locals() в помощь!
Иногда нужно узнать, существует ли переменная в текущей области видимости. Для этого можно использовать locals()!

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

name = "Alice"

if "name" in locals():
print("Переменная 'name' существует!")
else:
print("Переменная 'name' не найдена.")


Результат:

Переменная 'name' существует!

🔥 Полезно, когда:
Нужно избежать ошибок при работе с переменными
Отлаживаете код и хотите проверить, какие переменные уже созданы
🔥21
📂 Как быстро узнать размер объекта в памяти? sys.getsizeof()!
Хотите узнать, сколько памяти занимает переменная? В Python это можно сделать с помощью sys.getsizeof()!

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

import sys

a = 10
b = "Hello, world!"
c = [1, 2, 3, 4, 5]

print(sys.getsizeof(a)) # Размер переменной a
print(sys.getsizeof(b)) # Размер строки b
print(sys.getsizeof(c)) # Размер списка c

Результат (пример):

28 # Размер int
62 # Размер строки
96 # Размер списка

📌 Интересный факт:
Пустой список занимает 56 байт, даже если в нем нет элементов!
sys.getsizeof() учитывает служебную информацию, поэтому иногда реальный размер данных больше.
Используйте это для оптимизации кода и экономии памяти! 🚀
🌐 Как "пропускать" элементы в цикле с помощью continue?
Когда вам нужно пропустить текущую итерацию цикла и перейти к следующей, не завершая весь цикл, можно использовать ключевое слово continue. Это полезно, например, когда хотите исключить определённые элементы без прерывания работы цикла.

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

for i in range(10):
if i % 2 == 0:
continue # Пропускаем чётные числа
print(i)


Результат:

1
3
5
7
9

🔥 Когда это удобно?
Если нужно исключить некоторые условия без завершения цикла
Позволяет сократить код, не используя вложенные if конструкции
🔥2
🎨 Цветной вывод с использованием модуля colorama
Хотите сделать вывод вашего кода более ярким и заметным? В Python это можно сделать с помощью модуля colorama, который добавляет цвет к выводу в консоли!

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

from colorama import init, Fore

init() # Инициализация
print(Fore.RED + "Это текст красного цвета!")
print(Fore.GREEN + "А это — зелёный!")


Результат:
Текст "Это текст красного цвета!" будет красным
Текст "А это — зелёный!" будет зелёным
🎯 Когда это полезно?

Удобно для выделения ошибок или важных сообщений в логах
Применяется для создания более красочных выводов в консольных приложениях
👍2
🔢 Секреты использования sorted() — сортировка с кастомной логикой!
Функция sorted() позволяет сортировать список не только по умолчанию, но и с помощью собственной логики сортировки через параметр key.

💡 Пример использования с ключом key:

# Список слов
words = ["banana", "apple", "cherry", "blueberry"]

# Сортируем по длине слова
sorted_words = sorted(words, key=len)

print(sorted_words)


Результат:

['apple', 'banana', 'cherry', 'blueberry']

🔥 Как это работает?
sorted() сортирует элементы с использованием функции, переданной в key. В примере мы сортируем по длине каждого слова.
Вы можете использовать любую логику для сортировки, например, сортировать по обратному порядку, по первой букве или числовым значениям.
🔥21
🐍 lambda — краткие анонимные функции в одну строку
Иногда нужна функция, но ради одной операции не хочется писать def. В таких случаях помогает lambda — анонимные функции в одну строку!

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

square = lambda x: x ** 2
print(square(5)) # 25


Результат:

25


🔥 Где полезно?
Когда нужно передать функцию в map(), filter(), sorted()
Для компактного кода без создания лишних функций

💡 Пример с sorted() и lambda:

words = ["banana", "apple", "cherry", "blueberry"]
sorted_words = sorted(words, key=lambda x: x[-1]) # Сортировка по последней букве
print(sorted_words)

Результат:

['banana', 'apple', 'blueberry', 'cherry']
🔥2
🔎 Фильтрация данных с filter()
Если нужно отфильтровать элементы списка по какому-то условию, используйте filter(). Эта функция возвращает только те элементы, которые соответствуют заданному критерию.

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

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

even_numbers = list(filter(lambda x: x % 2 == 0, numbers))

print(even_numbers)


Результат:

[2, 4, 6, 8, 10]


🔥 Когда использовать?
Когда нужно убрать ненужные элементы из списка
Работает быстрее, чем for + if
🔥1
🎭 "Распаковка" переменных с * и **
В Python можно легко разбивать и собирать элементы с помощью * и **!

💡 Пример распаковки списка:

numbers = [1, 2, 3]
a, b, c = numbers # Разбиваем список на переменные
print(a, b, c)


Результат:

1 2 3


💡 Пример сбора остатка элементов:

first, *middle, last = [10, 20, 30, 40, 50]
print(first) # 10
print(middle) # [20, 30, 40]
print(last) # 50


🔥 Где использовать?
Удобно для работы со списками переменной длины
Позволяет передавать параметры в функции (*args, **kwargs)
🔥1
🚀 set() — убираем дубликаты из списка за одну строку!
В Python есть быстрый способ удалить дубликаты из списка — просто преобразовать его в set(), а затем обратно в list().

💡 Пример использования:
numbers = [1, 2, 2, 3, 4, 4, 5, 6, 6]
unique_numbers = list(set(numbers))

print(unique_numbers)

Результат:
[1, 2, 3, 4, 5, 6]

🔥 Плюсы метода:
Очень быстрый способ удаления дубликатов
Порядок элементов не сохраняется, но можно обойти это с dict.fromkeys()

💡 Пример с сохранением порядка:
numbers = [1, 2, 2, 3, 4, 4, 5, 6, 6]
unique_numbers = list(dict.fromkeys(numbers))

print(unique_numbers)

Результат:
[1, 2, 3, 4, 5, 6]
🎲 Как перемешать список? Используем random.shuffle()!
Если нужно случайно перемешать элементы списка, используйте random.shuffle(). Это удобно в играх, тестах или генерации случайных последовательностей.

💡 Пример использования:
import random

cards = [" A", " K", " Q", " J"]
random.shuffle(cards)

print(cards)


Результат (пример):
[' K', ' J', ' Q', ' A']

🔥 Когда это полезно?
Перемешивание карт в игре 🃏
Рандомизация вопросов в тесте
Перемешивание данных перед ML-моделью

Теперь ваш Python-код станет ещё интереснее и мощнее! 🚀
🔥2
Слияние словарей в одну строку (| в Python 3.9+)
Раньше, чтобы объединить два словаря, приходилось использовать .update() или dict(). Но в Python 3.9+ появился удобный оператор |!

💡 Пример использования:
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}

merged_dict = dict1 | dict2 # Новый способ объединения словарей

print(merged_dict)


Результат:

{'a': 1, 'b': 3, 'c': 4}


🔥 Что важно знать?
Если ключи совпадают, берётся значение из второго словаря
Работает только в Python 3.9+

💡 А если нужно обновить первый словарь, а не создавать новый?
dict1 |= dict2
print(dict1)

Теперь dict в Python стал ещё удобнее! 🚀
🔥4
📏 Как узнать длину самой длинной строки в списке?
Если у вас есть список строк, и вам нужно найти самую длинную, можно сделать это в одну строку!

💡 Пример использования:
words = ["apple", "banana", "cherry", "blueberry"]

longest_length = max(map(len, words))

print(longest_length)


Результат:
9

🔥 Как это работает?
map(len, words) применяет len() ко всем строкам
max() выбирает самое большое значение

💡 Хотите узнать самую длинную строку?
longest_word = max(words, key=len)
print(longest_word)


Результат:
blueberry

Теперь находить самые длинные строки в списках проще простого! 🎯
🔥4
🎭 Работа с "невидимыми" символами через strip()
При обработке строк бывает нужно удалить пробелы, переводы строк и другие невидимые символы. В Python это легко сделать с помощью strip(), lstrip() и rstrip().

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

text = " Привет, мир! \n"
clean_text = text.strip() # Убираем пробелы и переводы строк по краям

print(f"'{clean_text}'") # Проверим результат


Результат:

'Привет, мир!'
🔥 Дополнительно:

lstrip() — убирает пробелы только слева
rstrip() — убирает пробелы только справа


💡 Можно убирать и другие символы, не только пробелы!

text = "---Python---"
clean_text = text.strip("-") # Убираем все "-"
print(clean_text)


Результат:

Python


Теперь ваш текст всегда будет чистым! 🧼🚀
🔥2
📦 Как узнать все методы и атрибуты объекта? dir() в помощь!
Иногда нужно посмотреть, какие методы и атрибуты есть у объекта, особенно если вы работаете с новым модулем или библиотекой.

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

print(dir(str)) # Выведет все методы строк


Результат (частично):

['capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', ...]


🔥 Полезно, когда:
Вы изучаете новый класс или модуль
Хотите узнать, какие методы доступны у объекта

💡 Хотите посмотреть только методы без служебных атрибутов?

methods = [m for m in dir(str) if not m.startswith("__")]
print(methods)
🔄 Как перевернуть строку или список в одну строку?
В Python можно развернуть строку или список с помощью срезов [::-1]. Это быстрый и лаконичный способ!

💡 Переворачиваем строку:
text = "Python"
reversed_text = text[::-1]

print(reversed_text)


Результат:
nohtyP


💡 Переворачиваем список:
pythonКопироватьРедактироватьnumbers = [1, 2, 3, 4, 5]
reversed_numbers = numbers[::-1]
print(reversed_numbers)


Результат:
[5, 4, 3, 2, 1]


🔥 Почему это круто?
Работает быстро и без циклов
Можно использовать для проверки палиндромов

💡 Пример проверки палиндрома:
word = "level"
is_palindrome = word == word[::-1]

print(is_palindrome) # True
🔥2
🎯 Используем any() и all() для проверки условий в списке
Функции any() и all() позволяют быстро проверить выполняется ли хотя бы одно или все условия в списке.

💡 Пример использования any() (хотя бы одно True):
numbers = [0, 0, 1, 0]

if any(numbers):
print("В списке есть хотя бы одно ненулевое число!")


Результат:
В списке есть хотя бы одно ненулевое число!


💡 Пример использования all() (все True):
numbers = [1, 2, 3, 4, 5]

if all(n > 0 for n in numbers):
print("Все числа положительные!")


Результат:
Все числа положительные!


🔥 Когда это полезно?
Упрощает проверки в if (без циклов)
Работает с любыми итерируемыми объектами

Теперь ваш код будет чище и эффективнее! 🚀
🔥1