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

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

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

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

РКН: clck.ru/3G6pBb
加入频道
Узнайте как работать из дома без навыков программирования и зарабатывать от 100.000 рублей в месяц на закрытом вебинаре от SkyPro

Специальный гость вебинара Карина kerry.catt — популярный блогер по релокации в США.

На эфире вы узнаете:
— 3 самых востребованных IT-профессии, где не надо ковыряться в коде.
— Примерите на себе профессию, которая подойдет именно вам.
— Узнаете как легко без опыта перейти в новую профессию меньше, чем за полгода.

Все участники получат в подарок гарантированную скидку на обучение новой профессии от SkyPro

Дата старта 27 апреля в 19:00 по МСК. Спешите зарегистрироваться, записи эфира не будет: https://clck.ru/34EbKc
Как вывести переменную и строку в Python, разделив их запятыми

Вы можете указать строку и переменную в качестве аргументов функции print(), просто перечислив их через запятую.
В глубине души мы все одинаковые (ч.1)

При id вызове Python создал объект WTF класса и передал его id функции. id Функция берет его id (его ячейку памяти) и выбрасывает объект. Объект уничтожен. Когда мы делаем это дважды подряд, Python выделяет ту же ячейку памяти и для этого второго объекта.

Поскольку (в CPython) id в качестве идентификатора объекта используется ячейка памяти, идентификатор двух объектов одинаков.
В глубине души мы все одинаковые (ч.2)

Идентификатор объекта уникален только на протяжении всего срока службы объекта. После уничтожения объекта или до его создания что-то еще может иметь тот же идентификатор.

Как вы можете заметить, порядок, в котором уничтожаются объекты, - это то, что имеет здесь решающее значение.
Заканчивается бесплатная раздача 3 курсов от Geekbrains общей стоимостью 23500 рублей, для старта в IT:

— Создание с нуля первой программы на Python
— Основы программирования
— Курс: как сменить профессию, трудоустроиться и обеспечить свою карьеру в IT

⚠️ Раздача действует еще 3 дня. Успейте забрать курсы, которые другие покупали за деньги: https://gb.ru/link/TU6vIN
Беспорядок внутри порядка * (ч.1)

Причина, по которой непереходное равенство не соблюдалось среди dictionary, ordered_dict и another_ordered_dict, заключается в том, как eq метод реализован в OrderedDict классе.

А причина такого равенства в поведении заключается в том, что он позволяет OrderedDict заменять объекты напрямую везде, где используется обычный словарь.
Беспорядок внутри порядка * (ч.2)

Хорошо, так почему изменение порядка повлияло на длину сгенерированного set объект? Ответ заключается только в отсутствии непереходного равенства.

Поскольку наборы представляют собой "неупорядоченные" коллекции уникальных элементов, порядок, в котором вставляются элементы, не должен иметь значения. Но в данном случае это действительно имеет значение.
Продолжай пытаться... *

Когда return, break или continue инструкция выполняется в try набор инструкций "try ... finally", finally предложение также выполняется при выходе.

Возвращаемое значение функции определяется последним return выполняется инструкция. Поскольку finally предложение всегда выполняется, a return инструкция, выполняемая в finally предложение всегда будет выполняться последним.

Предостережение здесь в том, что если предложение finally выполняет return или break инструкция, временно сохраненное исключение отбрасывается.
Ищем медработников, чтобы с нуля обучить профессии Data Scientist в медицине.

С помощью машинного обучения вы научитесь обрабатывать данные по сердечно-сосудистым заболеваниям, онкологии, сигналам ЭЭГ, рентгеновским изображениям, сможете ставить диагнозы, обнаруживать болезни и персонализировать лечение.

Курс прекрасно подойдёт:

Медработникам
Освоите IT-специализацию в знакомой нише, увеличите доход и сможете улучшать жизнь сотен людей с помощью искусственного интеллекта.

Новичкам в Data Science
Станете специалистом по Data Science с нуля: освоите аналитику в медицине, бизнесе и других направлениях.

IT-специалистам
Поможем систематизировать знания в Data Science, ускорить карьерный рост и больше зарабатывать.

Вашими преподавателями станут эксперты из таких компаний как: Parexel, X5 Retail Group, NVIDIA, Pirogov AI.

Если после успешного обучения вы не найдёте работу, мы вернём вам деньги, ведь гарантия трудоустройства закреплена в договоре.

👉 Переходите по ссылке и получите курс со скидкой 61% и 3 месяца в подарок🔥

Реклама. ООО ГикБреинс. Государственная лицензия № 040485.
Для чего? (ч.1)

Оператор for определен в Python как:

for_stmt: 'for' exprlist 'in' testlist ':' suite ['else' ':' suite]

