You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python循环检测红色时计数器streak未正常递增问题求解

问题根因
  • 未声明全局变量:color()函数内需要修改全局变量streak,但未使用global关键字声明,Python默认会将函数内的streak识别为局部变量,无法正确读取、修改全局作用域的streak值。
  • 未更新计数器变量:满足红色判定条件时仅计算了临时变量x,没有将计算结果赋值回streak,计数器自然不会发生变化。
修复后可运行代码
from time import sleep
import pyautogui

streak = 0
r = 1
def color():
    # 声明要修改的是全局变量streak
    global streak
    pix = pyautogui.pixel(500, 285)
    red = pix[0]
    print(red)
    if red == 222:
        # 直接更新streak的值
        streak += r
        print(f"当前streak值:{streak}")

while True:
    color()
    sleep(5)
补充说明
  • 如果判定的红色R值不是固定222,建议增加判定区间,比如if 220 <= red <= 225,避免屏幕色彩细微偏移导致判定失效。
  • 如果不需要单独定义步进变量r,可以直接写streak += 1简化代码。

内容的提问来源于stack exchange,提问作者testing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 20:39:01