Использование Event.wait() в многопоточности Python. 1 ч.
Модуль threading предоставляет Event(), которого можно использовать как time.sleep(). Однако преимущество Event() в том, что он более отзывчив. Причина в том, что когда событие установлено, программа сразу выходит из цикла. В Python с time.sleep() коду надо будет подождать завершения вызова sleep() до выхода из потока.
Модуль threading предоставляет Event(), которого можно использовать как time.sleep(). Однако преимущество Event() в том, что он более отзывчив. Причина в том, что когда событие установлено, программа сразу выходит из цикла. В Python с time.sleep() коду надо будет подождать завершения вызова sleep() до выхода из потока.
Всем привет!
Мы сделали анонимный сервис, который отбирает вакансии по вашим интересам.
Настройте личные фильтры: локация, точный технологический стек, и, конечно, не забудьте о деньгах.
Все самые подходящие предложения рынка – в @GetMeIT_bot
Мы сделали анонимный сервис, который отбирает вакансии по вашим интересам.
Настройте личные фильтры: локация, точный технологический стек, и, конечно, не забудьте о деньгах.
Все самые подходящие предложения рынка – в @GetMeIT_bot
Аннотация типов
Дает нам возможность проставлять в коде "подсказки" для программиста, не используя комментарии через #
При большом количестве кода бывает, что просто забудешь какой тип должна принять / вернуть функция. Для этого и можно воспользоваться этой полезной фичей
А еще можно воспользоваться модулем mypy, чтобы находить ошибки несоответствия типов в коде
Дает нам возможность проставлять в коде "подсказки" для программиста, не используя комментарии через #
При большом количестве кода бывает, что просто забудешь какой тип должна принять / вернуть функция. Для этого и можно воспользоваться этой полезной фичей
А еще можно воспользоваться модулем mypy, чтобы находить ошибки несоответствия типов в коде
Использование Event.wait() в многопоточности Python. 2 ч.
Причина, по которой здесь лучше использовать wait() в том, что он не блокируется, в то время, как time.sleep() блокируется. Это значит, что при использовании time.sleep() вы заблокируете выполнение основного потока, пока тот будет ждать завершения вызова sleep(). wait() решает данную проблему.
Затем устанавливаются циклы для проверки, настроено ли событие event. Если это не так, тогда код выведет сообщение и немного подождет перед повторной проверкой. Для установки события можно воспользоваться комбинацией ^Ctrl+C. Как только событие установлено, worker() вернется, и цикл оборвется, завершив программу.
Причина, по которой здесь лучше использовать wait() в том, что он не блокируется, в то время, как time.sleep() блокируется. Это значит, что при использовании time.sleep() вы заблокируете выполнение основного потока, пока тот будет ждать завершения вызова sleep(). wait() решает данную проблему.
Затем устанавливаются циклы для проверки, настроено ли событие event. Если это не так, тогда код выведет сообщение и немного подождет перед повторной проверкой. Для установки события можно воспользоваться комбинацией ^Ctrl+C. Как только событие установлено, worker() вернется, и цикл оборвется, завершив программу.
Примеры использования модуля os в Python
os.chdir() и os.getcwd()
Функция os.chdir позволяет нам вносить изменения в каталоге, который мы в данный момент используем в сессии.
Если вам нужно знать, какой путь вы в данный момент используете, для этой нужно вызвать os.getcwd(). Указанный код демонстрирует нам, что мы открыли директорию по умолчанию в Пайтоне, после запуска данного кода в IDLE.
После этого мы изменили папки, при помощи os.chdir().
os.chdir() и os.getcwd()
Функция os.chdir позволяет нам вносить изменения в каталоге, который мы в данный момент используем в сессии.
Если вам нужно знать, какой путь вы в данный момент используете, для этой нужно вызвать os.getcwd(). Указанный код демонстрирует нам, что мы открыли директорию по умолчанию в Пайтоне, после запуска данного кода в IDLE.
После этого мы изменили папки, при помощи os.chdir().
Следите за температурой и влажностью в доме с помощью Raspberry Pis и Prometheus.
https://proglib.io/w/d9b18589
https://proglib.io/w/d9b18589
Opensource.com
Monitor your home's temperature and humidity with Raspberry Pis and Prometheus
Data is beautiful. As a #CitizenScientist, I enjoy gathering data and trying to make sense of the world around me.
Как обрабатывать исключения?
Обработка исключений в Пайтон – это очень просто. Потратим немного времени и напишем несколько примеров, которые их вызовут. Мы начнем с одной из самых элементарных проблем: деление на ноль.
Если мы обратимся к урокам элементарной математики, то вспомним, что на ноль делить нельзя. В Пайтоне данная операция вызовет ошибку, как мы можем видеть в примере выше. Чтобы поймать ошибку, мы завернем операцию в оператор try/except.
Обработка исключений в Пайтон – это очень просто. Потратим немного времени и напишем несколько примеров, которые их вызовут. Мы начнем с одной из самых элементарных проблем: деление на ноль.
Если мы обратимся к урокам элементарной математики, то вспомним, что на ноль делить нельзя. В Пайтоне данная операция вызовет ошибку, как мы можем видеть в примере выше. Чтобы поймать ошибку, мы завернем операцию в оператор try/except.
Robust Python: Write Clean and Maintainable Code (2021)
Автор: Patrick Viafore
Количество страниц: 380
Кажется, что ваши проекты Python становятся все больше и больше? Вы чувствуете боль, когда ваша кодовая база расширяется и становится все сложнее отлаживать и поддерживать? Python - это простой язык для изучения и использования, и это также означает, что системы могут быстро вырасти за пределы понимания. К счастью, у Python есть функции, которые помогают разработчикам преодолеть проблемы с поддержкой кода.
Скачать книгу
Автор: Patrick Viafore
Количество страниц: 380
Кажется, что ваши проекты Python становятся все больше и больше? Вы чувствуете боль, когда ваша кодовая база расширяется и становится все сложнее отлаживать и поддерживать? Python - это простой язык для изучения и использования, и это также означает, что системы могут быстро вырасти за пределы понимания. К счастью, у Python есть функции, которые помогают разработчикам преодолеть проблемы с поддержкой кода.
Скачать книгу
Telegram
Книги для программистов (reserved)
Robust Python: Write Clean and Maintainable Code (2021)
Автор: Patrick Viafore
Автор: Patrick Viafore
Класс collections.deque
Класс deque реализует двухконечную очередь, которая поддерживает добавление и удаление элементов с обоих концов в течение О(1) времени.
Объекты deque представлены в виде двусвязных списков, что дает им превосходную производительность для входящих и выходящих элементов, но при этом у него плохая производительность O(n) при работе со случайно принимаемыми элементами в середине очереди.
В связи с тем, что deque поддерживает вставку и удаление элементов одинаково хорошо, они могут поддерживать и очереди и стеки. collections.deque это отличное решение, если вы ищите структуру данных очереди в Python в стандартной библиотеке.
Класс deque реализует двухконечную очередь, которая поддерживает добавление и удаление элементов с обоих концов в течение О(1) времени.
Объекты deque представлены в виде двусвязных списков, что дает им превосходную производительность для входящих и выходящих элементов, но при этом у него плохая производительность O(n) при работе со случайно принимаемыми элементами в середине очереди.
В связи с тем, что deque поддерживает вставку и удаление элементов одинаково хорошо, они могут поддерживать и очереди и стеки. collections.deque это отличное решение, если вы ищите структуру данных очереди в Python в стандартной библиотеке.
Простая обрезка изображения в Pillow
Обозначим область обрезки изображения с помощью кортежа box=(left, upper, right, lower).
Верхней левой координате соответствует (x, y) = (left, upper), а нижней правой — (x, y) = (right, lower). Область, которую нужно обрезать — left <= x <right и upper <= y <lower, а пиксели x = right и y = lower не включаются.
Не забудьте, что box используется вместе со скобками ().
Обозначим область обрезки изображения с помощью кортежа box=(left, upper, right, lower).
Верхней левой координате соответствует (x, y) = (left, upper), а нижней правой — (x, y) = (right, lower). Область, которую нужно обрезать — left <= x <right и upper <= y <lower, а пиксели x = right и y = lower не включаются.
Не забудьте, что box используется вместе со скобками ().
Pythonist - канал-движение питонистов в рунете.
Контент нашего канала:
1. Книги
2. Алгоритмы
3. Тесты по Python
4. Логические задачи
5. Проект Эйлера
6. Django
Контент нашего канала:
1. Книги
2. Алгоритмы
3. Тесты по Python
4. Логические задачи
5. Проект Эйлера
6. Django
Python for SAS Users (2020)
Автор: Randy Betancourt, Sarah Chen
Количество страниц: 451
Пользователи, знакомые с программированием с Base SAS, теперь могут изучать Python на примерах. Описания кода в книге отображают программные конструкции SAS и шаблоны в их эквиваленты на Python. В первую очередь вы сосредоточитесь на pandas и вопросах управления данными, связанных с анализом данных.
Скачать книгу
Автор: Randy Betancourt, Sarah Chen
Количество страниц: 451
Пользователи, знакомые с программированием с Base SAS, теперь могут изучать Python на примерах. Описания кода в книге отображают программные конструкции SAS и шаблоны в их эквиваленты на Python. В первую очередь вы сосредоточитесь на pandas и вопросах управления данными, связанных с анализом данных.
Скачать книгу
Разбираем модуль sys.executable
sys.executable - путь к интерпретатору Python.
Значение sys.executable – это полный путь к интерпретатору Python. Это очень полезно, когда вы используете чей-то компьютер, и вам нужно узнать, где установлен Python. В некоторых системах данная команда не сработает, и выдаст пустую строку с надписью None.
sys.executable - путь к интерпретатору Python.
Значение sys.executable – это полный путь к интерпретатору Python. Это очень полезно, когда вы используете чей-то компьютер, и вам нужно узнать, где установлен Python. В некоторых системах данная команда не сработает, и выдаст пустую строку с надписью None.
Опрос разработчиков Django от 2021 года
Работаете с Django? Фонд программного обеспечения Django хочет услышать ваше мнение!
https://proglib.io/w/e260923e
Работаете с Django? Фонд программного обеспечения Django хочет услышать ваше мнение!
https://proglib.io/w/e260923e