#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. Несомненно. рад, что смог помочь.