Как добавить условие выхода из цикла while

Рейтинг: 3Ответов: 2Опубликовано: 13.02.2023
import pyautogui
from time import sleep

while not pyautogui.locateCenterOnScreen("done_canceling.png", confidence=0.95):
      pyautogui.press('2')
      sleep(1)
print("Все лоты отменены")

Пишу кликера для игры. Данный скрипт считывает изображение с экрана и пока на экране не появилось изображение done_canceling.png скрипт нажимает кнопку '2' раз в секунду. Иногда это изображение не появляется на экране и цикл выполняется бесконечно. Как написать условие выхода из цикла например спустя 100 нажатий на кнопку '2' или спустя 2 минуты? Возможно ли это?

Ответы

▲ 4Принят

думаю это решение вам должно помочь

import pyautogui
from time import sleep

counter = 0
while counter < 100 and not pyautogui.locateCenterOnScreen("done_canceling.png", confidence=0.95):
      pyautogui.press('2')
      sleep(1)
      counter+=1    
print("Все лоты отменены")
▲ 2

Ещё вариант - считать через цикл for, чтобы не писать самому инициализацию, проверку и инкремент счётчика:

import pyautogui
from time import sleep

for counter in range(100):
    if pyautogui.locateCenterOnScreen("done_canceling.png", confidence=0.95):
        break 
    pyautogui.press('2')
    sleep(1)
print("Все лоты отменены")