🕵️ Играем в ревью: сможете найти все 5 багов?
Быстрая проверка скиллов. В этом кусочке кода спрятаны 5 ошибок.
Цель программы: для каждого числа в списке определить, является ли оно простым (prime), и вернуть список булевых значений.
Вывод сейчас:
🎯 Ваша задача — найти все 5 ошибок. Пишите свои ответы в комментариях — обсудим вместе!
👀 Ответ выложу позже.
P.S. Инструкция о том, как оставить комментарий
Библиотека питониста #развлекалово
Быстрая проверка скиллов. В этом кусочке кода спрятаны 5 ошибок.
Цель программы: для каждого числа в списке определить, является ли оно простым (prime), и вернуть список булевых значений.
def is_prime(n):
if n <= 1:
return False
for i in range(2, n//2):
if n % i == 0:
return False
return True
def check_primes(numbers):
result = []
for num in numbers:
result.append(is_prime(num))
return result
nums = [0, 1, 2, 3, 4, 5, 10, 11, 13, 15, 17, 19]
print(check_primes(nums))
Вывод сейчас:
[False, False, True, True, True, True, False, True, True, False, True, True]
🎯 Ваша задача — найти все 5 ошибок. Пишите свои ответы в комментариях — обсудим вместе!
P.S. Инструкция о том, как оставить комментарий
Библиотека питониста #развлекалово
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4❤🔥1🥱1
📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих»
Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!
🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!
🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
❤17👍5🤔1
🐍 Python новости
🚀 Релизы и инструменты:
— PEP 751 принят — стандартный lockfile для менеджеров пакетов
— Django 5.2 — улучшения ORM, админки и поддержка PEP 649
— Dockerpyze — сборка Docker-образов из проектов на Poetry/uv
— Cirron — утилита для анализа производительности Python- и Ruby-кода
🔬 Глубже в Python:
— PyTorch + No-GIL Python — многопоточный инференс без GIL
— Flask: тестирование API-приложений — гайд по юнит- и интеграционным тестам
— slots в Python — экономим память
— Sys._getframe: глубокая отладка — отладка через call stack
— Настройка Copilot-контекста — как улучшить автодополнение в VS Code
📚 Обучение и лучшие практики:
— ОOП в Python — подборка лучших ресурсов
— Гайд по отказоустойчивым системам — принципы надёжной архитектуры
— Параллелизм и асинхронность в Python — обзор ключевых концепций
— CI/CD + Allure — автотесты и отчёты на пайплайне
— Автоматизация пентеста — практическое руководство
📢 Cобытия:
— Утечка исходников Gemini — слили часть кода от Google
Библиотека питониста #свежак
🚀 Релизы и инструменты:
— PEP 751 принят — стандартный lockfile для менеджеров пакетов
— Django 5.2 — улучшения ORM, админки и поддержка PEP 649
— Dockerpyze — сборка Docker-образов из проектов на Poetry/uv
— Cirron — утилита для анализа производительности Python- и Ruby-кода
🔬 Глубже в Python:
— PyTorch + No-GIL Python — многопоточный инференс без GIL
— Flask: тестирование API-приложений — гайд по юнит- и интеграционным тестам
— slots в Python — экономим память
— Sys._getframe: глубокая отладка — отладка через call stack
— Настройка Copilot-контекста — как улучшить автодополнение в VS Code
📚 Обучение и лучшие практики:
— ОOП в Python — подборка лучших ресурсов
— Гайд по отказоустойчивым системам — принципы надёжной архитектуры
— Параллелизм и асинхронность в Python — обзор ключевых концепций
— CI/CD + Allure — автотесты и отчёты на пайплайне
— Автоматизация пентеста — практическое руководство
📢 Cобытия:
— Утечка исходников Gemini — слили часть кода от Google
Библиотека питониста #свежак
👍5❤2🔥1
Forwarded from Библиотека собеса по Python | вопросы с собеседований
✍🏻 Что такое wheel и eggs в Python? Какая между ними разница?
✍🏻 Python wheel — это стандартный формат установки дистрибутивов Python, который содержит все файлы и метаданные, необходимые для установки. Файл WHL также содержит информацию о версиях и платформах Python, поддерживаемых этим файлом. Расширение файла wheel — .whl
✍🏻 Python egg — это сжатый архив ZIP, содержащий исходные файлы приложения Python вместе с метаинформацией о дистрибутиве. Расширение файла egg — .egg
Основная разница заключается в том, что wheel предоставляет более простой и надежный способ установки пакетов. В отличие от eggs, он не требует установки дополнительных зависимостей и обеспечивает более быстрое время установки. Кроме того, wheel поддерживает все платформы, на которых может работать Python.
Библиотека собеса по Python
✍🏻 Python egg — это сжатый архив ZIP, содержащий исходные файлы приложения Python вместе с метаинформацией о дистрибутиве. Расширение файла egg — .egg
Основная разница заключается в том, что wheel предоставляет более простой и надежный способ установки пакетов. В отличие от eggs, он не требует установки дополнительных зависимостей и обеспечивает более быстрое время установки. Кроме того, wheel поддерживает все платформы, на которых может работать Python.
Библиотека собеса по Python
❤7👍4
Forwarded from Библиотека задач по Python | тесты, код, задания
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰167⚡19👍9👾9
This media is not supported in your browser
VIEW IN TELEGRAM
Режим агента (Agent mode) официально открыт для всех пользователей Visual Studio Code!
Это как напарник-программист, который сам решает задачи: копается в коде, правит файлы, запускает команды и чинит ошибки, пока всё не заработает.
Включить режим агента можно в Chat View, выбрав
Agent
в настройках chat.mode
и активировав chat.agent.enabled
. Если параметр не отображается — обновите VS Code до последней версии и перезапустите.🔗 Детали обновления: https://clc.to/1lqy9g
Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍6❤3⚡1😁1
В Python
break
в циклах for
прерывает итерацию, но часто есть более читаемые и лаконичные способы. Разберём типичные случаи и их альтернативы.Классика с
break
:color_options = ["blue", "green", "purple"]
is_purple_an_option = False
for color in color_options:
if color == "purple":
is_purple_an_option = True
break
Альтернатива — оператор
in
:is_purple_an_option = "purple" in color_options
in
работает со всеми итерируемыми объектами, а для set
и dict
ещё и быстрее, чем цикл.Пример с
break
:points_per_user = [3, 12, 28, 105]
anyone_has_100 = False
for points in points_per_user:
if points > 100:
anyone_has_100 = True
break
Альтернатива —
any
:anyone_has_100 = any(points > 100 for points in points_per_user)
any
(или all
для "все элементы") делает код выразительнее.С
break
:words = ["Look", "at", "these", "excellent", "words"]
first_long_word = None
for word in words:
if len(word) > 4:
first_long_word = word
break
Альтернатива —
next
с генератором:long_words = (word for word in words if len(word) > 4)
first_long_word = next(long_words, None)
next
берёт первый элемент из генератора, а None
— значение по умолчанию, если ничего не найдено.С
break
:items = ["chair", "desk", "", "lamp"]
before_blank = []
for item in items:
if not item:
break
before_blank.append(item)
Альтернатива —
itertools.takewhile
:from itertools import takewhile
before_blank = list(takewhile(bool, items))
takewhile
собирает элементы, пока условие истинно, и возвращает итератор.break
полезен, но часто его можно заменить:—
in
— для проверки наличия—
any/all
— для условий—
next
— для поиска первого значения—
takewhile
— для сбора до условияbreak
?Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28❤🔥4🤔3❤2🔥2
🧱⛏️ Чекни свой крафт: 8 признаков, что разработчик слишком залип в Minecraft
Думаешь, что твоя продуктивность падает из-за багов в коде? А может, все дело в том, что ты мысленно фармишь крипперов, пока твой PM объясняет задачу?
😎 Пройди наш тест и узнай, насколько глубоко ты провалился в пиксельную кроличью нору!
👉 Пройти тест
Библиотека питониста
Думаешь, что твоя продуктивность падает из-за багов в коде? А может, все дело в том, что ты мысленно фармишь крипперов, пока твой PM объясняет задачу?
😎 Пройди наш тест и узнай, насколько глубоко ты провалился в пиксельную кроличью нору!
Библиотека питониста
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3😁2
Питонисты!
Проголосуйте за наш канал, и в сторис мы опубликуем топ материалов, которые должен прочитать каждый питонист.
➡️ Поддержать канал: https://t.iss.one/boost/pyproglib
Проголосуйте за наш канал, и в сторис мы опубликуем топ материалов, которые должен прочитать каждый питонист.
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤5👍2
Forwarded from Библиотека программиста | программирование, кодинг, разработка
😺🐙🧼 Сам себе GitHub: как работать с чистым Git-репозиторием
Git — мощная система контроля версий, которую обычно используют через платформы вроде GitHub и GitLab. Однако Git сам по себе не требует веб-интерфейсов и облачных сервисов. Многие разработчики предпочитают работать с чистым Git-репозиторием, размещенным на собственном сервере.
➡️ В этой статье мы рассмотрим, почему это удобно, и как эффективно отправлять патчи в проекты, использующие этот подход.
🐸 Библиотека программиста
Git — мощная система контроля версий, которую обычно используют через платформы вроде GitHub и GitLab. Однако Git сам по себе не требует веб-интерфейсов и облачных сервисов. Многие разработчики предпочитают работать с чистым Git-репозиторием, размещенным на собственном сервере.
➡️ В этой статье мы рассмотрим, почему это удобно, и как эффективно отправлять патчи в проекты, использующие этот подход.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤2👍2😁2
UnboundLocalError
Сегодня разбираем одну из тех ошибок в Python, которая выглядит загадочно, но легко объяснима, если знать одну тонкость.
💥 Что произошло
def trigger(*fns):
def decorator(fn):
fn._next = fns
def _wrapper():
fn()
for f in fn._next:
f()
return _wrapper
return decorator
def step_2():
print("step 2")
def step_3():
print("step 3")
@trigger(step_2, step_3)
def step_1():
print("step 1")
step_1()
Вывод:
step 1
step 2
step 3
fn
снаружи:def _wrapper():
fn()
for fn in fn._next: # ❗️ shadowing
fn()
UnboundLocalError: cannot access local variable 'fn' where it is not associated with a value
❓ Почему так
В Python, если переменная где-то присваивается в функции — она считается локальной на весь скоуп этой функции. Даже если вы пытаетесь её использовать до присваивания.
fn
переопределяется в цикле, а значит, Python считает, что она локальная для всей _wrapper()
. Поэтому вызов fn()
выше в коде — обращение к переменной, которой ещё нет, отсюда и UnboundLocalError
.На заметку:
Просто не переименовывайте переменную в
fn
повторно. Назовите её f
, next_fn
, step
, callback
— что угодно:for step in fn._next:
step()
💬 Вопрос к вам: какие ошибки Python вам кажутся самыми «обидными», но по факту — обучающими?
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍7❤🔥1🤩1
📢 Какой рабочий сетап круче?
💻 Выбирайте свой вариант и делитесь в комментариях, как организовали свой рабочий уголок.
А то, может, там уже три монитора, как у хакера из фильмов, или ноутбук на коленках, как у студента перед дедлайном?
❤️ — 1
👍 — 2
⚡️ — 3
👏 — 4
🔥 — 5
🎉 — 6
😁 — 7
😍 — 8
🤩 — 9
Библиотека питониста #развлекалово
А то, может, там уже три монитора, как у хакера из фильмов, или ноутбук на коленках, как у студента перед дедлайном?
❤️ — 1
👍 — 2
⚡️ — 3
👏 — 4
🔥 — 5
🎉 — 6
😁 — 7
😍 — 8
🤩 — 9
Библиотека питониста #развлекалово
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉90🔥39⚡33🤩29❤26👍26😁16😍15🥱3
if
, for
, while
, def
, class
есть двоеточие :
if x > 0: вместо if x > 0
()
, []
, {}
print("Hi" → print("Hi")
'text'
или "text"
, а не text
class
, return
, import
) как имена переменныхclass = 5 → ошибка, используйте class_name
==
для сравнения, =
для присваиванияif x = 5 → if x == 5
:
и =
в словарях: {"key": "value"}
, а не {"key" = "value"}
if
, def
) одинаковы (4 пробела или табуляция)def func():
print("Ok") # Не смешивайте пробелы и табы
def my_func()
, а не def my _func()
>>>
и ...
. >>> print("Hi") → print("Hi")
def greet():
print("Hi")
greet() # Нужен перенос строки перед вызовом
— Python 3.9: SyntaxError: invalid syntax
— Python 3.10: SyntaxError: '(' was never closed
— Линтеры: flake8, pylint — находят ошибки до запуска
— Редакторы: VS Code с плагином Python, PyCharm
Если видите
SyntaxError: invalid syntax
, начните с проверки скобок, двоеточий и отступов — это решает 80% случаев.Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤4🤩3🥱2🔥1👏1
Forwarded from IT Job Hub | Работа и вакансии в IT
Как найти страну, где работа в IT приносит не только достойный доход, но и удовольствие от жизни? В этой статье Ксения Кравченко собрала семь лучших направлений для релокации айтишников в 2025 году — от стабильных хабов до быстрорастущих техноцентров.
Что в статье:
Если вы задумываетесь о переезде или просто хотите знать, где IT-навыки особенно ценны — самое время заглянуть в подборку
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱7👍6❤4🌚1
Media is too big
VIEW IN TELEGRAM
🙈 Что скрывает дисперсия: разгадка секрета точных ML-моделей
Представьте, что вы строите модель, которая прекрасно работает на тренировочных данных, но стоит подать ей новые примеры... и всё рушится. Знакомо? За этим почти всегда скрывается неправильное обращение с дисперсией.
🧐 Но что, если есть простая формула, способная:
• Мгновенно определить, насколько «разбросаны» ваши данные
• Значительно улучшить точность ваших ML-моделей
• Помочь обнаружить аномалии, которые вы раньше не замечали
В нашем вебинаре мы раскрываем все секреты дисперсии — без сложных терминов и занудных объяснений. Вы узнаете, почему дисперсия — как соль: без нее все пресно, а с переизбытком — несъедобно.
Хотите узнать, как находить идеальный баланс в своих моделях, причем тут Random Forest и много другого о Data Science?
➡️ Тогда смотрите бесплатный вебинар от Proglib: 🙈 Что скрывает дисперсия: разгадка секрета точных ML-моделей
Представьте, что вы строите модель, которая прекрасно работает на тренировочных данных, но стоит подать ей новые примеры... и всё рушится. Знакомо? За этим почти всегда скрывается неправильное обращение с дисперсией.
🧐 Но что, если есть простая формула, способная:
• Мгновенно определить, насколько «разбросаны» ваши данные
• Значительно улучшить точность ваших ML-моделей
• Помочь обнаружить аномалии, которые вы раньше не замечали
В нашем вебинаре мы раскрываем все секреты дисперсии — без сложных терминов и занудных объяснений. Вы узнаете, почему дисперсия — как соль: без нее все пресно, а с переизбытком — несъедобно.
Хотите узнать, как находить идеальный баланс в своих моделях, причем тут Random Forest и много другого о Data Science?
➡️ Тогда смотрите бесплатный вебинар от Proglib: https://proglib.io/w/4fdac1b7
Представьте, что вы строите модель, которая прекрасно работает на тренировочных данных, но стоит подать ей новые примеры... и всё рушится. Знакомо? За этим почти всегда скрывается неправильное обращение с дисперсией.
🧐 Но что, если есть простая формула, способная:
• Мгновенно определить, насколько «разбросаны» ваши данные
• Значительно улучшить точность ваших ML-моделей
• Помочь обнаружить аномалии, которые вы раньше не замечали
В нашем вебинаре мы раскрываем все секреты дисперсии — без сложных терминов и занудных объяснений. Вы узнаете, почему дисперсия — как соль: без нее все пресно, а с переизбытком — несъедобно.
Хотите узнать, как находить идеальный баланс в своих моделях, причем тут Random Forest и много другого о Data Science?
Представьте, что вы строите модель, которая прекрасно работает на тренировочных данных, но стоит подать ей новые примеры... и всё рушится. Знакомо? За этим почти всегда скрывается неправильное обращение с дисперсией.
🧐 Но что, если есть простая формула, способная:
• Мгновенно определить, насколько «разбросаны» ваши данные
• Значительно улучшить точность ваших ML-моделей
• Помочь обнаружить аномалии, которые вы раньше не замечали
В нашем вебинаре мы раскрываем все секреты дисперсии — без сложных терминов и занудных объяснений. Вы узнаете, почему дисперсия — как соль: без нее все пресно, а с переизбытком — несъедобно.
Хотите узнать, как находить идеальный баланс в своих моделях, причем тут Random Forest и много другого о Data Science?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
Привет, питонисты и разработчики! Один из наших подписчиков готовится к первой стажировке и поделился своим вопросом — возможно, он близок и вам:
«Хочу создать проект, чтобы продемонстрировать навыки Python, но не через Machine Learning. Проходил курс Andrew Ng по ML — полезно, но не зацепило, не моё. Может, вернусь к ML позже, но сейчас хочется делать что-то увлекательное и практичное.
Ищу идеи для проекта, который можно добавить в резюме и обсудить на собеседовании. Но почти все советы в сети — про ML и нейросети.
Какие Python-проекты ценят работодатели, если Data Science и ML — не мой путь? Как выделиться, не погружаясь в deep learning?»
Делитесь опытом, идеями и примерами
P.S. Если хотите задать вопрос, заполните нашу гугл-форму. Это займет 5 минут.
Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4🤔1
На днях вышел релиз alpha 7, а после следующего релиза (beta 1) новых фич уже не добавят. Самое время изучить, что нового принесёт Python 3.14 — и в формате видео это ещё удобнее
Темы видео:
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤3💯2😁1
🖼 ТОП-5 структур данных для обработки изображений
Хотите разобраться, как обрабатывать изображения в компьютерном зрении или графике?
Всё начинается с правильных структур данных. Они помогают хранить и анализировать пиксели, их связи и расположение.
👉 В этой статье — подборка топ решений и советы, как их использовать.
Библиотека питониста
Хотите разобраться, как обрабатывать изображения в компьютерном зрении или графике?
Всё начинается с правильных структур данных. Они помогают хранить и анализировать пиксели, их связи и расположение.
Библиотека питониста
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4❤🔥2👍1
Этот PEP вводит в Python шаблонные строки (template strings) для гибкой работы со строками.
f
используется префикс t
. str
), t-строки возвращают объект нового типа — Template
:template: Template = t"Hello {name}"
Шаблонные строки предоставляют доступ к самой строке и её переменным до финальной подстановки значений. Это открывает путь к безопасной и гибкой обработке строк прямо на уровне языка.
— Возможность проверок безопасности (например, защита от SQL-инъекций)
— Удобство при создании веб-шаблонов
— Поддержка DSL (предметно-ориентированных языков) внутри Python
— Больше контроля над строками при их формировании
Пример:
template = t"Привет, {username}!"
print(template.fields) # ['username']
print(template.source) # 'Привет, {username}!'
Позже можно безопасно рендерить шаблон:
result = template.render(username="Алиса")
Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🤔6❤4🎉3👾2🔥1🤩1
Монитор, книга, ноутбук и Python. Потому что на ноутбуке можно писать код, на мониторе — лучше увидеть, как он ломается, а книга — чтобы узнать, почему.
Впрочем, в наборе питониста всегда есть место для обновлений Python.
❤️ f-строки — читаемо и быстро
👍 @property — красиво и по-взрослому
🔥 Переключение зависимостей — как глоток свежего воздуха
😁 Shared vs independent списки — багов наловил, но стал умнее
🤔 Свой вариант — пишите в комментариях
Библиотека питониста #развлекалово
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17🔥5👍3😁2