You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Python中keyboard.is_pressed()在while True循环的输出刷屏问题

解决键盘按键重复触发输出的问题

问题场景

想要实现按下数字键0时输出一次0,但使用keyboard.is_pressed()的循环代码会在按住按键期间持续刷屏输出:

原代码

import keyboard

while True:
    if keyboard.is_pressed('0'):
        print('0')

原输出

0
0
0
0
0
0
0...

解决方案

通过跟踪按键的状态变化,仅在按键刚被按下的瞬间触发输出,无需time.sleep()或quit()。核心是用一个变量记录上一次的按键状态,只在状态从"未按下"变为"按下"时执行输出:

修改后的代码

import keyboard

# 初始化按键状态为未按下
prev_key_state = False

while True:
    current_key_state = keyboard.is_pressed('0')
    # 仅当当前按下且之前未按下时输出
    if current_key_state and not prev_key_state:
        print('0')
    # 更新状态记录
    prev_key_state = current_key_state

原理说明

循环中每次检测当前按键状态,通过对比prev_key_state和current_key_state,确保只有在按键按下的第一个循环周期满足输出条件。按住按键时,current_key_state会保持True,prev_key_state也会同步更新为True,因此不会重复触发输出。

内容的提问来源于stack exchange,提问作者Jonas Gurevicius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 19:22:39