Python_No_Panic
Ir al canal en Telegram
Самый перспективный, полезный и ламповый канал по Python в русскоязычном телеграме! Обучающие посты в хронологическом порядке, посты по софт скиллам и чат, где вам всегда помогут админы и комьюнити. Сотрудничество: @Niik_Whaale
Mostrar más2 146
Suscriptores
Sin datos24 horas
-37 días
-1330 días
Archivo de publicaciones
2 146
🌌 Расширенная распаковка с * и **
Python умеет красиво разбирать структуры данных на части.
Пример:
# Распаковка списка
numbers = [1, 2, 3, 4, 5]
head, *body, tail = numbers
print(head) # 1
print(body) # [2, 3, 4]
print(tail) # 5
💡 Как использовать ** для словарей?
Вы можете объединять словари с помощью **:
dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3}
merged = {**dict1, **dict2}
print(merged) # {'a': 1, 'b': 2, 'c': 3}2 146
Декораторы классов и функций 🛠️
Декораторы — это магия Python, позволяющая изменять или дополнять поведение функций или классов. Это отличный инструмент для кэширования, логирования и контроля доступа. 🔒
🔍 Применение:
1. Логирование.
2. Управление доступом.
3. Кэширование (например, functools.lru_cache).
def logger(func):
def wrapper(*args, **kwargs):
print(f"Running {func.__name__}")
return func(*args, **kwargs)
return wrapper
@logger
def say_hello():
print("Hello!")
say_hello()
🔑 Результат выполнения:
Hello!
2 146
Что здесь не так?
Найдите баг в коде.
def increment(value, step=1):
return value + step
data = [1, 2, 3]
for i in range(len(data)):
data[i] = increment(data[i])
print(data)
❓ Вопрос: Может ли здесь что-то пойти не так? Как сделать код более безопасным?
📌 Подсказка: Подумайте о том, что будет, если кто-то изменит increment.2 146
🚀 Генераторы вместо списков
Генераторы позволяют обрабатывать данные по одному элементу, экономя память. Это особенно важно при работе с большими объемами данных.
💡 Чем генераторы лучше?
1. Они не занимают память сразу для всех элементов.
2. Работают лениво, то есть создают элементы "на лету".
Пример:
# Генераторное выражение
gen = (x ** 2 for x in range(10**6))
print(next(gen)) # 0
print(next(gen)) # 1
# Генераторы можно использовать в цикле
for num in gen:
if num > 100:
break
print(num)
Попробуйте запустить это с обычным списком list. Ваши ресурсы быстро закончатся! 😄2 146
Декораторы классов и функций 🛠️
Декораторы — это магия Python, позволяющая изменять или дополнять поведение функций или классов. Это отличный инструмент для кэширования, логирования и контроля доступа. 🔒
🔍 Применение:
1. Логирование.
2. Управление доступом.
3. Кэширование (например, functools.lru_cache).
def logger(func):
def wrapper(*args, **kwargs):
print(f"Running {func.__name__}")
return func(*args, **kwargs)
return wrapper
@logger
def say_hello():
print("Hello!")
say_hello()
🔑 Результат выполнения:
Hello!
2 146
Челлендж: «Обратные слова»
Привет! Вот задача на логику и строки:
🔄 Суть задачи:
Напишите функцию, которая принимает строку и возвращает все слова в обратном порядке.
Пример:
Input: "Hello Python World"
Output: "World Python Hello"
✅ Усложнение для профи:
Сделайте так, чтобы слова выводились в обратном порядке букв внутри каждого слова.
Пример:
Input: "Hello Python World"
Output: "Olleh Nohtyp Dlrow"
💡 Подсказки:
1. Для разделения строки на слова используйте метод .split().
2. Попробуйте освоить срезы, например, [::-1] — это мощный инструмент в Python.
3. Чтобы сохранить пробелы в исходной строке, исследуйте методы работы с join и разделителями.
Кто первый справится? Пишите свои решения и обсуждаем! 🎉
2 146
Скорость функции
Какой код быстрее?
# Вариант 1
result = [x**2 for x in range(10**6)]
# Вариант 2
result = list(map(lambda x: x**2, range(10**6)))
❓ Вопрос: Какая из функций выполняется быстрее и почему?
📌 Подсказка: Вспомните, как работают list comprehensions и map.2 146
📌 Динамическое изменение функций во время выполнения
Python позволяет менять код на лету! Вы можете подменять реализацию функций прямо во время выполнения программы.
💡 Это полезно, например, для тестирования или мока функций.
Пример:
def greet():
print("Hello!")
# Обычное поведение
greet() # Hello!
# Подменяем функцию
greet = lambda: print("Hi!")
greet() # Hi2 146
Асинхронное программирование ⏩
Асинхронное программирование позволяет выполнять задачи одновременно без создания потоков! Это очень полезно, когда нужно обрабатывать множество запросов одновременно (например, веб-сервисы или API). 🌐
🔍 Применение:
1. Веб-сервисы с высокой нагрузкой (например, FastAPI).
2. Обработка данных и API без блокировки.
3. Массовая обработка соединений (WebSocket).
Пример:
import asyncio
async def fetch_data():
print("Fetching...")
await asyncio.sleep(2)
print("Done!")
asyncio.run(fetch_data())
🔑 Результат выполнения
Fetching... Done!
2 146
Челлендж: «Генератор паролей»
Привет, кодеры! Сегодня у нас задание — написать генератор надёжных паролей. Требования просты:
🔑 Суть задачи:
Напишите функцию, которая принимает длину пароля и создаёт случайный пароль, содержащий:
1. Заглавные и строчные буквы,
2. Цифры,
3. Специальные символы (!@#$%^&*() и т.д.).
✅ Усложнение для профи:
Добавьте возможность задавать опциональные параметры:
1. Исключать похожие символы (O, 0, l, 1 и т.д.),
2. Создавать запоминающиеся пароли (например, из случайных слов).
💡 Подсказки:
1. Для работы с символами используйте модули string и random.
2. Если захочется большего, изучите возможpythoности secrets — это безопасная альтернатива для генерации случайных данных.
3. Попробуйте создать минимальный интерфейс: пусть пользователь сам решает, какие опции ему нужны!
— Напиши свой генератор, поделись кодом и давай обсудим! 💬
2 146
🙊Тайна вывода
Что выведет код?
def mystery(a, b=[]):
b.append(a)
return b
print(mystery(1))
print(mystery(2))
print(mystery(3))
❓ Вопрос: Каков результат выполнения программы? Почему?
📌 Подсказка: Вспомните про работу с изменяемыми объектами.2 146
🐍 Однострочные функции: Лямбда
Лямбда-функции (анонимные функции) позволяют создавать компактные выражения прямо в строке, где они нужны.
💡 Когда использовать?
1. Если нужно создать небольшую функцию без лишнего кода.
2. Для использования внутри таких функций как map, filter, sorted.
Пример:
# Обычная функция
def square(x):
return x ** 2
# Эквивалент с лямбда
square = lambda x: x ** 2
print(square(5)) # 25
Пример использования с sorted:
pairs = [(1, 'one'), (3, 'three'), (2, 'two')]
pairs.sort(key=lambda pair: pair[1]) # Сортировка по второму элементу
print(pairs) # [(1, 'one'), (3, 'three'), (2, 'two')]2 146
📚 Метаклассы в Python 🧑💻
Метаклассы — это классы для создания других классов! 🛠️
Они позволяют контролировать, как создаются классы, и могут добавлять новые атрибуты или изменять их поведение. Метаклассы могут быть полезны в таких случаях, как паттерн Singleton или создание API высокого уровня.
🔍 Применение:
1. Создание гибких API.
2. Валидация атрибутов классов.
3. Автоматическое добавление методов или атрибутов.
Пример:
class Meta(type):
def __new__(cls, name, bases, dct):
dct['created_by'] = "Meta class"
return super().__new__(cls, name, bases, dct)
class MyClass(metaclass=Meta):
pass
obj = MyClass()
print(obj.created_by) # Output: Meta class
🔑 Результат выполнения:
Meta class
2 146
🚀Ускорь работу своего компьютера с помощью этого 👉 канала
✔️ Уникальные секреты по настройке Windows
✔️ Лучшие сборки компьютеров на разный бюджет
✔️ Топовые подборки компьютерных комплектующих
✔️ Объяснения компьютерных терминов простыми словами
👉 Подпишись и начни разговаривать с айтишниками на их языке!
2 146
Всем привет!👋
Сегодня предлагаем вам написать программу на Python, которая обнаруживает дороги на изображении. Ваш код - как волшебное око, способное находить пути и дороги на виртуальных картах.
Ссылка на проект.
Поделитесь своими реакциями и комментариями! Мы с интересом узнаем, как вы реализовали обнаружение дорог с изображения.
Пожелаем вам успешных поисков и точных алгоритмов! 🗺🔍
2 146
Приветствуем всех кодеров, давно не виделись! 👋
Сегодня предлагаем вам написать программу на Python, которая рисует дерево сакура. Пусть ваша программа станет цветущим символом виртуального мира! А из-за рандомайзера, ваше дерево получится уникальным и ни на чье не похожим!
Ссылка на проект.
Поделитесь своими реакциями и комментариями! Мы с нетерпением ждем, как вы воссоздали красоту сакуры через код.
Пожелаем вам природной гармонии и эстетических пейзажей! 🌸🌳
2 146
🚀Ускорь работу своего компьютера с помощью этого 👉 канала
✔️ Уникальные секреты по настройке Windows
✔️ Лучшие сборки компьютеров на разный бюджет
✔️ Топовые подборки компьютерных комплектующих
✔️ Объяснения компьютерных терминов простыми словами
👉 Подпишись и начни разговаривать с айтишниками на их языке!
2 146
Как Junior разработчику найти свою первую работу?
Легко! Ребята из codereview помогают джунам с трудоустройством👇
1. Разработают стратегию поиска, расскажут где искать, на какие вакансии откликаться и сколько откликов делать
2. Составят тебе крутое резюме и помогут с оформлением LInkedIn и Github, чтобы ты начал получать приглашения на собеседования
3. Каждую неделю будут проводить с тобой Mock Interview: технические и поведенческие интервью + помогут с самопрезентацией
4. Будут сами помогать тебе с поиском вакансий и организовывать собеседования в компании партнеры
5. В течение полугода будут сопровождать тебя, пока ты не получишь оффер
🔥 Самое крутое - основную часть можно оплатить после трудоустройства с первой зп!
🚀 За год они трудоустроили более 150 разработчиков, со средней зарплатой 120 тыс., которые сейчас работают в Сбере, OZON, VK, Яндекс и других IT компаниях👨🏼💻
👉 Оставляй заявку на бесплатную консультацию с нашим HR или Senior разработчиком
✌️Let’s go искать работу вместе!
2 146
Привет всем! 👋
Сегодня предлагаем вам написать программу на Python, которая генерирует qr код. Ваши навыки программирования могут создать интерактивный мир QR-кодов, который пригодится для различных задач.
Ссылка на проект.
Поделитесь своими реакциями и комментариями! Мы с интересом узнаем, как вы реализовали генерацию QR кодов.
Пожелаем вам множество уникальных кодов и технологических достижений! 📱🔍
2 146
Почему на HeadHunter теперь нереально найти работу? 😰
По статистике на одну Junior вакансию приходится от 800 до 1500 кандидатов. 1500 человек, Карл... А ведь может компании нужен всего один хороший джун.
🥲 Это печально, ведь работодатель разбирает только первые 50-100 откликов, а остальные 1400 — он просто не смотрит.
Как искать работу в условиях такой конкуренции и что делать, чтобы тебя все-таки позвали на интервью? 🤔
Макс, основатель компании CodeReview, расскажет о том, как джунам искать работу в условиях жесткой конкуренции, какие инструменты использовать и как пробиваться на интервью?
🗓 Когда? 24 Августа, в 19:00 по мск
🎁 Стрим полностью бесплатный, а всем участникам Макс также пришлет чек-лист для оформления резюме и гитхаба.
👉 Зарегистрироваться на бесплатный вебинар можно через этого телеграм-бота.
Приходи, если хочешь быстрее найти работу. До скорого! ✌️
