gpt4 book ai didi

python - 如何在 Python 中循环输入?

转载 作者:行者123 更新时间:2023-11-30 23:10:15 25 4
gpt4 key购买 nike

我一直在搜索和搜索如何弄清楚如何使输入或某些内容进入 while 循环。就像这样, input() 命令不会停止我的秒表。我尝试过 tkinter、pygame 和其他一些方法,但它们不起作用。如果有人可以帮助我,我会更喜欢一些小而简单的东西,如果可能的话。具体来说,我想学习做什么,基本上是允许在按下任何键时立即停止(最好不要按回车键)。谢谢,鞍 pig !

这是我到目前为止所拥有的,没有任何东西可以激活停止:

    #Setup (Variables and stuff)
hours = 0
minutes = 0
seconds = 0
import time



#Main Part of Code
print("Welcome to PyWatch, a stopwatch coded in Python!")
print("Press any key to start the stopwatch.")
print("Then, press any key to stop it!")
start = input("")

while hours < 48:
seconds = seconds + 1
time.sleep(1)
print(hours, "hours,", minutes, "minutes,", seconds, "seconds")



#If Statements for getting seconds/minutes/hours
if (seconds == 60):
minutes = minutes + 1
seconds = seconds - 60

if (minutes == 60):
hours =hours + 1
minutes = minutes - 60

最佳答案

线程就是你想要的。

创建第二个线程,在第一个线程处理秒表代码时等待输入。看哪:

 import threading, sys

def halt():
raw_input()

threading.Thread(target=halt).start()


while hours < 48 and threading.active_count() > 1:
seconds = seconds + 1
time.sleep(1)

# copy and past what you had before

请允许我详细说明正在发生的事情:到目前为止,您编写的所有代码都是单线程的。这意味着一次只执行一行代码,只有一个执行线程。因此,您的脚本无法执行多任务,它无法等待输入并同时打印时间。

所以当这条线被评估时

threading.Thread(target=halt).start()

主线程创建第二个执行线程。同时,主线程继续并进入 while 循环。 target参数是线程的入口点,它是起点。它类似于主线程的 if __name__ == "__main__:"。正如主线程在到达 if __name__ == "__main__:" 末尾时终止一样,我们的第二个线程在到达 halt() 末尾时也会终止。

threading.active_count 函数告诉您当前正在执行的线程数量。

关于python - 如何在 Python 中循环输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30771953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com