【问题标题】:python adding to a value in loop counterpython在循环计数器中添加一个值
【发布时间】:2021-10-01 23:18:55
【问题描述】:

我试图让它在每次循环运行时添加 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)

【问题讨论】:

  • streak = streak + 1 是在条纹上加 1 的正确方法。您的代码集 streak = 0r = 1 并且这些值永远不会改变,所以当然streak + r 的结果总是相同的。
  • streak 从 0 开始,并且永远不会改变。 r 从 1 开始,并且永远不会改变。因此,streak + r 永远不会产生除 1 之外的任何值。您需要实际更改其中一个变量,并且由于它必须存在于正在更改的函数之外,因此您需要一个 global 声明才能这样做。

标签: python variables counter pyautogui


【解决方案1】:

最简单的方法是使用:

number += othernumber

示例:

number += 1

【讨论】:

    【解决方案2】:

    您的问题很简单,您需要在 if 中添加 1 到 streak,而不是创建一个新的 var 并在其中添加值,您永远不会更改 streak init 值

    这行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)
      

      【讨论】:

      • 当然。很高兴我能帮上忙。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多