如何获得30秒的多个用户输入并将其保存到列表中?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获得30秒的多个用户输入并将其保存到列表中?相关的知识,希望对你有一定的参考价值。
在我的应用程序中,用户可以输入30秒钟,并且用户可以输入任意数量的单词。
我想在30秒内将所有单词保存到用户输入的列表中。
我也在网站和stackoverflow上冲浪,但发现大多数解决方案仅在linux上有效,而其他解决方案对我而言并不那么吸引人,因此我需要提出问题。
我也尝试过下面的代码,但仍然不能满足我的要求。
import sys, time, msvcrt
def readInput( caption, default, timeout = 2000):
start_time = time.time()
sys.stdout.write('%s(%s):'%(caption, default));
input = ''
while True:
if msvcrt.kbhit():
chr = msvcrt.getche()
if ord(chr) == 13: # enter_key
break
elif ord(chr) >= 32: #space_char
input += chr
if len(input) == 0 and (time.time() - start_time) > timeout:
break
print '' # needed to move to next line
if len(input) > 0:
return input
else:
return default
# and some examples of usage
ans = readInput('Please type a name', 'john')
print 'The name is %s' % ans
答案
from threading import Thread
import time
user_input_list = []
timeOut = False
start_time = time.time()
def readInput():
global user_input_list
while timeOut == False:
user_input_list.append(input("Please enter your input: "))
return print("User input list is ", user_input_list)
def countTime(seconds):
global start_time
global timeOut
while True:
elapsed_time = time.time() - start_time
if elapsed_time == seconds:
timeOut = True
return print("Elapsed time is ", elapsed_time)
if __name__ == '__main__':
Thread(target=readInput).start()
Thread(target=countTime(20)).start()
以上是关于如何获得30秒的多个用户输入并将其保存到列表中?的主要内容,如果未能解决你的问题,请参考以下文章