@parf: Bitte nicht das was nezzcarth geschrieben hat verwenden. Das tut weh. Das ist nicht zum verwenden gedacht. Das hat nezzcarth selbst geschrieben, dass das keine ernstgemeinte Lösung ist. Wenn Du wirklich nur diese beiden `ranges()` addieren möchtest, dann ist die Lösung ``sum(chain(range(1, 51), range(100, 201)))``. Alles andere ist umständlicher (zumindest zu schreiben), und warum eine umständlichere Lösung verwenden? Wobei die aller einfachste Lösung natürlich ``print(16425)`` ist.
Wenn es unbedingt eine explizite Schleife sein soll, dann nimm die `chain()`-Funktion. Noch mal: die ist genau dafür gemacht.
Falls ``print(16425)`` keine Lösung ist, dann stellt sich wieder die Frage was Du denn *eingentlich* *tatsächlich* machen möchtest? Denn es macht ja nicht so viel Sinn ``sum(chain(range(1, 51), range(100, 201)))`` zu schreiben wenn das alles feste Werte sind. Falls die Zahlen eigentlich Variablen sind, sagen wir mal `a` bis `d`, dann kann man das auch als geschlossene Formel schreiben, ganz ohne Schleifen: ``-(a**2 - a - b**2 - b + c**2 - c - d**2 + d)/2``:
Code: Alles auswählen
In [74]: a = 1; b = 50; c = 100; d = 201
In [75]: -(a**2 - a - b**2 - b + c**2 - c - d**2 + d)/2
Out[75]: 16425