Python 3 eine while in for-schleife umschreiben

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
stefan4laft
User
Beiträge: 1
Registriert: Mittwoch 16. November 2016, 11:02

Einen Schönen Guten Tag,
Ich bin ein Informatik Student der vor kurzem erst mit Programmieren angefangen hat.
Da ich mit Python nicht so wirklich vertraut bin wäre ich um jeden Tipp geben wie man am besten und schnellsten die Sprache lernt dankbar !
Zurzeit beschäftige ich mich mit einer Übungsaufgabe die verlangt eine while-schleife in eine for-schleife umzuschreiben, könnte jemand mir dabei behilflich sein ?

Der Code lautet:

Code: Alles auswählen

x = 1
sting = ""
while x < 10:
    print("x is ", x)
    string += ' ' + str(x)
    x += 1
    print("Now, x is ", x)
    print("All previous numbers: ", string)

Liebe Grüße stefan4laft
Zuletzt geändert von Anonymous am Mittwoch 16. November 2016, 12:11, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
heiner88
User
Beiträge: 65
Registriert: Donnerstag 20. Oktober 2016, 07:29

Code: Alles auswählen

for x in range(1,10)
    ...
BlackJack

@stefan4laft: Der Code ist fehlerhaft weil Zeile 5 zu einer Ausnahme führt weil `string` nicht definiert wurde.

Das Umschreiben ist hier gar nicht so einfach weil der Wert von `x` innerhalb der Schleife *vor* und *nach* dem erhöhen ausgegeben wird, dieser Teil des Programmflusses bei einer ``for``-Schleife *in* dem Schleifenkonstrukt gekapselt ist, man dort also innerhalb der Schleife immer nur an den aktuellen, unveränderten Wert von der Laufvariablen heran kommt. Das heisst in diesem Fall ist die ``while``-Schleife die Schleifenart die man haben möchte und nicht die ``for``-Schleife.
heiner88
User
Beiträge: 65
Registriert: Donnerstag 20. Oktober 2016, 07:29

Der Original-Code war nicht formatiert.
Vielleicht sollte der Code so lauten:

Code: Alles auswählen

x = 1
string = ""
while x < 10:
    print("x is ", x)
    string += ' ' + str(x)
    x += 1
print("Now, x is ", x)
print("All previous numbers: ", string)
BlackJack

@heiner88: Der Originalcode steht im ersten Beitrag. Ich habe da nichts weiter dran verändert ausser die Tags drum herum zu setzen. Die Einrückung war schon so wie sie dort steht.
Antworten