如何使用击键使循环停止

时间:2018-04-02 10:47:04

标签: python loops timer key generator

你好我有一个循环它基本上是一个名称生成器,我想在某个时候停止它。我有想法用一把钥匙停止它。因为我不能阻止它由于它的高生成率我不能输入停止或任何它太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()           

`

1 个答案:

答案 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循环之前调用这些行,一切都应该正常工作。