Python School
82.3K subscribers
2.41K photos
8 videos
572 links
Уроки по Python, которые упростят вам жизнь. Без идиотских туториалов.

Наши мемы для программистов: @conhum

Сотрудничество - @alivian

Канал сотрудничает с рекламным сервисом @Tgpodbor_official

РКН: clck.ru/3G6pBb
加入频道
ТРЕБУЮТСЯ ПРОГРАММИСТЫ для работы в международных компаниях!  

Обучение с 0 в удобном  формате: 
offline-обучение в группах до 16 человек (филиалы в 200+ городах России);
online-обучение с живыми преподавателями (а не говорящими головами). 

Компьютерная академия TOП — это: 

актуальная программа обучения, с которой вы станете профессионалом, даже если до этого не слышали о программировании;

– практика и реальные навыки;

дружелюбная атмосфера и обучение с элементами геймификации; 

готовое портфолио и возможность найти работу еще до окончания обучения;

ГАРАНТИРОВАННОЕ ТРУДОУСТРОЙСТВО (или возврат‼️денег за обучение). 

💡 Студентов академии ждут в Яндексе, Сбербанке, 2Гис, Microsoft и других компаниях, куда нелегко устроиться и после 6 лет университета! 

💰 Средняя зарплата при первом трудоустройстве — 60 000 рублей

Стать крутым программистом может каждый! Академия TOП это доказала. 

ОСТАВЬТЕ заявку и получите бонусы:
👉 https://bit.ly/41bhdda
Используем встроенные функции в Python для написания стандартной логики

В Python есть несколько встроенных функций, которые помогают при написании некоторых стандартных логических операций.

Например, функция map() - известная и часто используемая функция. Она получает два параметра, один из которых - функция, а другой - итератор. При выполнении функции map функция применяется к каждому элементу в итераторе.
Давно хотели попробовать свои силы в программировании и понять, ваше ли это? Отлично! Практический мини-курс по Python как раз для тех, кто хочет познакомиться сразу с несколькими направлениями Python-разработки и решить, что нравится больше 😉

Зарегистрируйтесь сейчас, получите гайд по профессии и узнайте, почему Python — идеальный язык для новичка: https://epic.st/f2eghe

Много практики не бывает. Погрузитесь в мир Python-разработки вместе с руководителем направления по исследованию данных в Сбере — Анастасией Борневой:
— создадите бота для Telegram, который умеет переводить голос в текст;
— «научите» бота обрабатывать фотографии;
— познакомитесь с парсингом данных;
— напишете сайт с помощью фреймворка Flask — инструмента, который помогает быстро создавать любые проекты: интернет-магазины, социальные сети, образовательные платформы и т. д.

После просмотра видеоматериалов вас ждёт онлайн-встреча со спикером. В прямом эфире вы сможете обсудить практические работы и задать вопросы о профессии.

Все участники буткемпа получат сертификат на скидку 10 000 рублей на любой курс Skillbox и электронную книгу издательства МИФ «Разум под контролем». Ах, да, самое важное — бессрочный доступ! Материалы курса будут доступны вам всегда — сможете вернуться к ним в любое время.

Участвуйте!
Валидные значения словаря

В словарь можно поместить что угодно – вы не ограничены числами или строками. Можете поместить списки внутрь словаря и получить доступ к вложенным значениям.
Оператор Walrus

По какой-то причине оператор "Walrus" в Python 3.8 (:=) стал довольно популярным. Он может быть полезен в ситуациях, когда вы хотели бы присвоить значения переменным внутри выражения. Например, это спасло одну строку кода и неявно предотвратило вызов some_func дважды.
Использование оператора Walrus (ч.1)

Непарентизированное "выражение присваивания" (использование оператора walrus) ограничено на верхнем уровне, следовательно SyntaxError в a := "wtf_walrus" утверждение первого фрагмента. Заключая в скобки, он работал так, как ожидалось, и назначал a.
Говорят, что среди программистов больше мужчин, чем женщин. Проверим, так ли это. Какого вы пола?
Anonymous Poll
83%
Мужской
17%
Женский
Использование оператора Walrus (ч.2)

