как написать таймер на python

Таймер на Python

Пишу небольшую утилиту на Python 2.7 + Tkinter. Понадобилось отсчитывать время между нажатиями на кнопку. Т.е. имеется кнопка, по нажатию на которую должен активироваться таймер (отсчет в секундах); при повторном нажатии прекращается отсчет времени и выводится время. Например, так:

4 ответа 4

Как и везде — запомнить время первого нажатия, вычесть его из времени второго нажатия…

Данный вариант не блокирует сценарий выполнения скрипта. Это значит, что ты запустил таймер и он себе тихо ждет истечение времени, а программа работает дальше.

Чтобы показать время между последовательными нажатиями на кнопку (вызовами timer() ), можно использовать time.monotonic() функцию, значение которой не может пойти назад и не зависит от изменения системного времени:

Использование изменяемых значений для параметров функции по умолчанию таких как times список в примере не рекомендуется в общем случае. Вместо этого следует создать класс или closure, которое будут хранить значение таймера из прошлого нажатия кнопки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками python таймер tkinter или задайте свой вопрос.

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.10.22.40552

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник

Таймер объектов в Python

Объекты таймера используются для представления действий, которые должны быть запланированы для запуска после определенного момента времени. Эти объекты запланированы для запуска в отдельном потоке, который выполняет действие. Однако интервал, с которым инициализируется таймер, может не совпадать с фактическим моментом, когда интерпретатор фактически выполнял действие, поскольку именно планировщик потока фактически планирует расписание потока, соответствующего объекту таймера.

Таймер является подклассом класса Thread, определенного в python. Он начинается с явного вызова функции start (), соответствующей таймеру.

Создание объекта Timer

Синтаксис:

Создайте таймер, который будет запускать функцию с аргументами args и аргументами ключевого слова kwargs по истечении интервала секунд. Если args None (по умолчанию), то будет использоваться пустой список. Если kwargs None (по умолчанию), то будет использоваться пустой dict.

# Программа для демонстрации
# объекты таймера в питоне

Выход:

Объяснение: Приведенная выше программа планирует запуск функции gfg () через 5 секунд после вызова функции start ().

Отмена таймера

Синтаксис:

Остановите таймер и отмените выполнение действия таймера. Это будет работать, только если таймер все еще находится в стадии ожидания.

# Программа для отмены таймера

print ( «Cancelling timer\n» )

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Источник

9. Таймеры¶

У pyboard есть 14 таймеров, каждый из которых является независимым счётчиком, работающим на определённой пользователем частоте. Их можно использовать для запуска функций через определённые промежутки времени. Все 14 таймеров пронумерованы от 1 до 14, но 3-й зарезервирован внутренних нужд, также как 5-й и 6-й используются для сервоприводов и ADC/DAC контроллеров. Старайтесь не использовать эти зарезервированные таймеры.

Давайте создадим таймер:

Теперь давайте посмотрим что мы только что создали:

Pyboard говорит нам, что tim прикреплён к таймеру номер 4, но он ещё не инициализирован. Итак, давайте инициализируем его с частотой 10 Гц (это 10 раз в секунду):

Теперь таймер инициализирован и мы можем информацию о нём:

Из этого следует, что этот таймер настроен на цикличную работу с тактовой частотой в 255 и он будет считать до 32811, после чего он вызывает прерывание, и начинает отчёт снова с 0. Этот набор чисел задаёт частоту вызова прерывания в 10 Гц.

9.1. Счётчик таймера¶

Этот счётчик будет непрерывно меняться и подсчитывать.

9.2. Таймер с функцией обратного вызова¶

Красный светодиод немедленно начнёт мигать с частотой 5 Гц (два переключения необходимы для одного такта “горения” светодиода, так что переключение с частотой 10 Гц означает, что гореть светодиод будет с частотой 5 Гц). Мы можем изменить частоту, повторно инициализировав таймер:

Мы можем отключить функцию обратного вызова, передав ей None :

Мы можем создать 2 таймера и запустить их независимо друг от друга:

9.3. Создание счётчика микросекунд¶

Мы создадим таймер №2 следующим образом:

Заданная тактовая частота равна (prescaler) 83, это делает из таймера счётчик с частотой 1 МГц. Это происходит потому что тактовая частота процессора, работающего на частоте 168 МГц, делится на 2 и тогда к заданной частоте прибавляется единица (prescaler+1); всё это даём нам частоту таймера №2: 168МГц/2/(83 + 1) = 1МГц. Период равен огромному числу, так что таймер не скоро вернётся к нулевому значению. В данном случае таймер вернётся к нулю примерно через 17 минут.

