Hallo Forum,
Ich programmiere noch nicht sehr lange und bin nun auf die Frage gestoßen, ob man die range im nachhinein noch ändern kann.
Ich meine z.B.
for x in range(0,3):
print (x)
Ich habe es schon so probiert:
a=3
for x in range(0,a):
print (x)
a+=1
,aber trotzdem wird die Schleife nur 4-mal ausgeführt.
Ich bedanke mich schonmal im Vorraus für eure Hilfe.
Range im nachhinein verändern
@Sukra: Mit `range(0,a)` wird der in diesem Moment durch `a` repräsentierte Wert übergeben. Danach gibt es "kein Zurück". `range()` wird nicht für weitere Durchläufe gucken, was hinter `a` steckt. `range()` weiß nicht mal, dass `a` überhaupt mit im Spiel ist, da bei `range()` nur der Zahlwert (also: die 3) ankommt. Kurz: Dein Vorhaben geht so nicht.
Mögliche Alternativen: Eine `while`-Schleife (`while a < 3:`) oder - falls eine Schrittweite gefordert ist - `range()` die Schrittweite gleich mit übergeben.
Interessant wäre zu wissen, was dein eigentliches Vorhaben ist. Vielleicht gibt es eine elegante Lösung dafür, von du die nicht mal etwas ahnst...
Mögliche Alternativen: Eine `while`-Schleife (`while a < 3:`) oder - falls eine Schrittweite gefordert ist - `range()` die Schrittweite gleich mit übergeben.
Interessant wäre zu wissen, was dein eigentliches Vorhaben ist. Vielleicht gibt es eine elegante Lösung dafür, von du die nicht mal etwas ahnst...
@snafu
Mein Vorhaben war es ein Tic-Tac-Toe Spiel zu basteln. Da es ja maximal nur 9 Durchläufe gibt, da dann das Spielfeld voll ist, wollte ich die Abfrage wo der jeweilige Spieler seinen Stein hinhaben möchte Neun-mal durchlaufen lassen, bis das Spiel spätestens vorbei ist und somit eventuell keiner gewonnen hat. Da aber ja auch Falsche Eingaben als auch doppelte wiederholt werden sollen, möchte ich diesen Schritt wiederholen lassen.
Aber die Idee mit der while-Schleife gefällt mir. Werde das später einmal ausprobieren.
Mein Vorhaben war es ein Tic-Tac-Toe Spiel zu basteln. Da es ja maximal nur 9 Durchläufe gibt, da dann das Spielfeld voll ist, wollte ich die Abfrage wo der jeweilige Spieler seinen Stein hinhaben möchte Neun-mal durchlaufen lassen, bis das Spiel spätestens vorbei ist und somit eventuell keiner gewonnen hat. Da aber ja auch Falsche Eingaben als auch doppelte wiederholt werden sollen, möchte ich diesen Schritt wiederholen lassen.
Aber die Idee mit der while-Schleife gefällt mir. Werde das später einmal ausprobieren.
Das ist eher ein Fall für eine Endlosschleife die bei einer definierten Endebedingung verlassen wird.
Code: Alles auswählen
while True:
do_things()
if finished:
break