Найти - Пользователи
Полная версия: Часики
Начало » Python для новичков » Часики
1
dmitry767
Привет всем :)
Уж извините, что тему новую создал, но пытаясь перечитать все посты связанные со временем на форуме, окончательно запутался :)))
Есть вот такой вот “счётчик”:

# Счётчик секунд, минут, часов
while MySeconds < 60:
time.sleep(1)
sec = sec + 1
if sec > 59:
minute = minute + 1
sec = 0
if minute > 59:
hour = hour + 1
minute = 0
if hour > 23:
hour = 0
Всё работает, всё считается. Но есть проблемка - часики, в зависимости от выбранного time.sleep(), то начинают спешить, то отстают. Как я понял, это из за времени, затрачиваемого на обработку команд интерпетатором. И если я даже и подгоню “время сна”на своём компьютере, то скорость всё равно будет зависеть от производительности системы.
Вопрос: возможно ли избежать задержки? Или может я что то делаю не так?
Спасибо за внимание.
FooBar
чтобы получить время нужно использовать time.strftime(“%X”)
igor.kaist
А что ты хочешь получить в итоге?
dmitry767
Хотелось часы. Но не каждый раз получать время из системы, а что бы один раз (например во время загрузки компа) получить текущее время, а дальше считалось всё с помощью питона. В начале время я получал другим способом. Вот так -
sys_time = time.localtime()
seconds = sys_time[5]
Но время системы должно быть лишь точкой отсчёта.
igor.kaist
Ввиду архитектуры современных операционных систем, с их многозадачностью, это в полной мере невозможно. Не проще ли брать системное время?
Кстати, в доках, черным по белому написано, что функция sleep не имеет достаточной точности.
Зачем так извращаться?
dmitry767
Данные извращения, производятся с целью обучения. Раздел то для новичков. Вот попробовал на практике циклы… Заодно познакомился с функцией sleep. А вопрос просто по ходу возник. Так что - спасибо. :)
ice
import time

ticks = 0

while 1:
time.sleep(1)
ticks += 1
min = ticks / 60
hour = ticks / 3600
sec = ticks % 10
print hour, min, sec
Я так делал :) C if не красиво.
Pydj
Я бы немного подкорректировал:

 import time

ticks = 0

while 1:
time.sleep(1)
ticks += 1
min = ticks / 60
hour = ticks / 3600
sec = ticks % 60
print hour,'.',min,'.', sec
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB