python добавляет значение в счетчик циклов

#python #variables #counter #pyautogui

Вопрос:

Я пытаюсь заставить его добавлять 1 к полосе каждый раз, когда выполняется цикл, но он сохраняет одно и то же число. пытаюсь сделать счетчик каждый раз, когда он видит красный.

 from time import sleep
import pyautogui

streak = 0
r = 1
def color():
    
    pix = pyautogui.pixel(500, 285)
    red = pix[0]
    print (red)
    
    if red == 222:
        
        x = streak   r
        print (x)

while True:
    color()
    sleep(5)
 

Комментарии:

1. streak = streak 1 это правильный способ добавить 1 к полосе. Ваши наборы кода streak = 0 r = 1 и эти значения никогда не меняются, поэтому, конечно, результат streak r всегда один и тот же.

2. streak начинается с 0 и никогда не изменяется. r начинается с 1 и никогда не меняется. streak r следовательно, никогда не может привести к какому-либо значению, отличному от 1. Вам действительно нужно изменить одну из этих переменных, и поскольку она обязательно существует вне функции, в которой она изменяется, для этого вам понадобится global объявление.

Ответ №1:

самый простой способ-использовать :

 number  = othernumber
 

пример :

 number  = 1
 

Ответ №2:

ваша проблема проста, вам нужно добавить 1 к полосе внутри if, вместо этого вы создаете новый var и добавляете в него значение, которое вы никогда не изменяете значение инициализации полосы

эта строка x = streak r должна быть такой streak = streak r

Ответ №3:

К сожалению, ваш вопрос был неясен, но этот код позволяет узнать, сколько раз вы видели красный цвет. Надеюсь, это поможет.

 from time import sleep
import pyautogui

r = 0


def color():
    global r
    pix = pyautogui.pixel(950, 540)
    color_var = pix[0]
    print(color_var)

    if color_var > 222:
        r  = 1
        if r > 1:
            print(f"I have seen red {r} times")
        else:
            print(f"I have seen red {r} time")


while True:
    color()
    sleep(1)
 

Комментарии:

1. Несомненно. рад, что смог помочь.