Я новичок в питоне. Я пишу код, используя input()
в цикле while, чтобы получить символ в консоли, но он останавливается, когда вызывается функция input()
(на самом деле она ожидает ввода). Я хочу запустить цикл независимо от ввода, и код должен быть таким:
while True:
tmp = '0'
if (console.readable()):
tmp = input()
... #some tasks
Этот код похож на тот, который я сделал с C для последовательного подключения (readable () проверяет, есть ли что-то в буфере консоли). Я не уверен, что существует даже «консольный буфер», или, может быть, есть другой способ использовать функцию обратного вызова. Надеюсь, кто-то знает, как это сделать на питоне. Спасибо!!
@Carcigenicate Прочитав ответы в дупле, просто из любопытства: не могли бы вы просто сделать if __name__ == "__main__":
в цикле?
@patrick Я не понимаю, что вы имеете в виду. if __name__ = = "__main__":
не имеет ничего общего с консольным вводом.
Моя мысль заключалась в том, чтобы запускать часть input
только тогда, когда сценарий вызывается из оболочки, а не импортируется и т. д. Но, возможно, я неправильно понял вопрос ...
@patrick "но он останавливается, когда вызывается функция input () (на самом деле он ожидает ввода). Я хочу запустить цикл независимо от ввода", а бит if (console.readable()): tmp = input()
предполагает, что они хотят вызвать input
, только если они знают, что это не будет блокировать.
@Carcigenicate Спасибо за вашу помощь. Ссылка - это то, что я хочу сделать.
@takattaka Нет проблем. И если он отвечает на ваш вопрос, вы должны принять повторяющееся предложение, чтобы отметить свой вопрос как ответ.
Этот обманщик, кажется, отвечает на этот вопрос, хотя он о чем-то другом.