Wie konvertiert man diese Art von Loop in Python

Zum Beispiel diese Art von für Schleife in JAVA oder C ++:

int N = 20; for (i = 1; i < N; i = 3 * i + 1) 

Ich werde 1, 4, 13 sein

Ich kann nur verwenden, um es zu vervollständigen

 while i < N: i = 3 * i + 1 

Wie kann ich es mit einer anderen Art von Stil in Python schreiben?

Entschuldigung für mein Englisch.

3 Solutions collect form web for “Wie konvertiert man diese Art von Loop in Python”

Ihre while-Loop-Implementierung ist aus Pythons Perspektive nichts falsch. Wenn du eine generalisierte Loop-Struktur wünschst, um die Loop-Struktur von C / C ++ / Java nachzuahmen, kannst du etwas ähnliches machen

 >>> def loop(init, cond, incr): i = init while cond(i): yield i i=incr(i) >>> list(loop(1, lambda e:e < 20, lambda e:3*e + 1)) [1, 4, 13] 

Sobald Sie die Loop-Routine erstellen, können Sie es verwenden, um jedes benutzerdefinierte Loop-Format zu erstellen, wie Sie es wünschen

 for i in loop(1, lambda e:e < 20, lambda e:3*e + 1): print i 

Dies ist ein Job für Generatoren. Mach das:

 def series(i=1): while True: yield i i = 3 * i + 1 from itertools import takewhile takewhile(lambda x: x < 20, series()) 

Hier ist eine andere Möglichkeit, es zu tun. Es ist mehr spezialisiert als Abhijits Antwort.

 def timesThreePlusOne(init,limit): i = init while i < limit: yield i i = (3 * i) + 1 N = 20 for i in timesThreePlusOne(1,N): print i 
  • Python Fizzbuzz Probleme mit Schleife
  • Python iterative Prozess innerhalb der Lambda-Funktion
  • Wie kann ich die "else" -Klausel von Python-Loops verstehen?
  • Python: Wie kann man ein Programm wiederholen, bis ein bestimmter Eingang erhalten wird?
  • Python: Nur einmal in einer Schleife drucken
  • Schleife rückwärts mit Indizes in Python?
  • Programm, um die n-ten Primzahl zu finden
  • Versuche zu verstehen, Python-Schleife mit Unterstrich und Eingabe
  • Python Während Schleife innerhalb von mainloop verursacht Verzögerung
  • Wie man in Python-Liste (Countdown)
  • Schleifenzeichen A / B abwechselnd
  • Python ist die beste Programmiersprache der Welt.