Форум сайта python.su
Здравствуйте. Относительно - новичок в python, поэтому требуется ваша помощь.
Мне нужно сделать так, что значение определенно переменной проверялось постоянно (в цикле), но как только оно изменялось бы на определенно значение - выводился бы текст, но один раз, а не постоянно, из-за цикла. Думаю, что это легко, но до меня пока не доходит, возможно ли такое реализовать?
Офлайн
KamaZ2564
у вас не получается цикл сделать или проверять значение переменной?
Офлайн
FishHook
KamaZ2564 у вас не получается цикл сделать или проверять значение переменной?
while True: response = api.users.get(user_ids=target, fields='online') online = response[0]['online'] if online == 1: print("Зашел") elif online == 0: print("Вышел")
Отредактировано KamaZ2564 (Фев. 27, 2020 19:40:53)
Офлайн
KamaZ2564Ничего не понял, а нахрена же тогда цикл то?
Мне нужно, чтобы это выводилось один раз, а не постоянно из-за цикла. Например, человек вышел из сети(вк), написалось один раз: “Вышел”, зашел - написалось: “Зашел”. В данном случае одно из слов выводится без остановок.
Офлайн
FishHook
Офлайн
Попробуй такой костыль
old_online = 3 while True: response = api.users.get(user_ids=target, fields='online') online = response[0]['online'] if online == 1 and old_online != 1: old_online = 1 print("Зашел") elif online == 0 and old_online != 0: old_online = 0 print("Вышел")
Отредактировано Rafik (Фев. 28, 2020 14:25:46)
Офлайн
Rafik
old_online = 3
while True:
response = api.users.get(user_ids=target, fields='online')
online = response
if online == 1 and old_online != 1:
old_online = 1
print(“Зашел”)
elif online == 0 and old_online != 0:
old_online = 0
print(“Вышел”)
Отредактировано KamaZ2564 (Фев. 28, 2020 18:58:25)
Офлайн
KamaZ2564Ты в этом уверен? Тогда как же получается такой фокус?
При дальнейшем изменении переменно Online никакой текст выводится не будет
>>> old = 3 >>> ii = 0 >>> while ii < 10: ... print(ii) ... if ii in (0,4,8): ... line = 1 ... elif ii in(2,6): ... line = 0 ... if line == 1 and old != 1: ... print("Online!") ... old = 1 ... elif line == 0 and old != 0: ... old = 0 ... print("OffLine") ... ii += 1 ... 0 Online! 1 2 OffLine 3 4 Online! 5 6 OffLine 7 8 Online! 9
Офлайн
import time import datetime last_status=False #стартовый статус активности while True: dt = datetime.datetime.now().second if dt%3==0: #подобие проверки на активность if last_status==False: #проверка последнего статуса last_status=True #изменение статуса print('LogOn'+str(dt)) time.sleep(5) #остановка на пять секунд elif dt%3!=0: if last_status==True: #проверка последнего статуса last_status=False #изменение статуса print('LogOff'+str(dt)) time.sleep(5) #остановка на пять секунд
Отредактировано crow (Март 2, 2020 07:47:15)
Офлайн
Всем большое спасибо, разобрался.
Офлайн