Где exprlist является ли назначение целевым. Это означает, что эквивалент {exprlist} = {next_value} выполняется для каждого элемента в итерируемом.

В enumerate(some_string) функция выдает новое значение i (счетчик растет) и символ из some_string в каждой итерации. Затем он устанавливает (только что назначенный) i ключ к словарю some_dict к этому персонажу.
Попробуйте себя в роли разработчика на Python, даже если никогда не занимались этим! На бесплатном онлайн-интенсиве Skillbox по программированию вы на практике попробуете себя в разработке на языке Python и узнаете, как работают его популярные алгоритмы. Проанализируете данные с помощью Data Science и освоите базовые навыки по разным направлениям IT, а также получите советы по развитию карьеры.

Подробная программа: https://epic.st/r_oriM

🎁 Всех участников ждут полезные подарки.

Выберите свой путь в мире IT с 4 по 6 мая в 19:00 по московскому времени.
Для чего? (ч.2)

Оператор присваивания i = 10 никогда не влияет на итерации цикла из-за способа работы циклов for в Python. Перед началом каждой итерации следующий элемент, предоставляемый итератором (range(4) в данном случае) распаковывается и присваивается переменным целевого списка (i в данном случае).
Несоответствие во времени оценки (ч.1)

В выражении генератора in предложение вычисляется во время объявления, но условное предложение вычисляется во время выполнения.

Итак, перед выполнением, array повторно присваивается списку [2, 8, 22], и поскольку из 1, 8 и 15 только количество 8 больше 0, генератор выдает только 8.
Несоответствие во времени оценки (ч.2)

Различия в выходных данных g1 и g2 во второй части обусловлены тем, как переменным array_1 и array_2 повторно присваиваются значения.

В первом случае, array_1 привязан к новому объекту [1,2,3,4,5] и поскольку in предложение вычисляется во время объявления, оно все еще ссылается на старый объект [1,2,3,4] (который не уничтожается).

Во втором случае назначение фрагмента для array_2 обновляет тот же самый старый объект [1,2,3,4] до [1,2,3,4,5]. Следовательно, g2 и array_2 все еще имеют ссылку на один и тот же объект (который теперь был обновлен до [1,2,3,4,5]).
Несоответствие во времени оценки (ч.3)

Хорошо, следуя логике, обсуждавшиеся до сих пор, не должно ли значение list(gen) в третьем фрагменте быть [11, 21, 31, 12, 22, 32, 13, 23, 33]? (потому что array_3 и array_4 будут вести себя точно так же, как array_1). Причина, по которой были обновлены (только) array_4 значения, объясняется в PEP-289.

Немедленно вычисляется только самое внешнее выражение for, остальные выражения откладываются до запуска генератора.
У Яндекс Практикума есть бесплатный курс по основам анализа данных. В нём забавный интерактивный сюжет и много практики: четыре реальных кейса из разных областей. Вам предстоит:

— выяснить причину массовой поломки гаджетов,
— проверить окупаемость рекламы мобильного приложения,
— выбрать стратегию развития ИИ-стартапа,
— оценить эффективность роботов в службе поддержки.

На курсе вы напишете первый код на Python и поймёте, чем занимаются специалисты в сфере.
Приходите учиться бесплатно
is not ... не является is (not ...)

is not это один двоичный оператор, и его поведение отличается от использования is и not разделенных.

is not вычисляется, False если переменные по обе стороны от оператора указывают на один и тот же объект и True в противном случае.

В примере (not None) вычисляется как True, поскольку значение None находится False в логическом контексте, поэтому выражение становится 'something' is True.
Обучаемся дизайну целых 6 месяцев за 0₽.

Лучший способ понять подойдет ли вам дизайн-профессия — попробовать её на практике. Ребята из Yudaev School дают вам такую возможность.

Оформите обучение в рассрочку и платите за обучение через целых 6 месяцев, за которые вы сможете основательно понять подойдет ли вам профессия или нет. Решите продолжить обучаться дальше — школа гарантирует вам трудоустройство у своих партнеров с зп на старте от 60 000₽.

Записаться на обучение: https://clck.ru/34CqpN
Крестики-нолики, где X побеждает с первой попытки!

Когда мы инициализируем row переменную, эта визуализация объясняет, что происходит в памяти.

И когда board инициализируется путем умножения row, вот что происходит внутри памяти (каждый из элементов board[0], board[1] и board[2] является ссылкой на один и тот же список, на который ссылается row).

Мы можем избежать этого сценария здесь, не используя row переменную для генерации board.
Переменная Шредингера (ч.1)

Значения x были разными на каждой итерации до добавления some_func к funcs, но все функции возвращают 6, когда они вычисляются после завершения цикла.