Итерирование с использованием функции enumerate
Функция range позволяет получить только индексы элементов списка. Функция
Получается короткий и понятный код!
В примере разберем как извлечь из списка элементы и их индекс, рис.1.
Еще одной полезной и крутой фишкой этой функции будет легкое создания счетчика. Более того, мы можем установить первоначальное значение счетчика, рис. 2.
Подписывайтесь на канал 👉@pythonofff
Функция range позволяет получить только индексы элементов списка. Функция
enumerate
генерирует кортежи, состоящие из двух элементов – индекса элемента и самого элемента. Эти кортежи можно распаковать еще в заголовке for
Получается короткий и понятный код!
В примере разберем как извлечь из списка элементы и их индекс, рис.1.
Еще одной полезной и крутой фишкой этой функции будет легкое создания счетчика. Более того, мы можем установить первоначальное значение счетчика, рис. 2.
Подписывайтесь на канал 👉@pythonofff
Сборка exe файлов - pyinstaller
Если вы просто скопируете проект, то он не будет работать на других системах где нет установленного Python, а если есть, то возможно там отсутствуют нужные библиотеки. Но можно создать исполняемый файл exe, который запустится и без Python. Необходимо установить pyinstaller:
--noconsole - консоль не будет запускаться при открытии
main.py - файл, при запуске которого начинает работать ваша программа
В папке dist будет лежать нужный файл, остальные созданные папки можно удалить
Внимание! С помощью данного метода не получится скрыть ваш код, так же вы не получите прироста в скорости работы программы.
Подписывайтесь на канал 👉@pythonofff
Если вы просто скопируете проект, то он не будет работать на других системах где нет установленного Python, а если есть, то возможно там отсутствуют нужные библиотеки. Но можно создать исполняемый файл exe, который запустится и без Python. Необходимо установить pyinstaller:
install pyinstaller
Затем перейти в командную строку, и перейти в нужную директорию с помощью команды cd. Далее напишем такой код: --onefile --noconsole main.py
--onefile - означает, что будет только один исполняемый файл.--noconsole - консоль не будет запускаться при открытии
main.py - файл, при запуске которого начинает работать ваша программа
В папке dist будет лежать нужный файл, остальные созданные папки можно удалить
Внимание! С помощью данного метода не получится скрыть ваш код, так же вы не получите прироста в скорости работы программы.
Подписывайтесь на канал 👉@pythonofff
Как перевести массив в список на python?
Вы можете использовать метод
Подписывайтесь на канал 👉@pythonofff
Вы можете использовать метод
.tolist()
для перевода массива в список.Подписывайтесь на канал 👉@pythonofff
Разница между
Недавно в чате наши подписчики затрагивали эту тему, поэтому мы решили разложить всё по полочкам, чтобы в дальнейшем не возникало вопросов.
Итак, оператор
Однако Python в целях производительности кеширует короткие строки и малые целые числа, поэтому возможны некоторые казусы, как в примере.
Подписывайтесь на канал 👉@pythonofff
==
и is
Недавно в чате наши подписчики затрагивали эту тему, поэтому мы решили разложить всё по полочкам, чтобы в дальнейшем не возникало вопросов.
Итак, оператор
==
проверяет равенство значений двух объектов. А оператор is в свою очередь проверяет идентичность самих объектов. Его используют, чтобы удостовериться, что переменные указывают на один и тот же объект в памяти.Однако Python в целях производительности кеширует короткие строки и малые целые числа, поэтому возможны некоторые казусы, как в примере.
Подписывайтесь на канал 👉@pythonofff
Как округлить до тысячных в python?
Вы можете использовать
Подписывайтесь на канал 👉@pythonofff
Вы можете использовать
round()
Подписывайтесь на канал 👉@pythonofff
Как создать массив из n элементов в python?
Вы можете использовать цикл и метод
Подписывайтесь на канал 👉@pythonofff
Вы можете использовать цикл и метод
.append()
. Так же для примера можно использовать модуль random.Подписывайтесь на канал 👉@pythonofff
Библиотека FuzzyWuzzy
Интересная и полезная библиотека поиска совпадений в тексте. Очень поможет вам при работе над общающимися ботами: голосовыми или текстовыми помощниками.
Разумеется, это один из инструментов, всегда можно использовать другой, но я лично пользуюсь этим.
Библиотеку следует установить:
Интересная и полезная библиотека поиска совпадений в тексте. Очень поможет вам при работе над общающимися ботами: голосовыми или текстовыми помощниками.
Разумеется, это один из инструментов, всегда можно использовать другой, но я лично пользуюсь этим.
Библиотеку следует установить:
install fuzzywuzzy
Подписывайтесь на канал 👉@pythonofffИзбегайте неоправданных циклов с коллекциями
Предположим, что требуется создать новый список, элементами которого будут являться квадраты чисел данного списка. Большинство сразу же напишут простенький цикл
Но в этом и проблема. Такой подход займет как минимум три строчки: объявление новой переменной, создание цикла и инструкции внутри него. При этом также снижается скорость работы скрипта.
На прикрепленной картинке я привел две достойные альтернативы, а именно использование генератора списков и функции map. В обоих вариантах не только код становится короче и выразительнее, но и заметно повышается производительность.
Подписывайтесь на канал 👉@pythonofff
Предположим, что требуется создать новый список, элементами которого будут являться квадраты чисел данного списка. Большинство сразу же напишут простенький цикл
for
.Но в этом и проблема. Такой подход займет как минимум три строчки: объявление новой переменной, создание цикла и инструкции внутри него. При этом также снижается скорость работы скрипта.
На прикрепленной картинке я привел две достойные альтернативы, а именно использование генератора списков и функции map. В обоих вариантах не только код становится короче и выразительнее, но и заметно повышается производительность.
Подписывайтесь на канал 👉@pythonofff
"Быстрый" контейнер deque
Встроенных списков в Python иногда может не хватать, поэтому покажем одну хорошую альтернативу.
Также для
Подписывайтесь на канал 👉@pythonofff
Встроенных списков в Python иногда может не хватать, поэтому покажем одну хорошую альтернативу.
Deque
может быть реализован c помощью модуля collections
. Deque
предпочтительнее, чем обычный список, в тех случаях, когда нам нужны более быстрые операции добавления и вытягивания элементо из обоих концов контейнера, поскольку deque
обеспечивает линейную сложность O(1) для операций добавления и выталкивания по сравнению со списком, у которого сложность по времени для тех операций составляет O(n).Также для
deque
есть возможность использовать стандартные функции по типу sum
, min
, max
и тому подобные. Подписывайтесь на канал 👉@pythonofff
Как проверить существование переменной в Python?
Вы можете использовать
Подписывайтесь на канал 👉@pythonofff
Вы можете использовать
in locals()
или in globals()
, чтобы проверить переменная существует в Python, разница только:in locals()
проверяет если переменная объявлена в локальной зоне видимостиin globals()
проверяет если переменная объявлена в глобальной зоне видимостиПодписывайтесь на канал 👉@pythonofff
Контекстные менеджеры
Контекстные менеджеры позволяют задать поведение при работе с конструкцией
Простейшей функцией, использующей данный принцип является функция
Чтобы каждый раз не вызывать метод
Подписывайтесь на канал 👉@pythonofff
Контекстные менеджеры позволяют задать поведение при работе с конструкцией
with
: при входе и выходе из блока. Это упрощает работу с ресурсами в части их захвата и освобождения; транзакциями, когда нужно либо полностью закончить транзакцию, либо откатить ее целиком. Простейшей функцией, использующей данный принцип является функция
open
. Каждый раз, когда мы открываем файл, нам необходимо его закрыть, чтобы вытолкнуть выходные данные на диск (на самом деле Python вызывает метод close
автоматически, но явное его использование является хорошим тоном). Чтобы каждый раз не вызывать метод
close
мы можем воспользоваться контекстным менеджером функции open
, который автоматически закроет файл после выхода из блока. Подписывайтесь на канал 👉@pythonofff
Вывод значения по умолчанию для отсутствующего ключа словаря
Если вы обратитесь к несуществующему ключу словаря, то это вызовет исключение. Избежать этого можно, вызывая метод
Подписывайтесь на канал 👉@pythonofff
Если вы обратитесь к несуществующему ключу словаря, то это вызовет исключение. Избежать этого можно, вызывая метод
get
. В примере метод выдает None
(по умолчанию) или заданное значение аргумента.Подписывайтесь на канал 👉@pythonofff
Декораторы
Очень важная тема, с помощью декорирования можно писать очень удобные логи или существенно расширять функции.
Многие библиотеки работают с использованием декораторов:
Мы показываем лишь простой пример, возможности куда шире. Позже покажем пример использования с упоминаемыми выше библиотеками.
Подписывайтесь на канал 👉@pythonofff
Очень важная тема, с помощью декорирования можно писать очень удобные логи или существенно расширять функции.
Многие библиотеки работают с использованием декораторов:
Flask
и aiogram
хорошие тому примеры.Мы показываем лишь простой пример, возможности куда шире. Позже покажем пример использования с упоминаемыми выше библиотеками.
Подписывайтесь на канал 👉@pythonofff
Изучаем две мощные функции map и filter, а также затрагиваем тему анонимных lambda-функций
Эти две функции - очень мощные инструменты в Python, которые входят в тему функционального программирования. Зачастую вместе с ними используют анонимные lambda-функции.
Подробнее
Подписывайтесь на канал 👉@pythonofff
Эти две функции - очень мощные инструменты в Python, которые входят в тему функционального программирования. Зачастую вместе с ними используют анонимные lambda-функции.
Подробнее
Подписывайтесь на канал 👉@pythonofff
Удаление дубликатов в списке
Первое что приходит на ум — преобразовать список во множество и обратно. Это хороший и рабочий способ. Но если вам нужно сохранить последовательность, то этот способ не подойдёт. С этой задачей легко справится
Подписывайтесь на канал 👉@pythonofff
Первое что приходит на ум — преобразовать список во множество и обратно. Это хороший и рабочий способ. Но если вам нужно сохранить последовательность, то этот способ не подойдёт. С этой задачей легко справится
OrderedDict
из модуля collections
Подписывайтесь на канал 👉@pythonofff
Как красиво напечатать json в Python?
Вы можете использовать
Подписывайтесь на канал 👉@pythonofff
Вы можете использовать
json.dumps()
в Python, чтобы красиво напечатать json.Подписывайтесь на канал 👉@pythonofff
Асинхронное программирование
Обычно мы пишем синхронный код - выполняется по порядку один за другим. Но иногда требуется, чтобы выполнялось несколько задач одновременно. К примеру, пока копируются файлы можно было поиграть в игру. Это возможно благодаря нескольким ядрам и потокам. ВАЖНО! Асинхронность не обязательно делает код быстрее, но может повысить его эффективность. В момент простаивания процессор будет переключаться на другие задачи.
На картинке программа, где повар готовит сразу несколько блюд. По другому бы нам пришлось по-очереди готовить каждое блюдо, но мы можем вернуться к другим, если поставили блюдо на огонь.
Подписывайтесь на канал 👉@pythonofff
Обычно мы пишем синхронный код - выполняется по порядку один за другим. Но иногда требуется, чтобы выполнялось несколько задач одновременно. К примеру, пока копируются файлы можно было поиграть в игру. Это возможно благодаря нескольким ядрам и потокам. ВАЖНО! Асинхронность не обязательно делает код быстрее, но может повысить его эффективность. В момент простаивания процессор будет переключаться на другие задачи.
На картинке программа, где повар готовит сразу несколько блюд. По другому бы нам пришлось по-очереди готовить каждое блюдо, но мы можем вернуться к другим, если поставили блюдо на огонь.
Подписывайтесь на канал 👉@pythonofff
Станьте веб-разработчиком на 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
Как сравнить строки без учета регистра в Python?
Есть несколько способов сравнить строки без учета регистра в Python:
Использовать метод
Привести обе строки к заглавным или строчным, используя
Пример кода.
Подписывайтесь на канал 👉@pythonofff
Есть несколько способов сравнить строки без учета регистра в Python:
Использовать метод
.casefold()
чтобы игнорировать регистрПривести обе строки к заглавным или строчным, используя
lower()
или upper()
для сравниваемых строкПример кода.
Подписывайтесь на канал 👉@pythonofff
Библиотека schedule
Гибкая библиотека для создания планировщика. Точнее с её помощью можно создавать задачи, которые будут выполняться с определенным интервалом. Промежуток настраивается как душе угодно и работает до выключения пользователем приложения.
Конечно можно было использовать стандартный таймер, но зачем изобретать велосипед? С данной библиотекой планировка задач станет намного проще и понятнее другим программистам.
Библиотеку необходимо установить:
Подписывайтесь на канал 👉@pythonofff
Гибкая библиотека для создания планировщика. Точнее с её помощью можно создавать задачи, которые будут выполняться с определенным интервалом. Промежуток настраивается как душе угодно и работает до выключения пользователем приложения.
Конечно можно было использовать стандартный таймер, но зачем изобретать велосипед? С данной библиотекой планировка задач станет намного проще и понятнее другим программистам.
Библиотеку необходимо установить:
install schedule
В примере используется seconds, но можно использовать minutes, hour, day.at("8:00"), monday, minute.at(":17"). Если добавлять at, то указываем во сколько именно произойдет событие. Подписывайтесь на канал 👉@pythonofff