Перед тем как использовать этот таймер, его лучше всего сбросить в ноль:

Источник

Таймер в Питоне 3.0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

tickКак открыть файл на питоне, чтобы внутри содержимый код работал при открытии на питоне?
Хочу открыть файл, чтобы внутри код работал на питоне: >>> a = open(r’F:\python\py\Madi.

Таймер должен через время положить файл на БД. [Таймер]
Мне нужен таймер, а я не знаю как его делать именно, чтоб в конкретное время он сохранял информацию.

Поясните за таймер!) Или таймер на формах наследниках
Доброго. В проге есть основная форма и в процессе работы создается 1-2-3-4-5 форм наследников все.

Таймер похожий на таймер в delphi
Добрый всем)В общем хочу создать класс таймера похожий на класс таймера на delphi.Суть в том,что я.

Решение

Ну в общем то да, я и сам понял.

Добавлено через 7 минут
И мне ещё в процессе разработки этот код был не очень удобен, потому что после каждого варианта мне нужно было, чтобы программа продолжалась. Если можно сделать так, чтобы программа продолжалась во всех 3-ех случаях одинаково (за исключением, например того, что, когда ответ верный, даётся 1 очко) то скажите мне, пожалуйста, как это сделать (код очень длинный, и вставлять во все 3 случая неудобно, поэтому ищу другой способ)
+:
Незнаю, можно ли так делать, но мне интересно, можно, например запускать другой код через программу, и вообще, запускать другие приложения. А также, можно ли, например, сохранять переменные после закрытия программы?

Slanix, чтобы не вставлять одинаковые куски кода несколько раз, нужно оформлять их как функции. Или ветвление организовать так, чтобы код попадал под несколько случаев.

Можно с помощью модуля os:

Сохранять значения переменных после закрытия программы удобнее всего в файле. Причём, если вам нужно сохранять несколько значений, стоит это делать в json-формате. Для этих целей подойдёт стандартный модуль json. Почитать о нём подробнее можно здесь. Допустим, у нас есть две переменные, age и name, значения которых нужно сохранить в файл data.txt:

Извлечь данные можно будет так:

Источник

Туториал по wx.Timer — wxPython #45

DevOps Worm 2021

wx.Timer позволяет разработчикам программного обеспечения запускать определённые фрагменты кода через определённые интервалы. В данной статье я рассмотрю несколько разных способов создания таймеров. Объекта таймера запускает свой собственный цикл события, который им и контролируется, при этом не вмешивается в главный цикл wxPython.

Простой таймер

wxpython a wx timer tutorial 1Мой первый пример невероятно прост. В нём лишь одна кнопка, которой можно останавливать и запускать таймер. Давайте взглянем на код.

Как вы видите, я импортирую только два модуля: wx и time. Я использую модуль time для того, чтобы задать время, в которое будет запущено событие wx.Timer. Две главных вещи, на которые стоит обратить внимания – это как привязывать таймер к событию и к самому хэндлеру события.

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

Для того, чтобы данный пример заработал, вам нужно привязать фрейм к событию таймера. Я пытался привязать сам таймер (например, используя self.timer.Bind), но он не сработал. Логично, что я обратился к Робину Дану, чтобы выяснить, что происходит. Он сказал, что, если перентом таймера является фрейм, фрейм будет единственным объектом, который получит событие таймера, и так будет до тех пор, пока вы не извлечёте wx.Timer и не используете (отмените) его метод Notify. Как по мне, звучит логично.

В любом случае, давайте взглянем на мой хэндлер события. В нём я захватывают ярлык кнопки и использую условное выражение if, чтобы решить хочу я запускать или останавливать таймер, ведь ярлык будет отличатся в зависимости от текущего состояния таймера. В данном случае я могу использовать лишь одну функцию, которая будет переключать состояние таймера и самой кнопки. Стоит обратить внимание на методы Start и Stoр. Они контролируют сам таймер.

В одной из приложений, которое мне пришлось разрабатывать, я использовал таймер для запуска проверки состояния папки «Входящие» моей электронной почты. Я обратил внимание на то, что если выйду из приложения, при этом не остановив таймер, то моя программа просто превратится в процесс-зомби. Так что вам нужно убедиться в том, что вы остановить все таймеры перед тем, как закрыть программу или снять задачу.

Перед тем, как перейти к следующему примеру, давайте посмотрим, как можно переработать этот. У Робина Дана было несколько идей, так что я внедрил их в код, который вы можете найти ниже. Вы уже нашли отличия?

Источник

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии