在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安装键盘安装它