我试图让Python代码在条件不匹配时单击按钮

2024-06-16 10:07:36 发布

您现在位置:Python中文网/ 问答频道 /正文

目前,只要满足条件,它就会发出一声咔哒声

例如:

代码在我的屏幕上查找特定的单词。它与我已经定义的一组数据相匹配

它应该如何工作:

  • 如果屏幕上没有任何内容,则会发生单击
  • 如果屏幕上有“cookie”一词,它会发出嘟嘟声并退出

发生了什么:

  • 如果屏幕上没有任何内容,则会发生单击
  • 屏幕上有“cookie”一词。它发出咔哒声。它发出哔哔声 出口

样本输出:

  • 没有共同点

  • 没有共同点

  • 没有共同点

  • {'cookie'}

第三个“无公共元素”,不应该出现。在第二次单击后出现cookie一词。if-else条件的访问方式有问题。想法

代码如下:

import pytesseract
import numpy as nm
import winsound
import pyautogui
import time
from PIL import ImageGrab

def imToString():
    pytesseract.pytesseract.tesseract_cmd = r'C:\\Program Files\\Tesseract-OCR\\tesseract.exe'
    while (True):

        source = [
"chocolate", "muffin", "cookie"
                 ]

        cap = ImageGrab.grab(bbox=(748, 626, 916, 646))

        tesstr = pytesseract.image_to_string(
            cv2.cvtColor(nm.array(cap), cv2.COLOR_BGR2GRAY),
            lang='eng')

        split_words =tesstr.split()

        normalized_input = [word.rstrip('.,!?').lower() for word in split_words]
        source_normalized = [word.lower() for word in source]

        set_a = set(source_normalized)
        set_b = set(normalized_input)
        match = set_a & set_b

        if match:
            print(match)
            frequency = 2500  # Set Frequency To 2500 Hertz
            duration = 1000  # Set Duration To 1000 ms == 1 second
            winsound.Beep(frequency, duration)
            return False
        else:
            print("No common elements")
            time.sleep(1)
            pyautogui.moveTo(826,309)
            pyautogui.click()


imToString()

有没有关于我犯了什么错误的信息


Tags: 代码importsource内容if屏幕cookiematch
2条回答

我想问题在这里:

if match:
    print(match)
    frequency = 2500  # Set Frequency To 2500 Hertz
    duration = 1000  # Set Duration To 1000 ms == 1 second
    winsound.Beep(frequency, duration)
    # the while true stops here, you don't have the time to see the answer
    return False

或许可以加上:

input("Press Enter to continue...")

回来之前

我清理了代码,并使用any()函数检查if-else块。代码正在按预期工作

相关问题 更多 >