Синтаксис оператора Walrus имеет вид, NAME:= exprгде NAME - допустимый идентификатор, а expr - допустимое выражение. Следовательно, повторяемая упаковка и распаковка не поддерживаются, что означает, (a := 6, 9) эквивалентно ((a := 6), 9) и, в конечном счете, (a, 9) (где a значение равно 6').

Как обычно, заключение в скобки выражения, содержащего = operator, не допускается. Отсюда синтаксическая ошибка в (a, b = 6, 9).
Строки

Обратите внимание, что оба идентификатора одинаковы. Поведение в этом фрагменте связано с оптимизацией CPython (называемой интернированием строк), которая в некоторых случаях пытается использовать существующие неизменяемые объекты вместо того, чтобы каждый раз создавать новый объект.
Строки иногда могут быть сложными (ч.1)

Когда для a и b в одной строке заданы значения "wtf!", интерпретатор Python создает новый объект, а затем одновременно ссылается на вторую переменную. Если вы делаете это в отдельных строках, он не "знает", что уже существует "wtf!" как объект (потому что "wtf!" неявно интернирован согласно фактам, упомянутым выше). Это оптимизация во время компиляции. Эта оптимизация не применяется к версиям CPython 3.7.x (проверьте этот вопрос для более подробного обсуждения).
Строки иногда могут быть сложными (ч.2)

Модуль компиляции в интерактивной среде, такой как IPython, состоит из одного оператора, тогда как в случае модулей он состоит из всего модуля. a, b = "wtf!", "wtf!" это один оператор, тогда как a = "wtf!"; b = "wtf!" это два оператора в одной строке. Это объясняет, почему идентификаторы различаются в a = "wtf!"; b = "wtf!", а также объясняет, почему они одинаковы при вызове в some_file.py
Строки иногда могут быть сложными (ч.3)

Резкое изменение выходных данных четвертого фрагмента связано с методом глазковой оптимизации, известным как постоянное сворачивание. Это означает, что выражение 'a'*20 заменяется на 'aaaaaaaaaaaaaaaaaaaa' во время компиляции, чтобы сэкономить несколько тактов во время выполнения. Постоянное сгибание происходит только для строк, имеющих длину менее 21. (Почему? Представьте размер .pyc файла, сгенерированного в результате выражения 'a'*10**10). Вот исходный код реализации для того же самого.
Будьте осторожны с цепными операциями (ч.1)

Согласно документации, если a, b, c, ..., y, z являются выражениями, а op1, op2, ..., opN - операторами сравнения, то op1 является op2 c ... y opN z эквивалентен op1 b и b op2 c и ... y opN z, за исключением того, что каждое выражение вычисляется не более одного раза.

Из-за этого мы получаем что, False is False is False эквивалентно (False is False) and (False is False) и True is False == False эквивалентно (True is False) and (False == False) и поскольку первая часть инструкции (True is False) вычисляется как False, общее выражение вычисляется как False.
Ответьте, пожалуйста, на вопрос. Нам это важно, чтобы продолжать создавать актуальный для вас контент. Сколько вам лет?
Anonymous Poll
20%
До 18
19%
От 18 до 24-х лет
24%
От 25 до 34-х лет
24%
От 35 до 44-х лет
7%
От 45 до 54-х лет
6%
Старше 50
Python — язык программирования, который легко освоить с нуля. На нём создают сайты, игры, чат-боты, нейросети и проводят научные вычисления. Благодаря такой универсальности он один из самых популярных в мире. Python-разработчики востребованы в самых разных IT-направлениях — от веб-разработки до финтеха.

С 27 по 29 апреля в 19:00 по московскому времени присоединяйтесь к бесплатному интенсиву, где вы сможете попробовать свои силы в программировании на практике: ▶️ https://epic.st/0R1kY.

Вы научитесь:
— Получать данные с сайтов, которые помогают аналитикам и владельцам бизнеса изучать рынок, конкурентов и динамику цен.
— Работать с API — специальными программными инструкциями, с помощью которых можно получить данные с сайтов.
— Парсить HTML. Узнаете, как автоматизировать сбор информации прямо из HTML-кода сайта.
— Автоматически выделять важное из огромных массивов данных с помощью Python.
— Писать программы для автоматической отправки важных писем по расписанию, тем самым автоматизировать Email-рассылки.
— Разбираться в рынке фриланса на Python.

🎁 Всем участникам, прошедшим интенсив, подарим электронную книгу Роджера Сайпа и Робба Збиерски «Разум под контролем» издательства МИФ. Подключайтесь, задавайте вопросы и получите сертификат на скидку 10 000 рублей на любой курс Skillbox.
Будьте осторожны с цепными операциями (ч.2)

Такое поведение в этом примере может показаться вам глупым но, оно фантастично с такими вещами, как a == b == c и 0 <= x <= 100. Поэтому 1 > 0 < 1 эквивалентно, (1 > 0) and (0 < 1) который вычисляется как True и Выражение (1 > 0) < 1 эквивалентно True < 1.

Итак, 1 < 1 вычисляется как False
Разница между is и ==

is оператор проверяет, ссылаются ли оба операнда на один и тот же объект (т.Е. он проверяет, совпадает ли идентификатор операндов или нет).

== оператор сравнивает значения обоих операндов и проверяет, совпадают ли они.
Это is для равенства ссылок и == для равенства значений.

256 является существующим объектом, но 257 им не является. При запуске python будут выделены числа от -5 до 256. Эти числа используются часто, поэтому имеет смысл просто иметь их наготове.
Годная реклама стала такой редкостью, что ей посвятили канал

Наконец-то, блин, нормальная рекламаклииик
Как не использовать оператор is

Тут оба a и b ссылаются на один и тот же объект при инициализации с одинаковым значением в одной строке. Это происходит когда a и b устанавливаются в 257 значения в одной строке, интерпретатор Python создает новый объект, а затем одновременно ссылается на вторую переменную.

Если вы делаете это в отдельных строках, он не "знает", что уже существует 257 как объект. Это оптимизация компилятора, и она особенно применима к интерактивной среде. Когда вы вводите две строки в живой интерпретатор, они компилируются отдельно, следовательно, оптимизируются отдельно.
Хэш брауни (ч.1)

Уникальность ключей в словаре Python определяется эквивалентностью, а не идентичностью. Итак, даже несмотря на то, что 5, 5.0 и 5 + 0j являются различными объектами разных типов, поскольку они равны, они не могут оба находиться в одном и том же dict (или set). Как только вы вставите любой из них, попытка поиска любого отдельного, но эквивалентного ключа завершится успехом с исходным отображенным значением (вместо сбоя с KeyError)