Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich Do-While-Schleifen simulieren und Iteratoren in Python verarbeiten?

Wie kann ich Do-While-Schleifen simulieren und Iteratoren in Python verarbeiten?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-19 19:03:03979Durchsuche

How Can I Simulate Do-While Loops and Handle Iterators in Python?

Emulieren von Do-While-Schleifen in Python

In Python wird eine Do-While-Schleife nicht nativ unterstützt. Es gibt jedoch mehrere Methoden, um eine ähnliche Funktionalität zu erreichen.

Ein Ansatz besteht darin, eine while-True-Schleife zu verwenden, wie unten gezeigt:

while True:
  # Execute loop body
  if break_condition:
    break

Alternativ können Sie eine gefolgte while-Schleife verwenden durch eine if-Anweisung, um den Schleifenkörper auszuführen, bevor die Unterbrechungsbedingung überprüft wird:

# Execute loop body
if not break_condition:
  continue

Behandlung der StopIteration-Ausnahme

Um die StopIteration-Ausnahme, die beim Durchlaufen ausgelöst wird, korrekt zu behandeln B. eine Liste oder iterierbar, verwenden Sie einen Try-Except-Block:

iterator = list_of_ints.__iter__()
element = None

while True:
  try:
    element = iterator.next()
  except StopIteration:
    break

  print(element)

Emulieren einer Zustandsmaschine

Im bereitgestellten Beispiel wurde eine Zustandsmaschine mithilfe eines do implementiert -while-Schleife. Um dies in Python zu emulieren, können Sie Schleifen mit bedingten Break-Anweisungen verwenden:

while True:
  if state == STATE_CODE:
    if "//" in s:
      tokens.add(TOKEN_COMMENT, s.split( "//" )[1])
      state = STATE_COMMENT
    else:
      tokens.add(TOKEN_CODE, s)

  if state == STATE_COMMENT:
    if "//" in s:
      tokens.append(TOKEN_COMMENT, s.split( "//" )[1])
      state = STATE_CODE
    else:
      # Re-evaluate same line
      continue

  try:
    s = i.next()
  except StopIteration:
    break

Das obige ist der detaillierte Inhalt vonWie kann ich Do-While-Schleifen simulieren und Iteratoren in Python verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn