Ich habe ein funktionierendes Stück Code, der meinen Zwecken entspricht, aber ich war mir nicht sicher, ob es einen besseren Weg gab, das Ende zu erfüllen, nach dem ich suche. Hier ist mein Code:Python 3 bestimmen, welcher Teil von "oder" Operation war wahr
def eitherOne(image1, image2):
curIm1 = pyautogui.locateOnScreen(image1)
curIm2 = pyautogui.locateOnScreen(image2)
while curIm1 == None or curIm2 == None:
curIm1 = pyautogui.locateOnScreen(image1)
curIm2 = pyautogui.locateOnScreen(image2)
if curIm1 != None:
x, y = pyautogui.center(curIm1)
pyautogui.click(x,y)
if curIm2 != None:
x, y = pyautogui.center(curIm2)
pyautogui.click(x,y)
Was tut dies für eine der beiden Bilder sucht und dann auf welcher auch immer endet wahr zu sein. Gibt es eine Methode oder eine Funktion, die ich verwenden kann, die bestimmen kann, welche der Bedingungen um das "oder" wahr zurückgab, ohne einen nachfolgenden Satz von "Wenn" -Operationen auszuführen? Auch wenn die Antwort "Nein, du brauchst die if-Statements" lautet, würde ich es begrüßen, also gehe ich nicht ohne Grund auf die Jagd.
Vielen Dank für Ihre Zeit!
Sie brauchen irgendeine Art von * Sekundärstruktur *, die hineingeht und schauen, welche der getesteten Bedingungen tatsächlich 'True' waren. Die Sache mit deinem Code, der seltsam ist, ist, dass wenn du zum Beispiel "curIm2 = None" machst, du auch versuchen wirst "curIm1" zu aktualisieren. Willst du das wirklich? –
Ihre aktuelle Logik erfordert, dass * sowohl * curIm1' als auch 'curIm2' nicht' None' sind, bevor die Schleife endet, so dass keine Ihrer 'if' Anweisungen danach notwendig ist. Meinst du für die 'while' ein' und' zu verwenden, so dass es nur Loops gibt, während sie beide 'None' sind? – Blckknght
Vorausgesetzt, genau einer von ihnen ist da, können Sie 'theRightImage = curImg1 oder curImg2'. –