Разъяснивший Python
前往频道在 Telegram
Твой проводник в омут Python'а Ссылка: @Portal_v_IT Сотрудничество: @oleginc, @tatiana_inc Канал на бирже: https://telega.in/c/python_pssss
显示更多7 003
订阅者
-324 小时
-137 天
-7530 天
帖子存档
7 003
💋 Kiss Знакомства - настоящий бот знакомств в Telegram!
1. Удаляем Дайвинчик!
2. Забываем про Tinder!
3. Заходим в Kiss! 👈 (нажимай)
Листаем анкетки, и ищем настоящие отношение!
7 003
Превышен лимит на преобразование целых строк
Этот вызов int() отлично работает в Python 3.10.6 и вызывает ошибку ValueError в Python 3.10.8. Обратите внимание, что Python все еще может работать с большими целыми числами. Ошибка возникает только при преобразовании между целыми числами и строками.
К счастью, вы можете увеличить предел допустимого количества цифр, когда ожидаете, что операция превысит его. Для этого вы можете использовать один из следующих:
Флаг командной строки -X int_max_str_digits
Функция set_int_max_str_digits() из модуля sys
Переменная среды PYTHONINTMAXSTRDIGITS
Разъяснивший Python
7 003
Давайте посмотрим, сможете ли вы догадаться об этом? (ч.2)
Теперь мы устанавливаем ключ 5 в словаре на кортеж, ({}, 5) создающий циклическую ссылку ({...} в выходных данных ссылается на тот же объект, на который a уже ссылается). Другим более простым примером циклической ссылки может быть.
Аналогично обстоит дело в нашем примере (a[b][0] это тот же объект, что и a)
Разъяснивший Python
7 003
Давайте посмотрим, сможете ли вы догадаться об этом? (ч.1)
Согласно справочнику по языку Python, операторы присваивания имеют вид
(target_list "=")+ (expression_list | yield_expression)Оператор присваивания вычисляет список выражений (помните, что это может быть одно выражение или список, разделенный запятыми, последний выдает кортеж) и присваивает отдельный результирующий объект каждому из целевых списков слева направо. + In (target_list "=")+ означает, что может быть один или более целевых списков. В данном случае целевыми списками являются a, b и a[b] (обратите внимание, что список выражений равен ровно одному, что в нашем случае и есть {}, 5). После вычисления списка выражений его значение распаковывается в целевые списки слева направо. Итак, в нашем случае сначала {}, 5 кортеж распаковывается в a, b, и теперь у нас есть a = {} и b = 5. a теперь присвоен {}, который является изменяемым объектом. Разъяснивший Python
7 003
Таинственное преобразование типа ключа (ч.2)
Поскольку оба объекта имеют одинаковое значение и равны, они представлены одним и тем же ключом в словаре.
Для желаемого поведения мы можем переопределить eq метод в SomeClass
Разъяснивший Python
7 003
Ошибки любят молчать. Твоя задача — их разговорить
Большинство багов остаются в продукте, потому что их не заметили. А ты заметишь.
Есть один курс, который за пару вечеров научит подходу: не просто «кликать» по интерфейсу, а мыслить как тестировщик — сомневаться, искать уязвимости и находить, где всё ломается.
Ты потренируешься искать логику, проверять границы, ломать сценарии — и делать это не ради вредности, а ради качества.
Пройди курс и пойми, как заработать на умении быть внимательным. Это, кстати, редкий и дорогой навык.
7 003
Таинственное преобразование типа ключа (ч.1)
И объект, s и строка "s" имеют одинаковое значение, потому что SomeClass наследуют hash метод str класса.
SomeClass("s") == "s" вычисляется как, True потому что SomeClass также наследует eq метод от str класса.
Разъяснивший Python
7 003
Исчезающая переменная из внешней области (ч.2)
Эти предложения не ограничены в Python. Все в примере присутствует в той же области видимости, а переменная e была удалена из-за выполнения except предложения. То же самое не относится к функциям, которые имеют свои отдельные внутренние области.
В Python 2.x имя переменной e присваивается Exception() экземпляру, поэтому при попытке печати ничего не выводится.
Разъяснивший Python
7 003
Проверка типов переменной с помощью typing.get_origin и typing.get_args
Когда ты работаешь с аннотациями типов (особенно с Union, List[int], Optional[str] и т.п.), стандартной проверки isinstance() недостаточно.
Это удобно, когда ты хочешь программно проанализировать или валидировать типы в декораторах, валидаторах, фреймворках и библиотеках.
Итог:
С помощью get_origin и get_args ты можешь "распаковать" сложные типы и точно понимать, что за структура стоит за аннотацией. Очень полезно при создании универсальных функций или фреймворков.
Разъяснивший Python
7 003
Repost from 1337
🎉 Большой розыгрыш от крупнейшего IT-медиа 1337, легендарного паблика Рифмы и Панчи, канала Техно.
Победителей будет много, а для участия нужны лишь пара кликов:
1. Подписаться на Рифмы и Панчи, 1337 и на Техно.
2. Нажать «Участвовать» под этим постом
Что по призам:
1 место - Iphone 16 Pro 2 место - PS5 Slim 3 место - Nintendo Switch 2 4-10 места - 10 000 рублей на картуПобедителей определим 21 июля в 18:00 МСК. Всем удачи!
7 003
Исчезающая переменная из внешней области (ч.1)
Когда исключение было назначено с использованием as target, оно очищается в конце except предложения.
Это означает, что исключению должно быть присвоено другое имя, чтобы иметь возможность ссылаться на него после предложения except. Исключения удаляются, потому что с привязкой к ним обратной трассировки они образуют ссылочный цикл с фреймом стека, сохраняя все локальные файлы в этом фрейме живыми до тех пор, пока не произойдет следующая сборка мусора.
Разъяснивший Python
7 003
"Изменение" неизменяемого! (ч.1)
Это может показаться тривиальным, если вы знаете, как работают ссылки в Python.
Цитирую из https://docs.python.org/3/reference/datamodel.html
Неизменяемые последовательности Объект неизменяемого типа последовательности не может измениться после его создания. (Если объект содержит ссылки на другие объекты, эти другие объекты могут быть изменяемыми и могут быть изменены; однако коллекция объектов, на которые непосредственно ссылается неизменяемый объект, не может измениться.)
Разъяснивший Python
7 003
Мир создают те, кто решается — станьте творцом.
Графический дизайн — не про «рисовать». Это про то, как бизнесы общаются с миром через визуал. Это про стиль, ассоциации, характер бренда. И вы можете быть тем, кто это создаёт.
Попробуйте себя в дизайне — без вложений, без риска. За 3 дня вы освоите Illustrator и Photoshop, соберёте концепт бренда и оформите свой первый кейс для портфолио.
Просто пройдите мини-курс. Он подскажет, насколько вам подходит дизайн. Остальное вы почувствуете сами.
7 003
Распознаватель PDF-счетов
Данный проект позволяет извлекать нужные даннгые из PDF-документов. Работает следующим образом: сначала читается текст из PDF, находим дату, номер, сумму и поставщика, а затем сохраняем данные в JSON. При желании ты можешь переделать поиск под свои нужды.
Ссылка на код
Разъяснивший Python
7 003
Быстрая проверка времени выполнения с timeit
Иногда нужно быстро узнать, сколько времени занимает тот или иной фрагмент кода. Вместо написания таймеров — используй модуль timeit.
Модуль timeit точно измеряет производительность фрагмента кода и учитывает мелкие колебания времени.
Итог:
timeit — отличный инструмент для быстрой и точной оценки производительности. Удобен для сравнений разных реализаций алгоритмов и оптимизаций.
Разъяснивший Python
7 003
Nan-рефлексивность (ч.2)
Из-за прошлого предположения сначала сравнивается идентификатор (поскольку это быстрее) при сравнении двух элементов, а значения сравниваются только тогда, когда идентификаторы не совпадают.
Поскольку идентификаторы x и y различны, учитываются значения, которые также различны; следовательно, сравнение возвращается False на этот раз.
Разъяснивший Python
7 003
Распаковка словаря в аргументы функции
Иногда нужно передать значения из словаря в функцию — можно сделать это красиво и лаконично.
data автоматически распакует ключи словаря как имена аргументов, а значения — как аргументы функции.
Итог:
Когда у тебя есть словарь с нужными данными, не передавай каждый параметр вручную — просто используй . Это сокращает код и повышает читаемость.
Разъяснивший Python
7 003
Используй enumerate вместо счётчиков вручную
Когда нужно одновременно итерироваться по элементам и знать их индекс — не нужно делать это вручную!
Итог:
enumerate — твой друг при работе с индексами в цикле. Это Pythonic и избавляет от лишнего кода.
Разъяснивший Python
7 003
Nan-рефлексивность (ч.1)
'inf' и 'nan' - это специальные строки (без учета регистра), которые при явном приведении к float типу используются для представления математической "бесконечности" и "не числа" соответственно.
Поскольку, согласно стандартам IEEE NaN != NaN, соблюдение этого правила нарушает предположение о рефлексивности элемента коллекции в Python, т. Е. если x является частью коллекции, подобной list, реализации, подобные comparison, основаны на предположении, что x == x.
Разъяснивший Python
7 003
Хотите стать Геймдизайнером и получить 3 миллиона рублей на свою первую игру?
«Нам нужны люди, которые умеют придумывать игры, а не просто в них играть!» — так звучал главный запрос от студий в этом году.
Рынок трещит по швам: вакансий сотни, специалистов — единицы.
Именно поэтому мы по запросу индустрии запустили бесплатный мини-курс по геймдизайну.
Да-да, бесплатно. Потому что это — инвестиция в тех, кто войдёт в геймдев сразу с козырей.
Тех, кто пройдёт мини-курс, мы не просто учим — мы закидываем плюшками:
— Прямой эфир с опытным продюсером игр
— Персональная консультация по карьере
— Бонус: конференция по нейросетям для всех, кто досмотрит хотя бы 1 урок
— Сертификат и скидка 10 000 ₽ на следующий шаг в профессии
— И шанс забрать 3 млн рублей от студии Gamebox
Начните с теста, получите доступ к урокам, и давайте уже делать свою игру. Пока другие «ещё подумают».
