Экранирование
Вы пытались запихнуть ' и " в строку? А сделать перенос на новую линию? Это сделать довольно сложно без экранирования (про multi-line строки пока не говорим ).
Первый символ всегда будет , после идёт дополнительный, например: ' -> ', \ -> , n - перенос на новую строку, 0 - пустой символ (сишники поймут).
#теория
Вы пытались запихнуть ' и " в строку? А сделать перенос на новую линию? Это сделать довольно сложно без экранирования (
Первый символ всегда будет , после идёт дополнительный, например: ' -> ', \ -> , n - перенос на новую строку, 0 - пустой символ (сишники поймут).
#теория
👍22👎3
Хочу подбирать контент для вас и определить, что вам интереснее. Вам нужные темы для...
Anonymous Poll
31%
Для начинающих (что такое генератор, интератор, списковые включения)
21%
Для продвинутых (Сборщик мусора, GIL, паттерны, принципы программирования)
44%
Смешанное (первая неделя для новичков, вторая для продвинутых)
4%
Посмотреть результаты
👍22👏6🤔2
Что это за вакханалия?
Начнём с того, что в Python код функции это отдельный объект, который находится в
#объяснение
Начнём с того, что в Python код функции это отдельный объект, который находится в
__code__
. Напишите import types; help(types.CodeType)
.__doc__
указывает на документацию, то есть на строку после определения функции. Кстати, все атрибуты функции можно найти тут в разделе User-defined functions.#объяснение
👍21❤1🤔1
Лямбда-функция
Слово lambda позволяет запихнуть простую функцию в одну строку. Часто используется вместе с
Но будьте осторожны, некоторые питонисты не любят функциональщину... Я в том числе.
#теория
Слово lambda позволяет запихнуть простую функцию в одну строку. Часто используется вместе с
map()
, filter()
.Но будьте осторожны, некоторые питонисты не любят функциональщину... Я в том числе.
#теория
👍17🔥5🙏1
Теперь разберём генератор
Это всё те же итераторы, которые используются для генерации/создания чего либо, поэтому пройтись по ним можно только 1 раз. Есть функции-генераторы, есть генераторы списков (о них чуть позже).
Они часто используются при больших вычислениях, ведь не потребляют много памяти. А ещё у генераторов есть свои методы.
#теория
Это всё те же итераторы, которые используются для генерации/создания чего либо, поэтому пройтись по ним можно только 1 раз. Есть функции-генераторы, есть генераторы списков (о них чуть позже).
Они часто используются при больших вычислениях, ведь не потребляют много памяти. А ещё у генераторов есть свои методы.
#теория
👍17
Модуль dis
Лучший способ узнать Python — залезть к нему под капот. Это и делает dis. Вернее, он даёт нам доступ к байт-коду.
Таким образом можно понять, каким образом Python оптимизирует код. Особенно интересно проверять с строками.
#модули
Лучший способ узнать Python — залезть к нему под капот. Это и делает dis. Вернее, он даёт нам доступ к байт-коду.
Таким образом можно понять, каким образом Python оптимизирует код. Особенно интересно проверять с строками.
#модули
👍10
Рассказываю про dict
Это переменная, которая есть почти у всех классов. Она хранит в себе все атрибуты. Поскольку это словарь, мы можем её менять, создавая новые атрибуты.
Самое интересное то, что эта переменная есть даже у функций. Таким образом мы можем создавать атрибуты даже у функций.
#объяснение
Это переменная, которая есть почти у всех классов. Она хранит в себе все атрибуты. Поскольку это словарь, мы можем её менять, создавая новые атрибуты.
Самое интересное то, что эта переменная есть даже у функций. Таким образом мы можем создавать атрибуты даже у функций.
#объяснение
🔥19👍3❤1
⚡️ Наследование
Это один из принципов ООП, который позволяет дочернему классу перенять все возможности родителя. Или, проще говоря, мы переиспользуем код другого класса.
Получить доступ к родителю можно с помощью вызова super(). Оттуда уже можно брать реализации функций, которые мы переопределяем, из родительского класса.
Кстати, по умолчанию все классы наследуются от object, даже если мы этого не указываем. Поэтому у класса будет всё, что есть у object.
#теория
Это один из принципов ООП, который позволяет дочернему классу перенять все возможности родителя. Или, проще говоря, мы переиспользуем код другого класса.
Получить доступ к родителю можно с помощью вызова super(). Оттуда уже можно брать реализации функций, которые мы переопределяем, из родительского класса.
Кстати, по умолчанию все классы наследуются от object, даже если мы этого не указываем. Поэтому у класса будет всё, что есть у object.
#теория
👍13🤯2🔥1
Объясняю магию
Постараюсь интерактивно показать, | это курсор. Первым делом вывелось a|, потом, за счёт \b, стало так: |a, и в результате получили c|.
Кстати, все такие символы можно тут найти.
#объяснение
\b
возвращает курсор вывода на один символ назад. А поскольку после него был ещё символ (a), то он просто перезаписался.Постараюсь интерактивно показать, | это курсор. Первым делом вывелось a|, потом, за счёт \b, стало так: |a, и в результате получили c|.
Кстати, все такие символы можно тут найти.
#объяснение
👍35👎5🤔1
Генераторные списки
Эта штука может уместить for в одну строку, так ещё и работает быстрее, чем обычный цикл. Используется, как вы уже поняли, для создании нового списка.
Кстати, генерировать можно не только списки, но и множества, словари. А можно просто передавать функциям, по типу
#теория
Эта штука может уместить for в одну строку, так ещё и работает быстрее, чем обычный цикл. Используется, как вы уже поняли, для создании нового списка.
Кстати, генерировать можно не только списки, но и множества, словари. А можно просто передавать функциям, по типу
sum()
.#теория
🔥19👍8
Поговорим про del
Он не удаляет объект, как вы могли подумать, а убирает связь между переменной и объектом.
Потом, если объект нигде больше не используется, сборщик мусора удалит его.
Ещё с его помощью можно убирать данные из списка, словаря.
#теория
Он не удаляет объект, как вы могли подумать, а убирает связь между переменной и объектом.
Потом, если объект нигде больше не используется, сборщик мусора удалит его.
Ещё с его помощью можно убирать данные из списка, словаря.
#теория
👍30
Модуль heapq
Нас интересуют только две функции:
В большинстве случаев функции быстрее чем
#модули
Нас интересуют только две функции:
nlargest()
и nsmallest()
. Они позволяют получить n самых больших/маленьких значений в iterable.В большинстве случаев функции быстрее чем
sorted(iterable)[:n]
. Их использование можно заметить в Counter.most_common()
.#модули
👍14❤1
Модуль collections
Нужно посчитать кол-во элементов в списке? Импортируйте Counter! Нужно, чтобы, если ключа не существует, он создавался? Импортируйте defaultdict.
Нужен кортеж с именованными полями? Воспользуйтесь
#модули
Нужно посчитать кол-во элементов в списке? Импортируйте Counter! Нужно, чтобы, если ключа не существует, он создавался? Импортируйте defaultdict.
Нужен кортеж с именованными полями? Воспользуйтесь
namedtuple()
. Нужна очередь? from collections import deque
. Документация#модули
👍19🔥2❤1👏1
🔥 Всё про 'is'
Многие попадаются на тестах с is просто потому что не знают, как Python кэширует значения. Это видео расскажет о всех подводных камнях этого коварного оператора.
Перейти к просмотру | #видео
Многие попадаются на тестах с is просто потому что не знают, как Python кэширует значения. Это видео расскажет о всех подводных камнях этого коварного оператора.
Перейти к просмотру | #видео
YouTube
Оператор "is" Python сложнее, чем вы думаете
⭐ Курс ООП и Приват канал: https://www.zproger-school.com/?utm_source=yt&utm_medium=no&utm_campaign=pythonis
⭐ Телеграм канал: https://t.me/+xhecBmnnjHI0MzZh
Подводные камни оператора is, которые могут вас удивить.
Многие используют оператор "is" для сравнения…
⭐ Телеграм канал: https://t.me/+xhecBmnnjHI0MzZh
Подводные камни оператора is, которые могут вас удивить.
Многие используют оператор "is" для сравнения…
👍8
⚡️ Парсим сайты
Нужно узнать заголовок последней новости? Отслеживать цену товара? Или автоматически находить решение на Stackoverflow? Вам поможет Beautiful soup.
Установка:
Функционал довольно большой и весь список можно найти в документации.
#миниурок #bs4
Нужно узнать заголовок последней новости? Отслеживать цену товара? Или автоматически находить решение на Stackoverflow? Вам поможет Beautiful soup.
Установка:
pip install beautifulsoup4
Модуль может парсить HTML и XML файлы и находить на них нужную информацию. Например, найти заголовок (тег h1) или все ссылки на сайте.Функционал довольно большой и весь список можно найти в документации.
#миниурок #bs4
👍18🤔3🔥1
Метод __call__
Позволяет вызывать класс точно так же, как и функцию. То есть вы без проблем можете написать так: MySuperClass()()()()и попасть в писхушку.
Его используют в основном для создания классов-декораторов, когда нужно декоратору передать какие-то значения или задать атрибуты.
#теория
Позволяет вызывать класс точно так же, как и функцию. То есть вы без проблем можете написать так: MySuperClass()()()()
Его используют в основном для создания классов-декораторов, когда нужно декоратору передать какие-то значения или задать атрибуты.
#теория
👍23
🔥 Почему 0.1 + 0.2 не будет 0.3
Или коротко о том, как работают числа float. Здесь вы узнаете как хранятся числа с плавающей запятой в памяти, про стандарт IEEE-754 и какие проблемы он нам принёс. Перед просмотром надо знать бинарную систему счисления.
Перейти к просмотру | #видео
Или коротко о том, как работают числа float. Здесь вы узнаете как хранятся числа с плавающей запятой в памяти, про стандарт IEEE-754 и какие проблемы он нам принёс. Перед просмотром надо знать бинарную систему счисления.
Перейти к просмотру | #видео
YouTube
КАК РАБОТАЮТ ЧИСЛА С ПЛАВАЮЩЕЙ ТОЧКОЙ | ОСНОВЫ ПРОГРАММИРОВАНИЯ
КАК РАБОТАЮТ ЧИСЛА С ПЛАВАЮЩЕЙ ТОЧКОЙ
float, double и тд.
Типы данных, которые мы используем работают не совсем так, как мы этого ожидаем.
Некоторые дроби невозможно представить в двоичном виде.
Как компьютер хранит такие числа в памяти, что привнес стандарт…
float, double и тд.
Типы данных, которые мы используем работают не совсем так, как мы этого ожидаем.
Некоторые дроби невозможно представить в двоичном виде.
Как компьютер хранит такие числа в памяти, что привнес стандарт…
🔥9👍5🥰2👏1
⚡️ Тесты в документации
Такой подход интересен тем, что позволяет другому программисту понять как работает функция в определённых ситуациях, а вам — протестировать её работу.
Реализуется подобная фича с помощью встроенного модуля doctest. Он ищет текста, которые выглядят как интерактивные сеансы Python (>>>, ... и подобные символы).
Вы можете запускать тесты так же, как в примере, а можно с помощью терминала:
#миниурок #doctest
Такой подход интересен тем, что позволяет другому программисту понять как работает функция в определённых ситуациях, а вам — протестировать её работу.
Реализуется подобная фича с помощью встроенного модуля doctest. Он ищет текста, которые выглядят как интерактивные сеансы Python (>>>, ... и подобные символы).
Вы можете запускать тесты так же, как в примере, а можно с помощью терминала:
python -m doctest -v example.py
.#миниурок #doctest
👍9