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 
  • Beschleunige doppelte Schleife in Python
  • Wie man über zwei Wörterbücher gleichzeitig iteriert und ein Ergebnis mit Werten und Schlüsseln von beiden erhält
  • Wie kann ich die Endlosschleife für den if und elif Teil stoppen?
  • Python if else loop verkettet Objekte
  • Unterschiedliche Ausgabe aus dem gleichen Code mit Exponenten in Python
  • Python: Zusammenführen von Tally-Daten
  • (Python) Stuck auf Skipping-Bereich Werte für die Summe einer Randzahl-Liste
  • Dreieck der Zahlen auf Python
  • Was macht eine Schleife innerhalb einer Liste in Python?
  • Wie mache ich eine Schleife, die jeden Tag eines bestimmten Monats berücksichtigt?
  • Beschleunigung einer numpy Schleife in Python?
  • Python ist die beste Programmiersprache der Welt.