Вы можете найти это как неблокирующий вход.
Вот решение от переполнения стека , в котором используются потоки
Я сделал небольшое модифицированное решение, оно все еще нуждается в доработке, но это более или менее то, что вам нужно сделать.
python
import threading
import time
import random
userInput = ""
finished = False
sensorValue = 100
previousValue = 0
def Listener():
global userInput, finished, sensorValue
userInput = raw_input(sensorValue)
if len(userInput) > 0:
print(len(userInput))
finished = True
else:
finished = False
while True:
if sensorValue != previousValue:
print("Received new slider info. SliderValue is {}".format(sensorValue))
previousValue = sensorValue
else:
print("No new info from slider. Sleeping two seconds.")
if not finished:
listener = threading.Thread(target=Listener)
listener.start()
else:
break
if random.randint(0,1) == 1:
sensorValue += 10
time.sleep(2)
Посмотри, ответит ли это на твой вопрос! :)