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

Python keyboard模块多次调用read_key导致需按两次键触发输出的问题

问题原因

你的代码里每个if语句都调用了keyboard.read_key(),这个函数会阻塞程序直到读取到新的按键输入。比如你按一次"up":

  • 第一个read_key()读到"up",执行print("up")
  • 接着第二个read_key()会等待你再次按键,才会继续判断是否是"down"
  • 第三个read_key()同理,又会等待新的按键
    这就导致你每次按一个键,只有第一个匹配的判断会执行,但后续的判断会强制你再按一次键,看起来像是print需要按第二次才触发。
修复方案

把按键读取操作放在循环开头,将结果存到变量里,所有判断都基于这个变量,这样一次按键只读取一次:

import keyboard

while True:
    pressed_key = keyboard.read_key()
    if pressed_key == "up":
        print("up")
    elif pressed_key == "down":
        print("down")
    elif pressed_key == "enter":
        print("enter")

用elif替代多个独立if的好处是,一旦某个条件匹配,就不会再检查后续的条件,能避免不必要的判断逻辑,同时彻底解决重复读取按键的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 05:46:10