你好我有一个循环它基本上是一个名称生成器,我想在某个时候停止它。我有想法用一把钥匙停止它。因为我不能阻止它由于它的高生成率我不能输入停止或任何它太fas.Like,如果我按Enter键,发电机应停止,但我无法弄清楚如何。当发电机产生1000个字时,我有一个计时器的想法,它将停止。所有定时器停止/计时器被接受。这是我的代码`
import time
from time import sleep
import random
import string
def run_bot():
x1 = random.choice(string.ascii_uppercase)
x2 = random.choice(string.ascii_lowercase)
x3 = random.choice(string.ascii_lowercase)
x4 = random.choice(string.ascii_lowercase)
x5 = random.choice(string.ascii_lowercase)
name = str(x1 + x2 + x3 +x4 +x5)
print(name)
while True:
for i in range(5):
run_bot()
`
答案 0 :(得分:1)
您可以使用多线程。
有一个名为stop
的全局变量:
stop = False
并将while True
替换为while not stop
。
然后你可以创建一个等待用户按下回车并在新线程中调用它的函数,这样就不会中断你的名字生成:
from threading import Thread
def wait_for_stop():
input()
stop = True
Thread(target=wait_for_stop).start()
在进入while循环之前调用这些行,一切都应该正常工作。