在Python3中等待字符输入时如何输出?
我想做一个计时器,它需要按空格键来停止。我还想打印出自循环开始以来经过了多少时间。我试过这个:在Python3中等待字符输入时如何输出?,python,Python,我想做一个计时器,它需要按空格键来停止。我还想打印出自循环开始以来经过了多少时间。我试过这个: 导入msvcrt 导入时间 打印(“新闻空间”) 开始时间=time.time() 尽管如此: #打印经过了多少时间 打印(开始时间-time.time(),结束='\r') #如果按下空格btn,则中断循环 如果msvcrt.getch()==b“”: 打破 但问题是,只有当我按下一个键时,时间才会被打印出来,我希望它能连续打印出来。我从中尝试了这个解决方案,但因为它是python 2,所以我一直
导入msvcrt
导入时间
打印(“新闻空间”)
开始时间=time.time()
尽管如此:
#打印经过了多少时间
打印(开始时间-time.time(),结束='\r')
#如果按下空格btn,则中断循环
如果msvcrt.getch()==b“”:
打破
但问题是,只有当我按下一个键时,时间才会被打印出来,我希望它能连续打印出来。我从中尝试了这个解决方案,但因为它是python 2,所以我一直遇到这个错误
Traceback (most recent call last):
File "f:/Projects/Python/test.py", line 9, in <module>
if sys.stdin in select.select([sys.stdin], [], [], 0)[0]:
OSError: [WinError 10093] Either the application has not called WSAStartup, or WSAStartup failed
回溯(最近一次呼叫最后一次):
文件“f:/Projects/Python/test.py”,第9行,在
如果select.select中的sys.stdin([sys.stdin],[],0)[0]:
OSError:[WinError 10093]应用程序未调用WSAStartup,或者WSAStartup失败
我需要做什么?这可能会有帮助:
import sys
import keyboard
import time
print("Press space")
start_time = time.time()
while True:
try:
print(start_time - time.time(), end='\r')
if keyboard.is_pressed('SPACE'):
print("\nyou pressed SPACE, exiting...")
sys.exit()
except:
break
我知道这个问题已经得到了回答,但在pygame中还有另一种方法:
import pygame
import time
pygame.init()
wn = pygame.display.set_mode((500, 500))
pygame.display.set_caption('Timer')
start_time = time.time()
def main():
running = True
fps = 60
clock = pygame.time.Clock()
while running:
clock.tick(fps)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_SPACE]:
print(time.time() - start_time)
running = False
pygame.display.update()
main()
此外,要安装pygame,请打开终端并键入:
python -m pip install pygame==1.9.6
ModuleNotFoundError:没有名为“keyboard”的模块使用python-m pip安装键盘安装它