Устроим middle python-программистом ещё до того, как вы закончите обучение
Разработчики-преподаватели из Devman решили, что у вас нет времени, чтобы долго учиться и ждать, когда ваше образование окупится! Поэтому разработали программу, которая гарантирует качественный трек сразу до мидла, со стажировкой и трудоустройством еще во время обучения.
Курс стартует 9 января. Первую неделю курса можно попробовать бесплатно, а после решить — продолжать ли платное обучение по треку.
На пробной неделе:
▫️Новички сделают сервис, который показывает погоду в разных городах.
▫️Более опытные успеют написать и собственный сервис по сокращению ссылок.
▫️Джуны создадут своего чат бота или сделают собственный сайт с афишей мероприятий.
После пробной недели вы получите фидбек от ментора и узнаете, какие навыки вам нужно подтянуть.
Чтобы записаться на пробную неделю переходите в бота → bit.ly/3WY5Suz
Реклама. ООО Девман 2Vtzqug49m4
Разработчики-преподаватели из Devman решили, что у вас нет времени, чтобы долго учиться и ждать, когда ваше образование окупится! Поэтому разработали программу, которая гарантирует качественный трек сразу до мидла, со стажировкой и трудоустройством еще во время обучения.
Курс стартует 9 января. Первую неделю курса можно попробовать бесплатно, а после решить — продолжать ли платное обучение по треку.
На пробной неделе:
▫️Новички сделают сервис, который показывает погоду в разных городах.
▫️Более опытные успеют написать и собственный сервис по сокращению ссылок.
▫️Джуны создадут своего чат бота или сделают собственный сайт с афишей мероприятий.
После пробной недели вы получите фидбек от ментора и узнаете, какие навыки вам нужно подтянуть.
Чтобы записаться на пробную неделю переходите в бота → bit.ly/3WY5Suz
Реклама. ООО Девман 2Vtzqug49m4
Генераторные выражения и списковые включения
В примере выше первая и вторая строчки очень похожи, но различаются видами скобок. В списковом включении они квадратные, а в генераторном выражении – круглые.
Если вывести переменные, то видим, что значением переменной l является список, а переменная g хранит в себе объект генератора. И здесь возникает вопрос, что же использовать.
Нужен результат, например в виде списка, прямо сейчас для дальнейшего выполнения программы — используйте генераторы коллекций.
А если же значения понадобятся еще не скоро или неизвестно, понадобится ли они вообще, то предпочтительнее генераторы, чтобы не занимать лишнюю память и не нагружать систему.
Подписывайтесь на канал 👉@pythonofff
В примере выше первая и вторая строчки очень похожи, но различаются видами скобок. В списковом включении они квадратные, а в генераторном выражении – круглые.
Если вывести переменные, то видим, что значением переменной l является список, а переменная g хранит в себе объект генератора. И здесь возникает вопрос, что же использовать.
Нужен результат, например в виде списка, прямо сейчас для дальнейшего выполнения программы — используйте генераторы коллекций.
А если же значения понадобятся еще не скоро или неизвестно, понадобится ли они вообще, то предпочтительнее генераторы, чтобы не занимать лишнюю память и не нагружать систему.
Подписывайтесь на канал 👉@pythonofff
👍3🔥1
Как вывести переменную и строку в Python, разделив их запятыми
Вы можете указать строку и переменную в качестве аргументов функции print(), просто перечислив их через запятую.
Подписывайтесь на канал 👉@pythonofff
Вы можете указать строку и переменную в качестве аргументов функции print(), просто перечислив их через запятую.
Подписывайтесь на канал 👉@pythonofff
👍3
Работаем с атрибутами объектов
Помимо привычного обращения к атрибутам объектов через точку, в Python есть 4 специальных функции: getattr, setattr, delattr и hasattr.
По названиям можно понять, что первые три отвечают за получение, установку и удаление атрибута. А последний проверяет, существует ли атрибут с указанным названием у объекта или нет.
Во всех функциях первыми двумя аргументами идут объект и название атрибута в виде строки. В setattr также нужно передать новое значение для атрибута.
На практике использование подобного — довольно редкий случай, но иногда может сильно выручить, так что берите на вооружение.
Подписывайтесь на канал 👉@pythonofff
Помимо привычного обращения к атрибутам объектов через точку, в Python есть 4 специальных функции: getattr, setattr, delattr и hasattr.
По названиям можно понять, что первые три отвечают за получение, установку и удаление атрибута. А последний проверяет, существует ли атрибут с указанным названием у объекта или нет.
Во всех функциях первыми двумя аргументами идут объект и название атрибута в виде строки. В setattr также нужно передать новое значение для атрибута.
На практике использование подобного — довольно редкий случай, но иногда может сильно выручить, так что берите на вооружение.
Подписывайтесь на канал 👉@pythonofff
👍7
Как использовать функцию print() в Python
Чтобы вывести что-либо на экран, мы используем функцию print(). Пишем ключевое слово print, за которым следует пара круглых скобок (). Внутри этих скобок мы помещаем то, что хотим распечатать.
Подписывайтесь на канал 👉@pythonofff
Чтобы вывести что-либо на экран, мы используем функцию print(). Пишем ключевое слово print, за которым следует пара круглых скобок (). Внутри этих скобок мы помещаем то, что хотим распечатать.
Подписывайтесь на канал 👉@pythonofff
😁6🥴4🤨4👍1😴1
Итерируемый счетчик
Еще один классный итератор из itertools — это count, который генерирует бесконечную последовательность чисел.
В аргументах можно задать значения start и step: первый отвечает за начальное значение, а второе за шаг, как и в range.
Обычно count редко используют с циклом for. Чаще можно встретить случаи с функциями типа zip или map.
Подписывайтесь на канал 👉@pythonofff
Еще один классный итератор из itertools — это count, который генерирует бесконечную последовательность чисел.
В аргументах можно задать значения start и step: первый отвечает за начальное значение, а второе за шаг, как и в range.
Обычно count редко используют с циклом for. Чаще можно встретить случаи с функциями типа zip или map.
Подписывайтесь на канал 👉@pythonofff
👍2🔥1
Как объединить словари в Python с помощью цикла for
Мы можем объединить два или более словарей, используя цикл for
Но проблема данного метода в том, что нам приходится запускать такой цикл для объединения словарей множество раз.
Подписывайтесь на канал 👉@pythonofff
Мы можем объединить два или более словарей, используя цикл for
Но проблема данного метода в том, что нам приходится запускать такой цикл для объединения словарей множество раз.
Подписывайтесь на канал 👉@pythonofff
👍2
Использование комплексных чисел в Python
Никого здесь уже не удивить такими встроенными типами, как например int, float, и подобными. Но кроме них в Python существует еще один довольно интересный тип, а именно, complex.
В Python комплексные числа представлены в виде x + iy. А точнее говоря, вместо буквы i здесь используется буква j, во избежание некоторой путаницы, поскольку i чаще всего занята под циклы. Python преобразует реальные числа x и y (будь то int или float) в комплексное с помощью функции complex(x,y).
Комплексное число легко можно превратить в строку с помощью функции str или посчитать его модуль с помощью функции abs, а также для доступа к его реальной или мнимой частям можно воспользоваться методами real и imag.
Хотя complex и является встроенным типом, для более удобной работы с комплексными операциями рекомендуется импортировать модуль cmath.
Подписывайтесь на канал 👉@pythonofff
Никого здесь уже не удивить такими встроенными типами, как например int, float, и подобными. Но кроме них в Python существует еще один довольно интересный тип, а именно, complex.
В Python комплексные числа представлены в виде x + iy. А точнее говоря, вместо буквы i здесь используется буква j, во избежание некоторой путаницы, поскольку i чаще всего занята под циклы. Python преобразует реальные числа x и y (будь то int или float) в комплексное с помощью функции complex(x,y).
Комплексное число легко можно превратить в строку с помощью функции str или посчитать его модуль с помощью функции abs, а также для доступа к его реальной или мнимой частям можно воспользоваться методами real и imag.
Хотя complex и является встроенным типом, для более удобной работы с комплексными операциями рекомендуется импортировать модуль cmath.
Подписывайтесь на канал 👉@pythonofff
👍4
Специальные переменные
Одна примечательная «особая» переменная, которую вы часто можете видеть в коде Python, — это _, то есть просто символ подчеркивания. По соглашению так именуют малозначимые переменные. Откуда же берутся такие переменные? Например, иногда надо недолго хранить значение, возвращаемое функцией. В примере ниже мы сканируем строки датафрейма из библиотеки pandas
Подписывайтесь на канал 👉@pythonofff
Одна примечательная «особая» переменная, которую вы часто можете видеть в коде Python, — это _, то есть просто символ подчеркивания. По соглашению так именуют малозначимые переменные. Откуда же берутся такие переменные? Например, иногда надо недолго хранить значение, возвращаемое функцией. В примере ниже мы сканируем строки датафрейма из библиотеки pandas
Подписывайтесь на канал 👉@pythonofff
👍5
Decimal и Fraction
Из-за того, что дробные числа с плавающей точкой хранятся в двоичном виде, мы обычно работаем с приблизительными значениями, как в первом варианте на скрине.
Для получения более точных результатов можно использовать класс Decimal, но и его может не хватить в некоторых случаях.
В данной связи, для идеальных вычислений лучше использовать класс Fraction, т.к. он работает с числами в виде рациональных дробей.
Подписывайтесь на канал 👉@pythonofff
Из-за того, что дробные числа с плавающей точкой хранятся в двоичном виде, мы обычно работаем с приблизительными значениями, как в первом варианте на скрине.
Для получения более точных результатов можно использовать класс Decimal, но и его может не хватить в некоторых случаях.
В данной связи, для идеальных вычислений лучше использовать класс Fraction, т.к. он работает с числами в виде рациональных дробей.
Подписывайтесь на канал 👉@pythonofff
👍5
Используйте настраиваемый User-Agent
Механизм защиты от скрапинга – User-Agent. UA – это заголовок, который браузеры отправляют в запросах для идентификации. Обычно он представляет собой длинную строку, в которой объявляется имя браузера, версия, платформа и многое другое.
Подписывайтесь на канал 👉@pythonofff
Механизм защиты от скрапинга – User-Agent. UA – это заголовок, который браузеры отправляют в запросах для идентификации. Обычно он представляет собой длинную строку, в которой объявляется имя браузера, версия, платформа и многое другое.
Подписывайтесь на канал 👉@pythonofff
👍4
Вычисление размера объектов
Для вычисления размера объекта мы можем использовать функцию getsizeof(object[, default]) из модуля sys. Так как в python все по сути является объектами, то и вычислить размер в памяти мы можем у любого такого объекта.
И хотя все built-in (встроенные) объекты и вернут правильный размер, в общем случае это не должно быть верно для каких-либо пользовательских объектов.
Аргумент default позволяет определить значение, которое будет возвращено, если тип объекта не предоставляет средства для извлечения размера и вызовет TypeError .
Функция getsizeof вызывает метод __sizeof__ объекта и добавляет дополнительные служебные данные сборщика мусора.
Подписывайтесь на канал 👉@pythonofff
Для вычисления размера объекта мы можем использовать функцию getsizeof(object[, default]) из модуля sys. Так как в python все по сути является объектами, то и вычислить размер в памяти мы можем у любого такого объекта.
И хотя все built-in (встроенные) объекты и вернут правильный размер, в общем случае это не должно быть верно для каких-либо пользовательских объектов.
Аргумент default позволяет определить значение, которое будет возвращено, если тип объекта не предоставляет средства для извлечения размера и вызовет TypeError .
Функция getsizeof вызывает метод __sizeof__ объекта и добавляет дополнительные служебные данные сборщика мусора.
Подписывайтесь на канал 👉@pythonofff
👍1
Необходимо чередовать IP-адреса
Вы можете менять IP-адрес каждые несколько секунд или для каждого запроса. Целевой сервер не может идентифицировать ваши запросы и не блокирует эти IP-адреса. Вы можете создать огромный список прокси и выбирать по одному для каждого запроса случайным образом. Или используйте вращающийся прокси, который сделает это за вас. После этого изменения шансы на правильную работу скрапера резко возрастают.
Подписывайтесь на канал 👉@pythonofff
Вы можете менять IP-адрес каждые несколько секунд или для каждого запроса. Целевой сервер не может идентифицировать ваши запросы и не блокирует эти IP-адреса. Вы можете создать огромный список прокси и выбирать по одному для каждого запроса случайным образом. Или используйте вращающийся прокси, который сделает это за вас. После этого изменения шансы на правильную работу скрапера резко возрастают.
Подписывайтесь на канал 👉@pythonofff
👍2🔥1
Динамическая замена class
Многие знают, что с помощью type можно получить тип объекта. Но не все так просто, по сути type служит динамической заменой инструкции class и позволяет создавать новые объекты типа во время исполнения.
Первый принимаемый аргумент является именем класса и становится атрибутом __name__; второй аргумент является кортежем с перечисленными базовыми типами и становится атрибутом __base__; словарь будет являться телом класса и станет атрибутом __dict__.
Подписывайтесь на канал 👉@pythonofff
Многие знают, что с помощью type можно получить тип объекта. Но не все так просто, по сути type служит динамической заменой инструкции class и позволяет создавать новые объекты типа во время исполнения.
Первый принимаемый аргумент является именем класса и становится атрибутом __name__; второй аргумент является кортежем с перечисленными базовыми типами и становится атрибутом __base__; словарь будет являться телом класса и станет атрибутом __dict__.
Подписывайтесь на канал 👉@pythonofff
👍3
Данные пользователя на главной странице | is_authenticated
Обновим шаблон base.html таким образом, чтобы пользователи могли увидеть сообщение вне зависимости от того, прошли они аутентификацию или нет. Для этого будем использовать атрибут is_authenticated.
Теперь нужно просто разместить следующий код в нужном месте нашего шаблона. Обновим файл base.html, вставив новый код под закрывающимся тегом </header>.
Подписывайтесь на канал 👉@pythonofff
Обновим шаблон base.html таким образом, чтобы пользователи могли увидеть сообщение вне зависимости от того, прошли они аутентификацию или нет. Для этого будем использовать атрибут is_authenticated.
Теперь нужно просто разместить следующий код в нужном месте нашего шаблона. Обновим файл base.html, вставив новый код под закрывающимся тегом </header>.
Подписывайтесь на канал 👉@pythonofff
👍1
Уже 18 января, стартует подготовительный курс по Python🐍
Даём только мясную и прикладную информацию. Никакой воды и траты времени.
Вас ждет 69 уроков теории и практики прямо в браузере, вебинары, лайвкодинг и первая собственная программа на Python, написанная под руководством опытного наставника.
По окончании 14-дневного курса вы уже владеете базовым знанием языка!
Запишитесь прямо сейчас!
Даём только мясную и прикладную информацию. Никакой воды и траты времени.
Вас ждет 69 уроков теории и практики прямо в браузере, вебинары, лайвкодинг и первая собственная программа на Python, написанная под руководством опытного наставника.
По окончании 14-дневного курса вы уже владеете базовым знанием языка!
Запишитесь прямо сейчас!
👎4👍1
Параметры *args и **kwargs
Все хоть раз видели такую запись, и сейчас мы узнаем, что это за символы. Сообщу сразу, что args и kwargs – общепринятые имена переменных, а разбирать мы будем звездочки перед ними.
В примере функция принимает обязательный аргумент value, а остальных аргументов она как бы не ожидает. В таком случае *args упаковывает все не именованные аргументы в кортеж, а **kwargs – все именованные в словарь.
Конструкция с *args, **kwargs получается достаточно полезной, если мы не знаем, кто и в каких целях будет использовать нашу функцию. То есть, мы можем запихнуть в аргументы практически что угодно.
Подписывайтесь на канал 👉@pythonofff
Все хоть раз видели такую запись, и сейчас мы узнаем, что это за символы. Сообщу сразу, что args и kwargs – общепринятые имена переменных, а разбирать мы будем звездочки перед ними.
В примере функция принимает обязательный аргумент value, а остальных аргументов она как бы не ожидает. В таком случае *args упаковывает все не именованные аргументы в кортеж, а **kwargs – все именованные в словарь.
Конструкция с *args, **kwargs получается достаточно полезной, если мы не знаем, кто и в каких целях будет использовать нашу функцию. То есть, мы можем запихнуть в аргументы практически что угодно.
Подписывайтесь на канал 👉@pythonofff
👍2
Список всех переменных
Эта команда выдает список всех глобальных переменных, используемых в вашем блокноте.
Если мы используем %who, она перечислит все 3 переменные, которые мы задали.
Подписывайтесь на канал 👉@pythonofff
Эта команда выдает список всех глобальных переменных, используемых в вашем блокноте.
Если мы используем %who, она перечислит все 3 переменные, которые мы задали.
Подписывайтесь на канал 👉@pythonofff
👍3
Что такое lambda-функции
Анонимные функции — крайне полезный аспект языка, которым либо пренебрегают, либо чрезмерно пользуются. Начинающим они могут показаться сложными, но это совсем не так.
Структура очень простая — lambda <arguments>: <expression> . Сначала пишете ключевое слово lambda, далее аргументы через запятую, двоеточие и какое-то выражение, результат которого автоматически вернется.
Такие функции чаще всего используются, когда они больше нигде не понадобятся, то есть определять полноценную функцию нет смысла. Типичные примеры использования — map и filter.
Подписывайтесь на канал 👉@pythonofff
Анонимные функции — крайне полезный аспект языка, которым либо пренебрегают, либо чрезмерно пользуются. Начинающим они могут показаться сложными, но это совсем не так.
Структура очень простая — lambda <arguments>: <expression> . Сначала пишете ключевое слово lambda, далее аргументы через запятую, двоеточие и какое-то выражение, результат которого автоматически вернется.
Такие функции чаще всего используются, когда они больше нигде не понадобятся, то есть определять полноценную функцию нет смысла. Типичные примеры использования — map и filter.
Подписывайтесь на канал 👉@pythonofff
👍3
Просмотр содержимого внешнего файла
Часто вам может понадобиться скопировать в свой код несколько строк кода из внешнего файла. Команда %pycat избавит вас от долгой процедуры извлечения определенных данных из файла и их копирования в другой файл. Она позволяет просматривать содержимое любого файла в любом каталоге.
Подписывайтесь на канал 👉@pythonofff
Часто вам может понадобиться скопировать в свой код несколько строк кода из внешнего файла. Команда %pycat избавит вас от долгой процедуры извлечения определенных данных из файла и их копирования в другой файл. Она позволяет просматривать содержимое любого файла в любом каталоге.
Подписывайтесь на канал 👉@pythonofff
👍2