Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 18, 2016 06:56:04

Kir@
Зарегистрирован: 2015-08-13
Сообщения: 124
Репутация: +  0  -
Профиль   Отправить e-mail  

Таймер

Здрям!
Хочу написать таймер, который будет выводить циклом:
1. прошло 25 минут, сообщение “Сообщение 1”
2. прошло 5 минут, сообщение “Сообщение 2”
3. прошло 25 минут, сообщение “Сообщение 3”
4. прошло 5 минут, сообщение “Сообщение 4”

Цикл не идет.

import time
from datetime import datetime, timedelta, date, time as dt_time
from tkinter import messagebox
d = datetime.today()
#print (d.strftime('%M'))
a='25'
b='30'
c='50'
e='00'
#бесконечный цикл
while d:
    if d.strftime == a:
        print ('Хо-хо')
    elif d.strftime == b:
        print ('Ха-ха')
    elif d.strftime == c:
        print ('Хи-хи')
    elif d.strftime == e:
        print ('Хе-хе')
    else:
        time.sleep(5) # делаем паузу 50 секунд

Отредактировано Kir@ (Фев. 18, 2016 09:07:31)

Офлайн

#2 Фев. 18, 2016 09:00:52

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Таймер

import time
def time1():
	time.sleep(1)
	print("One second")
	time2()
def time2():
	time.sleep(2)
	print("Two second")
	time1()
time2()

Офлайн

#3 Фев. 18, 2016 09:01:06

Firik
Зарегистрирован: 2015-12-02
Сообщения: 151
Репутация: +  6  -
Профиль   Отправить e-mail  

Таймер

А где тут цикл то?

Офлайн

#4 Фев. 18, 2016 09:01:31

Kir@
Зарегистрирован: 2015-08-13
Сообщения: 124
Репутация: +  0  -
Профиль   Отправить e-mail  

Таймер

Код немножко эволюционировал

Офлайн

#5 Фев. 18, 2016 09:19:42

zloymih
От:
Зарегистрирован: 2011-03-01
Сообщения: 36
Репутация: +  0  -
Профиль   Отправить e-mail  

Таймер

import time
def my_message(t, m):
    time.sleep(t)
    print m
while True:
    my_message(60*5*5,"Сообщение 1")
    my_message(60*5,"Сообщение 2")
    my_message(60*5*5,"Сообщение 3")
    my_message(60*5,"Сообщение 4")



Офлайн

#6 Фев. 18, 2016 10:32:59

Kir@
Зарегистрирован: 2015-08-13
Сообщения: 124
Репутация: +  0  -
Профиль   Отправить e-mail  

Таймер

Вот так почти работает:

import time
from tkinter import messagebox
def time1():
	time.sleep(1500)
	#print("One second")
	messagebox.showinfo('Alarm!', '!')
	time2()
def time2():
	time.sleep(300)
	#print("Two second")
	messagebox.showinfo('Alarm!', '!')
	time3()
def time3():
	time.sleep(1200)
	#print("Two second")
	messagebox.showinfo('Alarm!', '!')
	time4()
def time4():
	time.sleep(600)
	#print("Two second")
	messagebox.showinfo('Alarm!', '!')
	time1()
time1()

Только подвисает окошко tk. Думаю от него отказаться. Как можно очень просто запустить воспроизведение какого-нибудь музыкального сигнала?

Офлайн

#7 Фев. 18, 2016 10:58:44

Kir@
Зарегистрирован: 2015-08-13
Сообщения: 124
Репутация: +  0  -
Профиль   Отправить e-mail  

Таймер

Рабочий вариант со звкуом:

import time
import winsound, sys
def time1():
	#time.sleep(1500)
        time.sleep(15)
	winsound.PlaySound('s.wav', winsound.SND_FILENAME)
	time2()

Отредактировано Kir@ (Фев. 18, 2016 11:01:44)

Офлайн

#8 Фев. 18, 2016 22:45:25

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Таймер

Kir@
Только подвисает окошко tk.
не повисает, а наверное вызывается модально т.е. с блокировкой приложения, до тех пор пока окно не будет закрыто. Я не силен в Tk, поэтому не подскажу как окна вызывать не модально.
Kir@
шикарный говнокод. Почему бы не сделать правильно?
import time
import winsound
def timer(seconds):
        time.sleep(seconds)
	winsound.PlaySound('s.wav', winsound.SND_FILENAME)
times = [1500, 300, 1200, 600]
for value in times:
    timer(value)



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version