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
相关产品推荐
相关产品推荐

