使用While Loop时代码异常:x==190触发后执行逻辑失效咨询
问题分析与修改方案
你的代码问题出在嵌套循环的逻辑冲突:外层while x < 190和内层for number in range(190)重复控制循环次数,导致当x达到190时,外层循环条件不满足,同时内层循环仍在执行,x被直接重置为1,跳过了Shift按键的执行逻辑。
修改方案1:简化为无限循环+固定次数点击(推荐)
直接用while True实现无限循环,先完成190次点击,再执行Shift操作,逻辑更清晰:
import pyautogui import pydirectinput import time while True: # 执行190次点击操作 for _ in range(190): time.sleep(0.1) pyautogui.click(480, 595) # 点击完成后触发Shift按键逻辑 pydirectinput.keyDown('shiftleft') time.sleep(2.5) pydirectinput.keyUp('shiftleft')
修改方案2:保留计数器逻辑
如果想继续使用x作为计数器,需要去掉冗余的外层while循环,改用while True实现无限循环,确保计数器触发Shift逻辑后能正确重置:
import pyautogui import pydirectinput import time x = 1 while True: time.sleep(0.1) pyautogui.click(480, 595) x += 1 if x == 190: # 执行Shift按键操作 pydirectinput.keyDown('shiftleft') time.sleep(2.5) pydirectinput.keyUp('shiftleft') x = 1 # 重置计数器,准备下一轮循环
两种方案都能实现「无限循环执行190次点击→触发Shift按键→重复」的完整逻辑。
内容的提问来源于stack exchange,提问作者Thunder Boi
相关产品推荐
相关产品推荐

