Seite 1 von 1
Range im nachhinein verändern
Verfasst: Mittwoch 10. Juli 2013, 15:18
von Sukra
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.
Re: Range im nachhinein verändern
Verfasst: Mittwoch 10. Juli 2013, 15:27
von snafu
@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...

Re: Range im nachhinein verändern
Verfasst: Mittwoch 10. Juli 2013, 15:47
von Sukra
@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.
Re: Range im nachhinein verändern
Verfasst: Mittwoch 10. Juli 2013, 16:00
von /me
Das ist eher ein Fall für eine Endlosschleife die bei einer definierten Endebedingung verlassen wird.
Re: Range im nachhinein verändern
Verfasst: Mittwoch 10. Juli 2013, 16:33
von Sukra
Ok, Vielen Dank für deine Hilfe.
Werde mich wohl morgen nochmal ran setzen und das so umschreiben.