Как проверить существование переменной в Python?
Вы можете использовать
Подписывайтесь на канал 👉@pythonofff
Вы можете использовать
in locals()
или in globals()
, чтобы проверить переменная существует в Python, разница только:in locals()
проверяет если переменная объявлена в локальной зоне видимостиin globals()
проверяет если переменная объявлена в глобальной зоне видимостиПодписывайтесь на канал 👉@pythonofff
👍5
Контекстные менеджеры
Контекстные менеджеры позволяют задать поведение при работе с конструкцией
Простейшей функцией, использующей данный принцип является функция
Чтобы каждый раз не вызывать метод
Подписывайтесь на канал 👉@pythonofff
Контекстные менеджеры позволяют задать поведение при работе с конструкцией
with
: при входе и выходе из блока. Это упрощает работу с ресурсами в части их захвата и освобождения; транзакциями, когда нужно либо полностью закончить транзакцию, либо откатить ее целиком. Простейшей функцией, использующей данный принцип является функция
open
. Каждый раз, когда мы открываем файл, нам необходимо его закрыть, чтобы вытолкнуть выходные данные на диск (на самом деле Python вызывает метод close
автоматически, но явное его использование является хорошим тоном). Чтобы каждый раз не вызывать метод
close
мы можем воспользоваться контекстным менеджером функции open
, который автоматически закроет файл после выхода из блока. Подписывайтесь на канал 👉@pythonofff
👍4
Вывод значения по умолчанию для отсутствующего ключа словаря
Если вы обратитесь к несуществующему ключу словаря, то это вызовет исключение. Избежать этого можно, вызывая метод
Подписывайтесь на канал 👉@pythonofff
Если вы обратитесь к несуществующему ключу словаря, то это вызовет исключение. Избежать этого можно, вызывая метод
get
. В примере метод выдает None
(по умолчанию) или заданное значение аргумента.Подписывайтесь на канал 👉@pythonofff
👍3
Декораторы
Очень важная тема, с помощью декорирования можно писать очень удобные логи или существенно расширять функции.
Многие библиотеки работают с использованием декораторов:
Мы показываем лишь простой пример, возможности куда шире. Позже покажем пример использования с упоминаемыми выше библиотеками.
Подписывайтесь на канал 👉@pythonofff
Очень важная тема, с помощью декорирования можно писать очень удобные логи или существенно расширять функции.
Многие библиотеки работают с использованием декораторов:
Flask
и aiogram
хорошие тому примеры.Мы показываем лишь простой пример, возможности куда шире. Позже покажем пример использования с упоминаемыми выше библиотеками.
Подписывайтесь на канал 👉@pythonofff
👍2
Изучаем две мощные функции map и filter, а также затрагиваем тему анонимных lambda-функций
Эти две функции - очень мощные инструменты в Python, которые входят в тему функционального программирования. Зачастую вместе с ними используют анонимные lambda-функции.
Подробнее
Подписывайтесь на канал 👉@pythonofff
Эти две функции - очень мощные инструменты в Python, которые входят в тему функционального программирования. Зачастую вместе с ними используют анонимные lambda-функции.
Подробнее
Подписывайтесь на канал 👉@pythonofff
👍6
Удаление дубликатов в списке
Первое что приходит на ум — преобразовать список во множество и обратно. Это хороший и рабочий способ. Но если вам нужно сохранить последовательность, то этот способ не подойдёт. С этой задачей легко справится
Подписывайтесь на канал 👉@pythonofff
Первое что приходит на ум — преобразовать список во множество и обратно. Это хороший и рабочий способ. Но если вам нужно сохранить последовательность, то этот способ не подойдёт. С этой задачей легко справится
OrderedDict
из модуля collections
Подписывайтесь на канал 👉@pythonofff
👍4
Как красиво напечатать json в Python?
Вы можете использовать
Подписывайтесь на канал 👉@pythonofff
Вы можете использовать
json.dumps()
в Python, чтобы красиво напечатать json.Подписывайтесь на канал 👉@pythonofff
👍3
Асинхронное программирование
Обычно мы пишем синхронный код - выполняется по порядку один за другим. Но иногда требуется, чтобы выполнялось несколько задач одновременно. К примеру, пока копируются файлы можно было поиграть в игру. Это возможно благодаря нескольким ядрам и потокам. ВАЖНО! Асинхронность не обязательно делает код быстрее, но может повысить его эффективность. В момент простаивания процессор будет переключаться на другие задачи.
На картинке программа, где повар готовит сразу несколько блюд. По другому бы нам пришлось по-очереди готовить каждое блюдо, но мы можем вернуться к другим, если поставили блюдо на огонь.
Подписывайтесь на канал 👉@pythonofff
Обычно мы пишем синхронный код - выполняется по порядку один за другим. Но иногда требуется, чтобы выполнялось несколько задач одновременно. К примеру, пока копируются файлы можно было поиграть в игру. Это возможно благодаря нескольким ядрам и потокам. ВАЖНО! Асинхронность не обязательно делает код быстрее, но может повысить его эффективность. В момент простаивания процессор будет переключаться на другие задачи.
На картинке программа, где повар готовит сразу несколько блюд. По другому бы нам пришлось по-очереди готовить каждое блюдо, но мы можем вернуться к другим, если поставили блюдо на огонь.
Подписывайтесь на канал 👉@pythonofff
👍6
Станьте веб-разработчиком на Python! Работайте с бэкендом веб-приложений любых масштабов – от прототипов до интернет-магазинов, порталов и сервисов.
Веб-разработчиков на Python активно ищет современный бизнес: стартапы, небольшие и средние частные компании.
👉🏻На курсе вы освоите HTML и CSS, выучите Python – язык с консистентным синтаксисом, единообразной стандартной библиотекой, фреймворками, в том числе Django. Прокачаетесь в алгоритмах, архитектуре, познакомитесь с базой данных SQL и сопутствующими инструментами: командной строкой, Poetry, Git. Напишите 4 рабочих проекта – крутое портфолио!
Мы не просто дадим знания и навыки, а порекомендуем вас работодателям, пригласим на гарантированные собеседования, дадим возможность пройти стажировки в авторитетных компаниях.
Заходите и пробуйте наш формат
Веб-разработчиков на Python активно ищет современный бизнес: стартапы, небольшие и средние частные компании.
👉🏻На курсе вы освоите HTML и CSS, выучите Python – язык с консистентным синтаксисом, единообразной стандартной библиотекой, фреймворками, в том числе Django. Прокачаетесь в алгоритмах, архитектуре, познакомитесь с базой данных SQL и сопутствующими инструментами: командной строкой, Poetry, Git. Напишите 4 рабочих проекта – крутое портфолио!
Мы не просто дадим знания и навыки, а порекомендуем вас работодателям, пригласим на гарантированные собеседования, дадим возможность пройти стажировки в авторитетных компаниях.
Заходите и пробуйте наш формат
Библиотека JmesPath
Как вы уже заметили работать с json файлами в python очень удобно, ведь они отлично конвертируется в словарь. Также мы разобрали полезную библиотеку json, поэтому еще раз говорить о ней не будем.
Но вот нам надо получить данные из файла. А формат json, как правило имеет множество вложений. Искать что-то нужное можно, но не всегда это удобно и красиво (а дзен Python говорит, что красота имеет значение)
JmesPath облегчает работу в несколько раз. Вместо
Подписывайтесь на канал 👉@pythonofff
Как вы уже заметили работать с json файлами в python очень удобно, ведь они отлично конвертируется в словарь. Также мы разобрали полезную библиотеку json, поэтому еще раз говорить о ней не будем.
Но вот нам надо получить данные из файла. А формат json, как правило имеет множество вложений. Искать что-то нужное можно, но не всегда это удобно и красиво (а дзен Python говорит, что красота имеет значение)
JmesPath облегчает работу в несколько раз. Вместо
file['a']['b']['c']
можно написать jmespath.search('a.b.c', file)
. Кажется стало длиннее, но это потому что мы взяли мало элементов, и согласитесь a.b.c выглядит лучше. Даже отредактировать в случае чего будет проще.Подписывайтесь на канал 👉@pythonofff
👍8
Как сравнить строки без учета регистра в Python?
Есть несколько способов сравнить строки без учета регистра в Python:
Использовать метод
Привести обе строки к заглавным или строчным, используя
Пример кода.
Подписывайтесь на канал 👉@pythonofff
Есть несколько способов сравнить строки без учета регистра в Python:
Использовать метод
.casefold()
чтобы игнорировать регистрПривести обе строки к заглавным или строчным, используя
lower()
или upper()
для сравниваемых строкПример кода.
Подписывайтесь на канал 👉@pythonofff
👍10😁1
Библиотека schedule
Гибкая библиотека для создания планировщика. Точнее с её помощью можно создавать задачи, которые будут выполняться с определенным интервалом. Промежуток настраивается как душе угодно и работает до выключения пользователем приложения.
Конечно можно было использовать стандартный таймер, но зачем изобретать велосипед? С данной библиотекой планировка задач станет намного проще и понятнее другим программистам.
Библиотеку необходимо установить:
Подписывайтесь на канал 👉@pythonofff
Гибкая библиотека для создания планировщика. Точнее с её помощью можно создавать задачи, которые будут выполняться с определенным интервалом. Промежуток настраивается как душе угодно и работает до выключения пользователем приложения.
Конечно можно было использовать стандартный таймер, но зачем изобретать велосипед? С данной библиотекой планировка задач станет намного проще и понятнее другим программистам.
Библиотеку необходимо установить:
install schedule
В примере используется seconds, но можно использовать minutes, hour, day.at("8:00"), monday, minute.at(":17"). Если добавлять at, то указываем во сколько именно произойдет событие. Подписывайтесь на канал 👉@pythonofff
👍5
Библиотека Progressbar
Думали ли вы когда-нибудь над полоской прогресса? Иногда бывает полезно добавить в код отображение прогресса, чтобы пользователь не беспокоился, что программа не отвечает.
В первую очередь это касается синхронных приложений. Ведь, если наш код выполняет что-то одно, то на другие действия он не будет реагировать, ставя их в очередь. Ну и еще один вариант показывать, что программа не виснет, а думает, при этом не обязательно показывать прогресс.
Все это очень интересно, но если мы начнем самостоятельно писать полосу прогресса, то отвлечемся от основного кода. К счастью, в python есть библиотека Progressbar, которая делает все за нас.
Подписывайтесь на канал 👉@pythonofff
Думали ли вы когда-нибудь над полоской прогресса? Иногда бывает полезно добавить в код отображение прогресса, чтобы пользователь не беспокоился, что программа не отвечает.
В первую очередь это касается синхронных приложений. Ведь, если наш код выполняет что-то одно, то на другие действия он не будет реагировать, ставя их в очередь. Ну и еще один вариант показывать, что программа не виснет, а думает, при этом не обязательно показывать прогресс.
Все это очень интересно, но если мы начнем самостоятельно писать полосу прогресса, то отвлечемся от основного кода. К счастью, в python есть библиотека Progressbar, которая делает все за нас.
Подписывайтесь на канал 👉@pythonofff
👍5
✅ Запись на курс продлена до 15 апреля. Есть ознакомительный доступ!
После 5-месячного онлайн-курса «Python для пентестера» вы сможете:
✔️ Эффективно использовать базы данных и сеть Интернет;
✔️ Получать данные от сайтов в автоматическом режиме;
✔️ С нуля писать прикладные программы на Python.
Ознакомительный доступ
Преимущества онлайн-курса «Python для пентестера»:
• Понятные и наглядные учебные материалы с информацией для выполнения ДЗ;
• Проверка ДЗ вручную – наставник поможет улучшить написанный вами код;
• Помощь преподавателей при выполнении заданий или в изучении теории;
• Групповой чат в Telegram с другими учениками, проходящими курс;
• Опытные разработчики – команда Codeby School, лидер по информационной безопасности в RU-сегменте.
Если в течение 14 дней вы поймёте, что курс вам не подходит – вы сможете вернуть 100% средств.
Подробное описание https://python-eh.ru/
После 5-месячного онлайн-курса «Python для пентестера» вы сможете:
✔️ Эффективно использовать базы данных и сеть Интернет;
✔️ Получать данные от сайтов в автоматическом режиме;
✔️ С нуля писать прикладные программы на Python.
Ознакомительный доступ
Преимущества онлайн-курса «Python для пентестера»:
• Понятные и наглядные учебные материалы с информацией для выполнения ДЗ;
• Проверка ДЗ вручную – наставник поможет улучшить написанный вами код;
• Помощь преподавателей при выполнении заданий или в изучении теории;
• Групповой чат в Telegram с другими учениками, проходящими курс;
• Опытные разработчики – команда Codeby School, лидер по информационной безопасности в RU-сегменте.
Если в течение 14 дней вы поймёте, что курс вам не подходит – вы сможете вернуть 100% средств.
Подробное описание https://python-eh.ru/
👍1
Как распарсить строку json в Python?
Для того, чтобы распарсить строку json, мы можем перевести её в читаемый для python'а формат dict с помощью метода
Примемр кода.
Подписывайтесь на канал 👉@pythonofff
Для того, чтобы распарсить строку json, мы можем перевести её в читаемый для python'а формат dict с помощью метода
.loads()
Примемр кода.
Подписывайтесь на канал 👉@pythonofff
👍5
Как открыть zip файл в Python?
Чтобы открыть zip-файл в Python, вы можете воспользоваться стандартной библиотекой
Примемр кода.
Подписывайтесь на канал 👉@pythonofff
Чтобы открыть zip-файл в Python, вы можете воспользоваться стандартной библиотекой
zipfile
Примемр кода.
Подписывайтесь на канал 👉@pythonofff
👍1
infinity
Самая типичная проблема при написании некоторых сортировок — назначение самой большой переменной. Часто она решается простым вводом большого числа или возведением в степень. Это, конечно, не стареющая классика, но метод максимально не надежный, а главное есть более удачные способы
Не работает с int, требуется использовать именно float.
Подписывайтесь на канал 👉@pythonofff
Самая типичная проблема при написании некоторых сортировок — назначение самой большой переменной. Часто она решается простым вводом большого числа или возведением в степень. Это, конечно, не стареющая классика, но метод максимально не надежный, а главное есть более удачные способы
float('infinity')
или float('inf')
для получения максимально возможного числаfloat('-infinity')
или float('-inf')
для получения минимально возможного числа.Не работает с int, требуется использовать именно float.
Подписывайтесь на канал 👉@pythonofff
👍5🔥1😱1
hex, oct, bin
Приходилось вам раньше работать с различными системами счисления? Если да, то вы знаете, как написать программу переводящую из одной системы в другую. Пишется она довольно просто, но иногда стоит задача быстро написать код с какой-то популярной системой счисления. Обычно это двоичная, восьмеричная или шестнадцатеричная. Для всех этих систем есть встроенные функции, которые переводят в нужную нам систему!
Из 10-ричной:
hex - перевод в 16-ричную систему
oct - перевод в 8-ричную систему
bin - перевод в 2-ичную систему
А из любой системы счисления можно получить число максимально простым способом:
Подписывайтесь на канал 👉@pythonofff
Приходилось вам раньше работать с различными системами счисления? Если да, то вы знаете, как написать программу переводящую из одной системы в другую. Пишется она довольно просто, но иногда стоит задача быстро написать код с какой-то популярной системой счисления. Обычно это двоичная, восьмеричная или шестнадцатеричная. Для всех этих систем есть встроенные функции, которые переводят в нужную нам систему!
Из 10-ричной:
hex - перевод в 16-ричную систему
oct - перевод в 8-ричную систему
bin - перевод в 2-ичную систему
А из любой системы счисления можно получить число максимально простым способом:
int(number, base)
Подписывайтесь на канал 👉@pythonofff
👍3
Регулярные выражения
Метод
Соответственно, этот метод возвращает нужную нам строку.
Подписывайтесь на канал 👉@pythonofff
Метод
sub
позволяет заменить в строке по шаблону на нужный нам текст. repl, string, max=0)
pattern
- шаблонrepl
- на что заменяемstring
- строка по которой ищемmax
- сколько раз заменяемСоответственно, этот метод возвращает нужную нам строку.
Подписывайтесь на канал 👉@pythonofff
👍4👎1
Как создать объекты класса через цикл в Python?
Чтобы создать объекты класса через цикл, мы воспользуемся примерным классом
Примемр кода.
Подписывайтесь на канал 👉@pythonofff
Чтобы создать объекты класса через цикл, мы воспользуемся примерным классом
Axes
и модулем random
.Примемр кода.
Подписывайтесь на канал 👉@pythonofff
👍1
Регулярные выражения
Вы уже поняли, что при работе со строками модель re просто необходим. Отлаживать их очень тяжело, но все же необходимо.
В python для этого есть встроенная возможность, вы можете указать как флаг re.DEBUG. По названию видно, что данный flag помогает дебажить регулярные выражения.
Возможно кому-то данный способ может показаться неудобным. Я так же советую к использованию сайт regex101.com. В нем можно сразу создавать и проверять регулярные выражения, что очень удобно.
Подписывайтесь на канал 👉@pythonofff
Вы уже поняли, что при работе со строками модель re просто необходим. Отлаживать их очень тяжело, но все же необходимо.
В python для этого есть встроенная возможность, вы можете указать как флаг re.DEBUG. По названию видно, что данный flag помогает дебажить регулярные выражения.
Возможно кому-то данный способ может показаться неудобным. Я так же советую к использованию сайт regex101.com. В нем можно сразу создавать и проверять регулярные выражения, что очень удобно.
Подписывайтесь на канал 👉@pythonofff
👍3