Существует много способов управления запущенной программой, но в первом приближении все они включают чередование между выполнением некоторой работы и проверкой ввода. Очень простой подход будет выглядеть примерно так:
import string
value = 1
def checkChangeValue():
newValue = input()
if newValue.isdigit():
global value
value = int(newValue)
def main():
print("Value is {}".format(value))
def loop():
main()
checkChangeValue()
if __name__ == '__main__':
while True:
loop()
При этом снова и снова запускается функция main
(«выполнить какую-то работу»), а затем checkChangeValue
(«проверять наличие ввода»). Однако это может не сработать так, как вы хотите, потому что input()
ждет, когда вы наберете что-то и нажмете клавишу ввода, поэтому оно заблокирует выполнение main
. Чтобы обойти это, вы можете добавить темы:
import string
import threading
value = 1
def checkChangeValue():
global value
while True:
newValue = input()
if newValue.isdigit():
value = int(newValue)
def main():
print("Value is {}".format(value))
if __name__ == '__main__':
threading.Thread(target=checkChangeValue).start()
while True:
main()
Любой из этих методов может работать в зависимости от ваших потребностей. Для более изощренного подхода вы можете обратиться к библиотеке pynput , которая позволяет вам взаимодействовать с вашей программой посредством ввода с клавиатуры или мыши.
Существует также много других способов управления запущенной программой! Вы можете общаться с вашей программой через файлы, каналы, сокеты, разделяемую память и т. Д. Это обычно называется «Межпроцессное взаимодействие» или IPC.