Все разобрано? (ч.2)
Таким образом, во время сравнения sorted(y) == sorted(y) первый вызов sorted() будет использовать итератор y, а следующий вызов просто вернет пустой список.
#theory // Just Python
Таким образом, во время сравнения sorted(y) == sorted(y) первый вызов sorted() будет использовать итератор y, а следующий вызов просто вернет пустой список.
#theory // Just Python
goto но почему?
Рабочая версия goto на Python была анонсирована в качестве первоапрельской шутки 1 апреля 2004 года.
Текущие версии Python не имеют этого модуля.
Хотя он и работает, но, пожалуйста, не используйте его. Вот причина, почему goto его нет в Python.
#theory // Just Python
Рабочая версия goto на Python была анонсирована в качестве первоапрельской шутки 1 апреля 2004 года.
Текущие версии Python не имеют этого модуля.
Хотя он и работает, но, пожалуйста, не используйте его. Вот причина, почему goto его нет в Python.
#theory // Just Python
Приготовьтесь!
future Модуль обычно используется для предоставления функций из будущих версий Python. Однако "будущее" в этом конкретном контексте звучит иронично.
Это пасхальное яйцо, посвященное чувствам сообщества по этому вопросу.
Код на самом деле присутствует здесь, в future.c файле.
Когда компилятор CPython сталкивается с инструкцией future, он сначала запускает соответствующий код в future.c, прежде чем рассматривать его как обычную инструкцию import .
#theory // Just Python
future Модуль обычно используется для предоставления функций из будущих версий Python. Однако "будущее" в этом конкретном контексте звучит иронично.
Это пасхальное яйцо, посвященное чувствам сообщества по этому вопросу.
Код на самом деле присутствует здесь, в future.c файле.
Когда компилятор CPython сталкивается с инструкцией future, он сначала запускает соответствующий код в future.c, прежде чем рассматривать его как обычную инструкцию import .
#theory // Just Python
Давайте познакомимся с дружелюбным дядей по языку на всю жизнь
Это относится к PEP-401, выпущенному 1 апреля 2009 года (теперь вы знаете, что это значит).
Цитирую из PEP-401
Учитывая, что оператор неравенства != в Python 3.0 был ужасной ошибкой, вызывающей боль в пальцах, FLUFL восстанавливает оператор <> diamond в качестве единственного написания.
#theory // Just Python
Это относится к PEP-401, выпущенному 1 апреля 2009 года (теперь вы знаете, что это значит).
Цитирую из PEP-401
Учитывая, что оператор неравенства != в Python 3.0 был ужасной ошибкой, вызывающей боль в пальцах, FLUFL восстанавливает оператор <> diamond в качестве единственного написания.
#theory // Just Python
Сколько времени может работать код
Вы не задумывались, сколько именно времени занимает работа кода в рамках одной ячейки?
Магическая команда time позволяет получить всю необходимую информацию о времени.
#theory // Just Python
Вы не задумывались, сколько именно времени занимает работа кода в рамках одной ячейки?
Магическая команда time позволяет получить всю необходимую информацию о времени.
#theory // Just Python
uuid
Стандартный модуль uuid — быстрый и простой способ сгенерировать UUID (universally unique identifier, глобально уникальный идентификатор).
Так мы создаём случайное 128-битное число, которое почти наверняка будет уникальным.
Существует более 2¹²² возможных UUID. Это более 5 ундециллионов или 5,000,000,000,000,000,000,000,000,000,000,000,000.
Вероятность нахождения дубликатов в заданном наборе крайне мала. Даже при наличии триллиона UUID вероятность того, что среди них есть дубликат, гораздо меньше, чем один к миллиарду.
Вполне недурно для двух строк кода.
#theory // Just Python
Стандартный модуль uuid — быстрый и простой способ сгенерировать UUID (universally unique identifier, глобально уникальный идентификатор).
Так мы создаём случайное 128-битное число, которое почти наверняка будет уникальным.
Существует более 2¹²² возможных UUID. Это более 5 ундециллионов или 5,000,000,000,000,000,000,000,000,000,000,000,000.
Вероятность нахождения дубликатов в заданном наборе крайне мала. Даже при наличии триллиона UUID вероятность того, что среди них есть дубликат, гораздо меньше, чем один к миллиарду.
Вполне недурно для двух строк кода.
#theory // Just Python
Виртуальные среды
И так к нашему счастью, в Python есть поддержка виртуальных сред, которые позволяют взять лучшее от двух миров.
Так же вы теперь можете иметь разные независимые версии Python на одной машине
#theory // Just Python
И так к нашему счастью, в Python есть поддержка виртуальных сред, которые позволяют взять лучшее от двух миров.
Так же вы теперь можете иметь разные независимые версии Python на одной машине
#theory // Just Python
Давно хотели просмотреть содержимое внешнего файла?
Часто вам может понадобиться скопировать в свой код несколько строк кода из внешнего файла. Команда %pycat избавит вас от долгой процедуры извлечения определенных данных из файла и их копирования в другой файл. Она позволяет просматривать содержимое любого файла в любом каталоге.
#theory // Just Python
Часто вам может понадобиться скопировать в свой код несколько строк кода из внешнего файла. Команда %pycat избавит вас от долгой процедуры извлечения определенных данных из файла и их копирования в другой файл. Она позволяет просматривать содержимое любого файла в любом каталоге.
#theory // Just Python
Как скопировать всё содержимое внешнего файла?
В большинстве случаев возникает необходимость скопировать содержимое вашей ячейки в скрипт python или текстовый файл непосредственно из вашего блокнота Jupyter.
Вместо того чтобы копировать все и создавать новый файл, вы можете напрямую экспортировать свои данные, добавив команду writefile в ячейку перед кодом.
#theory // Just Python
В большинстве случаев возникает необходимость скопировать содержимое вашей ячейки в скрипт python или текстовый файл непосредственно из вашего блокнота Jupyter.
Вместо того чтобы копировать все и создавать новый файл, вы можете напрямую экспортировать свои данные, добавив команду writefile в ячейку перед кодом.
#theory // Just Python
else - Предложение для циклов
Наверняка вы знаете, что в пайтоне для циклов for и while предусмотрен блок else. И с этим блоком возникает много путаницы, потому что его действие на первый взгляд неинтуитивно. Но с этим легко справиться.
else Предложение после цикла выполняется только тогда, когда после всех итераций нет явного break. Вы можете думать об этом как о предложении "nobreak".
#theory // Just Python
Наверняка вы знаете, что в пайтоне для циклов for и while предусмотрен блок else. И с этим блоком возникает много путаницы, потому что его действие на первый взгляд неинтуитивно. Но с этим легко справиться.
else Предложение после цикла выполняется только тогда, когда после всех итераций нет явного break. Вы можете думать об этом как о предложении "nobreak".
#theory // Just Python
Многоточие
В Python Ellipsis это глобально доступный встроенный объект, который эквивалентен ... .
1) В качестве заполнителя для кода, который еще не был написан (точно так же, как pass инструкция)
2) В синтаксисе нарезки для представления полных фрагментов в оставшемся направлении
#theory // Just Python
В Python Ellipsis это глобально доступный встроенный объект, который эквивалентен ... .
>>> ...
Ellipsis
В основном многоточие используются для нескольких целей,1) В качестве заполнителя для кода, который еще не был написан (точно так же, как pass инструкция)
2) В синтаксисе нарезки для представления полных фрагментов в оставшемся направлении
#theory // Just Python
else - Предложение в обработке исключений
При написании кода по обработке помимо необязательного finally блока есть еще и необязательный else блок. Напомню, что этот блок кода выполняется если try блок завершился успешно, без летящих исключений.
Зачем нужен else блок, если все можно поместить в try блок?
Пока мое понимание на уровне правила: Если понадобился else блок, то код функции сложноват. Код в else следует поместить в отдельный метод и вызывать не в том куске кода, где хочется написать else, а уровнем по выше, т.е. более высокоуровневой функции.
#theory // Just Python
При написании кода по обработке помимо необязательного finally блока есть еще и необязательный else блок. Напомню, что этот блок кода выполняется если try блок завершился успешно, без летящих исключений.
Зачем нужен else блок, если все можно поместить в try блок?
Пока мое понимание на уровне правила: Если понадобился else блок, то код функции сложноват. Код в else следует поместить в отдельный метод и вызывать не в том куске кода, где хочется написать else, а уровнем по выше, т.е. более высокоуровневой функции.
#theory // Just Python
Inpinity
Как можно представить бесконечное число в python? Независимо от того, какое число вы вводите в программу, ни одно число не должно быть больше этого представления бесконечности.
Это возможно реализовать с помощью inpinity.
При этом хэш бесконечности равен 10⁵ x π. Интересно, что хэш float('-inf') в Python 3 равен "-10⁵ x π", тогда как в Python 2 "-10⁵ x e".
#theory // Just Python
Как можно представить бесконечное число в python? Независимо от того, какое число вы вводите в программу, ни одно число не должно быть больше этого представления бесконечности.
Это возможно реализовать с помощью inpinity.
При этом хэш бесконечности равен 10⁵ x π. Интересно, что хэш float('-inf') в Python 3 равен "-10⁵ x π", тогда как в Python 2 "-10⁵ x e".
#theory // Just Python
Давайте переделаем (ч.1)
Искажение имен используется, чтобы избежать конфликтов именования между различными пространствами имен.
В Python интерпретатор изменяет (искажает) имена членов класса, начинающиеся с __ (двойное подчеркивание, также известное как "dunder") и не заканчивающиеся более чем одним завершающим подчеркиванием, добавляя _NameOfTheClass впереди.
#theory // Just Python
Искажение имен используется, чтобы избежать конфликтов именования между различными пространствами имен.
В Python интерпретатор изменяет (искажает) имена членов класса, начинающиеся с __ (двойное подчеркивание, также известное как "dunder") и не заканчивающиеся более чем одним завершающим подчеркиванием, добавляя _NameOfTheClass впереди.
#theory // Just Python
Давайте переделаем (ч.2)
Итак, чтобы получить доступ к атрибуту __honey в первом фрагменте, нам пришлось добавить _Yo в начало, что предотвратило бы конфликты с атрибутом того же имени, определенным в любом другом классе.
Но тогда почему это не сработало во втором фрагменте? Потому что искажение имен исключает имена, заканчивающиеся двойным подчеркиванием.
#theory // Just Python
Итак, чтобы получить доступ к атрибуту __honey в первом фрагменте, нам пришлось добавить _Yo в начало, что предотвратило бы конфликты с атрибутом того же имени, определенным в любом другом классе.
Но тогда почему это не сработало во втором фрагменте? Потому что искажение имен исключает имена, заканчивающиеся двойным подчеркиванием.
#theory // Just Python
Открываем локально поисковую строку Google
Порой мы так глубоко погружаемся в написание кода, что нам неохота открывать браузер для поиска нужной информации. Установив потрясающую библиотеку google, можно делать запрос в поисковик прямо в консоли.
#theory // Just Python
Порой мы так глубоко погружаемся в написание кода, что нам неохота открывать браузер для поиска нужной информации. Установив потрясающую библиотеку google, можно делать запрос в поисковик прямо в консоли.
#theory // Just Python
Загрузка материалов из Instagram
Всем нам часто попадаются хорошие посты в Instagram, которые хотелось бы сохранить на своем устройстве, чтобы иметь офлайн-доступ. Это можно сделать при помощи библиотеки instaloader.
#theory // Just Python
Всем нам часто попадаются хорошие посты в Instagram, которые хотелось бы сохранить на своем устройстве, чтобы иметь офлайн-доступ. Это можно сделать при помощи библиотеки instaloader.
#theory // Just Python
Выводим аудио дорожку из видео
Бывает так, что у нас есть mp4-файл, но нам нужна только звуковая дорожка из него. Скажем, чтобы сделать другое видео с таким же звуковым сопровождением. Эта проблема решается установкой библиотеки moviepy.
#theory // Just Python
Бывает так, что у нас есть mp4-файл, но нам нужна только звуковая дорожка из него. Скажем, чтобы сделать другое видео с таким же звуковым сопровождением. Эта проблема решается установкой библиотеки moviepy.
#theory // Just Python
Давайте переделаем (ч.3)
Третий фрагмент также был следствием искажения имени. Имя __variable в инструкции return __variable было искажено до _A__variable, которое также является именем переменной, объявленной нами во внешней области видимости.
Кроме того, если искаженное имя длиннее 255 символов, произойдет усечение.
#theory // Just Python
Третий фрагмент также был следствием искажения имени. Имя __variable в инструкции return __variable было искажено до _A__variable, которое также является именем переменной, объявленной нами во внешней области видимости.
Кроме того, если искаженное имя длиннее 255 символов, произойдет усечение.
#theory // Just Python
Пропуск строк
Некоторые незападные символы выглядят идентично буквам английского алфавита, но интерпретатор считает их разными.
Встроенная ord() функция возвращает кодовую точку символа в Юникоде, а различные кодовые позиции кириллицы 'e' и латиницы 'e' оправдывают поведение нашего примера примера.
#theory // Just Python
Некоторые незападные символы выглядят идентично буквам английского алфавита, но интерпретатор считает их разными.
Встроенная ord() функция возвращает кодовую точку символа в Юникоде, а различные кодовые позиции кириллицы 'e' и латиницы 'e' оправдывают поведение нашего примера примера.
#theory // Just Python