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

Python使用mouse库单击鼠标左键时打印多次重复的问题求助

问题根因

你的代码采用死循环不间断轮询鼠标左键状态,单次按下鼠标左键的动作会持续几十到几百毫秒的按住时长,这段时间内循环可以执行数十次,每次检测到左键处于按住状态就会触发计数累加和打印,因此单次点击会输出多条结果。本质是缺少按键边沿检测逻辑,仅判断了按键按住的稳态,没有识别「从松开到按下」的瞬时触发动作。

修复思路
  • 增加状态变量记录上一轮轮询拿到的鼠标左键状态
  • 仅当检测到状态从「未按下」跳转为「按下」的瞬时,才执行计数、打印逻辑
  • 轮询循环增加10ms级别的短休眠,避免无意义的CPU空转占用
修复后代码
import mouse
import time

x = 0
last_left_pressed = False

while True:
    current_left_pressed = mouse.is_pressed("left")
    # 捕获左键从松开到按下的跳变沿,单次点击仅触发一次
    if current_left_pressed and not last_left_pressed:
        x = x + 1
        print(x)
    # 更新上一轮的按键状态
    last_left_pressed = current_left_pressed
    # 短休眠降低CPU占用,不影响按键检测灵敏度
    time.sleep(0.01)
运行验证

修复后单次按下鼠标左键,仅会触发1次计数累加和打印,不会再出现单次点击输出多条结果的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 06:42:29