这可以在python中完成吗? 首先打印无限循环并在循环之间更改值。
x = 5
while ( true ):
print x
x = 3 # regain control of the interpreter and set to new value
预期产出:
5
5
5
......
3
3
3
答案 0 :(得分:4)
不,你编写的代码不起作用。非终止循环后的语句永远不会被执行。
尝试以下方法:
x = 5
while True:
if (some-condition):
x = 3
print x
或者,使用threading,并在第二个帖子中更改x的值:
def changeX():
global x
x = 3
x = 5
import threading
threading.Timer(3, changeX).start() # executes changeX after 3 seconds in a second thread
while True:
print x
答案 1 :(得分:1)
目前还不清楚你需要做什么,但你可以抓住“ctrl-c”事件并输入一个新值:
x = 5
while True:
try:
print x
except KeyboardInterrupt:
x = raw_input("Enter new value: ").strip()
答案 2 :(得分:1)
我认为这个问题的最佳答案是使用线程,但是有一种方法可以将代码注入到正在运行的解释器线程中:
答案 3 :(得分:0)