gpt4 book ai didi

python - While 循环要求输入并在时间到时中断

转载 作者:行者123 更新时间:2023-12-01 00:32:18 25 4
gpt4 key购买 nike

我想创建一个 while 循环,它能够继续接收输入,但一旦计时器倒计时到 0 就会中断。我怎样才能做到这一点?

当真实时: x = raw_input("在此输入内容:")

一旦计时器达到零,无论用户是否输入了任何内容,该循环都会结束。但是,我不知道如何实现这样的计时器

最佳答案

我之前做过类似的事情,我使用 signal当我分配的时间用完时触发错误,基本上是 TimeOutError 。我将它作为函数包装器,我可以方便地将它用作 @timeout(seconds=<number_of_seconds>) 。请参阅下面的代码:

import signal
from functools import wraps


class TimeOutError(Exception):
pass


def timeout(seconds):
def decorator(func):
def _handle_timeout(signum, frame):
raise TimeOutError()

def wrapper(*args, **kwargs):
signal.signal(signal.SIGALRM, _handle_timeout)
signal.alarm(seconds)
try:
result = func(*args, **kwargs)
finally:
signal.alarm(0)
return result

return wraps(func)(wrapper)

return decorator

# Using it as a function wrapper
@timeout(seconds=10)
def run():
while True: x = raw_input("Enter Stuff here:")


# Then calling it as such
try:
run()
except TimeOutError:
print("You have exceeded the allotted time!")

关于python - While 循环要求输入并在时间到时中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58092368/

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