Funktionen innerhalb einer Schleife [geschlossen]Python

Python-Programme
Guest
 Funktionen innerhalb einer Schleife [geschlossen]

Post by Guest »

Es gibt etwas Grundlegendes mit der Art und Weise, wie sich eine Versuchserklärung innerhalb einer Weile verhält, die kontraintuitiv erscheint. Im folgenden Code schlägt die Atertage -Seite. Find -Anweisung in der ersten Iteration fehl. Der Zeiger 'Index' erhöht sich und die Anweisung wird erneut ausgeführt. Diesmal ist die Seite von Index = 1 erfolgreich. Es scheint jedoch, dass nur die dritte Zeile unter dem Versuch (Play_date = ...) ausgeführt wird. Die Zeit1 wird nicht aktualisiert und die Druckanweisung (Print ("Versuch #...") nicht ausgeführt. Nachdem ich mir das eine Weile angesehen habe, kann ich immer noch nicht verstehen, warum einige der Zeilen nicht ausgeführt werden. nicht so abschneiden. Ich kann nichts in der Dokumentation oder in meinem Code finden, das dies erklärt. < /P>

Code: Select all

while index < 4:
try:
time1 = datetime.datetime.now()
print("index = ",index, "time =", time1)
play_date = await page.find(validation_xpath[index])
time2 = datetime.datetime.now()
print("Attempt #", index + 1, " time found")
except asyncio.TimeoutError:
#   Did not get a hit, test for end of loop and send message
print("Attempt #" + str(index + 1) + " time not found in " + str(time1 - datetime.datetime.now())[-8:-3] + " seconds")
if index == 3:
print("MSG E110 - Failed on attempt #", index + 1, " to verify course open - shutting down")
index += 1
#   Time found - valid date/time/course combination
print("Time found on attempt # " + str(index + 1) + " in " + str(time1 - datetime.datetime.now())[-8:-3] + " seconds")
print("MSG E120 - Valid Date/Time/Course Selected on try # ", index + 1," - CONTINUING")
< /code>
Hier ist die Ausgabe, die die scheinbare Ausführungsequenz zeigt: < /p>
index =  0 time = 2025-02-12 11:06:32.591297
Attempt #1 time not found in 9.658 seconds
Time found on attempt # 2 in 9.658 seconds
MSG E120 - Valid Date/Time/Course Selected on try #  2  - CONTINUING")
< /code>
Überarbeiteter Code folgt (siehe meinen Kommentar unten für den Kontext): < /p>
index = 0
time0 = datetime.datetime.now()
while index < 4:
try:
time1 = datetime.datetime.now()
play_date = await page.find(validation_xpath[index], False, True, 3)
time2 = datetime.datetime.now()
# print("Attempt #" + str(index + 1) + " Valid selection FOUND in " +
#       str(datetime.datetime.now() - time1)[-9:-3] + " seconds")
if index == 1 or index == 3:
event_scheduled = True
index = 4
except asyncio.TimeoutError:
#   Did not get a hit, test for end of loop and send message
# print("Attempt #" + str(index + 1) + " Valid selection NOT found in " +
#       str(datetime.datetime.now() - time1)[-9:-3] + " seconds")
if index == 3:
print("MSG E110 - Failed on attempt #", index + 1, " to verify course open - shutting down")
return
index += 1

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post