Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 27, 2020 19:11:47

KamaZ2564
Зарегистрирован: 2020-02-27
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь с выводом текста

Здравствуйте. Относительно - новичок в python, поэтому требуется ваша помощь.
Мне нужно сделать так, что значение определенно переменной проверялось постоянно (в цикле), но как только оно изменялось бы на определенно значение - выводился бы текст, но один раз, а не постоянно, из-за цикла. Думаю, что это легко, но до меня пока не доходит, возможно ли такое реализовать?

Офлайн

#2 Фев. 27, 2020 19:28:03

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Нужна помощь с выводом текста

KamaZ2564
у вас не получается цикл сделать или проверять значение переменной?



Офлайн

#3 Фев. 27, 2020 19:38:16

KamaZ2564
Зарегистрирован: 2020-02-27
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь с выводом текста

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)

Офлайн

#4 Фев. 27, 2020 21:09:43

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Нужна помощь с выводом текста

KamaZ2564
Мне нужно, чтобы это выводилось один раз, а не постоянно из-за цикла. Например, человек вышел из сети(вк), написалось один раз: “Вышел”, зашел - написалось: “Зашел”. В данном случае одно из слов выводится без остановок.
Ничего не понял, а нахрена же тогда цикл то?



Офлайн

#5 Фев. 27, 2020 21:35:42

KamaZ2564
Зарегистрирован: 2020-02-27
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь с выводом текста

FishHook

Вообщем: мне нужно проверять значение переменной Online постоянно, и, если это значение меняется на 1, то выводится текст, например: “Online”, если это значение меняется на 0, то текст: “Offline”. Цикл нужен, чтобы проверять значение этой переменной постоянно.

Офлайн

#6 Фев. 28, 2020 14:23:27

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

Нужна помощь с выводом текста

Попробуй такой костыль

 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)

Офлайн

#7 Фев. 28, 2020 18:28:36

KamaZ2564
Зарегистрирован: 2020-02-27
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь с выводом текста

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(“Вышел”)

Спасибо конечно, но все равно не то. При дальнейшем изменении переменно Online никакой текст выводится не будет.
Проще говоря, мне нужно постоянно фиксировать изменения переменной Online.

Отредактировано KamaZ2564 (Фев. 28, 2020 18:58:25)

Офлайн

#8 Фев. 29, 2020 11:57:35

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

Нужна помощь с выводом текста

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
Разве этот код не реагирует на каждое изменение переменной line? Print для вывода состояния line срабатывает только при изменении состояния line. Пардон за тавтологию.

Офлайн

#9 Март 2, 2020 07:46:20

crow
Зарегистрирован: 2020-02-18
Сообщения: 9
Репутация: +  2  -
Профиль   Отправить e-mail  

Нужна помощь с выводом текста

 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)	#остановка на пять секунд

можешь взять за пример и попробовать написать сам. Данный код проверяет делится ли текущее datetime.datetime.now().second(секунды) на 3 без остатка и засыпает на 5 секунд. пиши если возникнут вопросы

Отредактировано crow (Март 2, 2020 07:47:15)

Офлайн

#10 Март 3, 2020 19:30:22

KamaZ2564
Зарегистрирован: 2020-02-27
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь с выводом текста

Всем большое спасибо, разобрался.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version