Python академия
前往频道在 Telegram
Учи Python быстро и легко. Ежедневно публикуем практические задачи, разборы, готовые решения, объяснения логики, советы по алгоритмам. ✔ Подходит для прокачки навыков кодирования. По всем вопросам @evgenycarter
显示更多7 186
订阅者
-124 小时
-97 天
-3830 天
帖子存档
7 187
+4
Образование, с которым всегда найдете работу
Открытый социально-экономический колледж (ОСЭК) - ваш шаг к успешной карьере
🎓 Предоставляем высококачественное дистанционное обучение, что позволяет вам учиться в удобное время и в любом месте. Преподаватели — опытные профессионалы, которые помогут вам освоить материалы на практике.
📚 Среднее профессиональное образование в ОСЭК
Без экзаменов - поступление без результатов ЕГЭ, ОГЭ и конкурса
Госаккредитация - диплом ценится работодателями
Высокое качество образования - наши программы соответствуют современным требованиям рынка труда.
Востребованные специальности - получайте актуальные профессии
2 Диплома сразу - без увеличения срока обучения и стоимости
Не покупайте учебники и материалы – всё включено в курс
⚡ Только в июне скидки на обучение до 48%
Узнать больше
#реклама 16+
pk.i-spo.ru
О рекламодателе
7 187
Объединяем несколько итераторов в один
Функция chain() помогает нам объединять несколько итераторов в один.
Подписывайтесь на канал 👉@pythonofff
7 187
Превью из длинного текста
Допустим, у нас есть какой-то длинный текст в виде строки и надо сделать превью этого текста, например, для сайта. Первое, что приходит на ум – использовать слайсинг строк.
Но, как видите, текст оборвался на полуслове, поэтому такой вариант отпадает. Такую проблему хорошо решает метод shorten из модуля textwrap.
Первым аргументом передается строка, вторым указываем количество символов, которое должен содержать результат. Также третьим аргументом можно передать заготовку, которая будет вставляться в конце обрезанной строки.
Подписывайтесь на канал 👉@pythonofff
7 187
Нарушения речи? Выход есть!
В моем канале я делюсь простыми упражнениями, которые помогут:
✅ Говорить четче и увереннее
✅ Избавиться от "каши во рту"
✅ Помочь заговорить лучше
✅ Вернуть легкость общения
Подписывайся и давай бороться за речь вместе!
Узнать больше
#реклама 16+
О рекламодателе
7 187
Паттерн проектирования Singleton
Одиночка или же синглтон – это паттерн проектирования, описывающий объект, у которого имеется один единственный экземпляр.
Метод __new__ вызывается для создания экземпляра класса, перед вызовом __init__. На вход первым аргументом метод принимает сам класс, а возвращать должен уже экземпляр (даже можно экземпляр и другого класса).
В примере мы проверяем, есть ли значение у атрибута instance. Если нет, то присваиваем атрибуту экземпляр этого же класса. А если уже экземпляр создан, то просто его возвращаем.
То есть при вызове конструктора класса Singleton, будет возвращаться один и тот же объект из памяти.
Подписывайтесь на канал 👉@pythonofff
7 187
Цикл for для итераторов Python
Вы можете использовать цикл for в Python для итерации по какому-нибудь итерируемому объекту, например, по списку Python или по кортежу.
Подписывайтесь на канал 👉@pythonofff
7 187
Продолжение следует в «Летово Игра»
✨Стоит сделать первый шаг в «Летово» — и привычное лето превращается в межгалактическое приключение. Летающие тарелки на горизонте, учёные ловят таинственные сигналы, чтобы встать на защиту планеты, нужно быть готовым к новым открытиям и испытаниям.
«Летово Игра» — это образовательная игра для подростков 10–17 лет, созданная на базе школы «Летово» лучшими педагогами и опытными игротехниками. Знания и навыки здесь осваиваются не за партой, а через действия, вызовы и работу в команде.
Каждый день - это шаг в неизведанное: новые вызовы, важные задачи, совместные решения.😊
📅Смены длятся 10 дней и стартуют с 1 июля.
Количество мест ограничено.
Подать заявку
#реклама 16+
letovogame.ru
О рекламодателе
7 187
Добавляем классу большую функциональность
На прошлой неделе мы объясняли декоратор @ classmethod, а сейчас рассмотрим @ staticmethod.
@ staticmethod можно воспринимать как метод, который "не знает, к какому классу относится". Он просто получает переданные аргументы, без неявного первого аргумента, и его определение не изменяется через наследование. Еще раз: статические методы прикреплены к классу лишь для удобства — и не могут менять состояние ни класса, ни его экземпляра.
Зачем использовать. Статические методы делают код более читабельным и повторно используемым. Его также удобнее использовать для импорта по сравнению с обычными функциями, поскольку функцию не нужно отдельно импортировать.
В чем же разница?
@ classmethod используется в суперклассе для определения того, как метод должен вести себя, когда он вызывается разными дочерними классами.
@ staticmethod используется, когда мы хотим вернуть объект, независимо от вызываемого дочернего класса.
Подписывайтесь на канал 👉@pythonofff
7 187
Многопоточность
В модуле threading новый поток выполнения может начинаться с нового threading.Thread и присвоения ему функции для выполнения.
Параметр target ссылается на функцию (или вызываемый объект), который будет работать. Нить не начнет выполнение до start, также не будет вызываться Thread объекта.
Когда my_thread завершается, вызов start выкинет исключение RuntimeError. Если вы хотите запустить Thread в фоновом режиме, то передавайте daemon=True или установите my_thread.daemon в True перед вызовом start().
Подписывайтесь на канал 👉@pythonofff
7 187
+7
6 мастхэв инструментов для совместной работы в Битрикс24
Читайте подробнее в карточках. Регистрируйтесь сейчас, чтобы забрать их все себе бесплатно😊
Зарегистрироваться
#реклама 16+
office-online.bitrix24.ru
О рекламодателе
7 187
Создание и использование виртуальной среды
virtualenv — инструмент для создания изолированных сред Python. Программа создает папку, которая содержит все необходимые исполняемые файлы для использования пакетов, необходимых для проекта.
Создание новой виртуальной среды требуется только один раз для каждого проекта, для которого вы хотите изолировать зависимости:
python3 -m venv venv
Это создаст папку venv, содержащую оснастку сценариев и копию python самого двоичного файла. Название папки не имеет значения.
Чтобы активировать виртуальную среду, нужно запустить activate файл: source venv/bin/activate и далее мы можем свободно устанавливать любые зависимости, которые никак не скажутся на работе в будущих проектах.
Подписывайтесь на канал 👉@pythonofff
7 187
Тестирование на pytest
pytest — ближе по духу к языку Python нежели unittest, которая накладывает определенные обязательства при разработке тестов. Например, создание классов-наследников от TestCase или выполнение определенной процедуры запуска тестов.
Но при разработке на pytest ничего этого делать не нужно. Вы просто пишете функции, которые должны начинаться с "test_" и используете assert, встроенные в Python.
Также он поддерживает запуск тестов на unittest и nose, то есть полная обратная совместимость с ними.
Подписывайтесь на канал 👉@pythonofff
7 187
Получи грант на обучение в Центральном университете
Прояви себя, получи грант до 2,8 млн на обучение ИТ и бизнесу в вузе.
Для школьников 10-х и 11-х классов, СПО.
Подать заявку
#реклама
apply.centraluniversity.ru
О рекламодателе
7 187
Добавляем классу большую функциональность
Декоратор @ classmethod — это метод, который получает класс в качестве параметра, который принято обозначать как cls. Он указывает на класс ToyClass, а не на объект этого класса.
Методы класса привязаны к самому классу, а не его экземпляру. Они могут менять состояние класса, что отразится на всех объектах этого класса, но не могут менять конкретный объект.
Проще говоря, @ classmethod — это обычный метод класса, имеющий доступ ко всем атрибутам класса, через который он был вызван.
Подписывайтесь на канал 👉@pythonofff
7 187
Вычисляем размер объектов в памяти
Чтобы вычислить размер какого-либо объекта, можно воспользоваться функцией sys.getsizeof(object[, default]). Поскольку Python написан в полном соответствии с парадигмой ООП, таким объектом может быть все что угодно.
Однако, следует помнить, что хотя все built-in (встроенные) объекты и вернут правильный размер, в общем случае это не должно быть верно для каких-либо пользовательских объектов.
Аргумент default позволяет определить значение, которое будет возвращено, если тип объекта не предоставляет средства для извлечения размера и вызовет TypeError .
Функция getsizeof вызывает метод __sizeof__ объекта и добавляет дополнительные служебные данные сборщика мусора, если конечно объект управляется сборщиком мусора.
Подписывайтесь на канал 👉@pythonofff
7 187
Офисные башни JOIS от MR Office в 5 мин от Москва-Сити
JOIS - это современные башни класса А от нового бренда, объединяющего все офисные объекты MR Group.
Проект премиального бизнес-центра включает две башни:
1) 43-этажный небоскреб MAST с офисами от 96 м² и возможностью приобретения офисных помещений по отдельности, а также целыми этажами или блоками
2) Башня CREDO представляет из себя единый офис площадью 22 000 м²
Главные преимущества будущего проекта:
✨Ландшафтный парк площадью 1,3 Га и пешеходный маршрут более 2,3 км
✨Расположение в 5 минутах до ТТК и Москва-сити
✨3-уровневый подземный паркинг, рассчитанный на 400 машиномест
✨Отделка Shell&Core - оптимальное решение для создания эксклюзивного интерьера
✨Рассрочка 0% на приобретение коммерческой недвижимости
Узнать больше
Проектная декларация на сайте https://наш.дом.рф/. Застройщик: ООО СЗ Л2-ДЕВЕЛОПМЕНТ
#реклама
mr-group.ru
О рекламодателе
7 187
Not a Number
В модуле math есть особый объект, который называется NaN (Not a Number).
Эти объекты NaN не уникальны, и даже не равны самим себе, так что вы можете иметь несколько подобных объектов, взятых из нескольких разных источников.
Например можно создать подобный объект, просто передав строку 'nan' во float. Кстати говоря, это значит что вы можете использовать NaN в качестве ключа в словаре (хотя мы и не советуем это делать).
Подписывайтесь на канал 👉@pythonofff
7 187
Ускоряем код с помощью векторизации
Одним из приемов для ускорения работы циклов является векторизация вычислений, т. е. использование функций, которые поддерживают операции над векторами.
Вообще лучший способ ускорить любой цикл – это отказаться от него. В примере выше для работы с функцией my_func мы могли бы вызвать ее в цикле для каждого элемента списка, но гораздо проще использовать vectorize.
По сути, vectorize преобразует функцию таким образом, что она начинает принимать весь вектор целиком, а не отдельный его элемент. Надо помнить, что такой подход не всегда приводит к значительному ускорению.
Подписывайтесь на канал 👉@pythonofff
7 187
Получи грант до 1,2 млн руб. на обучение в магистратуре
4 офлайн программы, онлайн-магистратура по ML. Гранты до 1,2 млн руб. Стажировки, диплом гос. образца и фокус на твоей карьере в ЦУ
Подать заявку
#реклама 16+
apply.centraluniversity.ru
О рекламодателе
7 187
Запрос пароля у пользователя
Множеству инструментов командной строки или скриптов для работы требуется имя пользователя и пароль. Если вам придётся писать подобную программу – вы, возможно, сочтёте полезным модуль getpass.
Этот очень простой пакет позволяет запрашивать у пользователя его пароль, а также получать имя пользователя, извлекая имя, под которым он вошёл в систему.
Подписывайтесь на канал 👉@pythonofff
