====== Zählschleifen ====== Im Unterschied zu fuß- und kopfgesteuerten Schleifen steht bei Zählschleifen die Anzahl der Durchläufe vor dem Schleifeneintritt fest. Dabei nimmt eine sogenannte **Zählvariable** während des Schleifendurchlaufs eine endliche Anzahl von fest definierten Werten an. ===== Allgemeine Formulierung ===== ==== Verbale Kurzbeschreibung ==== Für Startwert bis Endwert mit Schrittweite führe aus: * Anweisungen ==== Struktogramm ==== {{ :python:zaehlschleife.png?direct&400 |}} ==== Python-Syntax ==== In Python kann man eine Zählschleife mit Hilfe der ''%%for%%''- und der ''%%range%%''-Anweisung umsetzen. Die ''%%range%%''-Anweisung erzeugt dabei die Werte, die die Zählvariable durchlaufen soll. Sie besitzt den folgenden Aufbau: range(startwert, endwert, schrittweite) ''%%startwert%%'' und ''%%schrittweite%%'' können weggelassen werden. Es wird dann angenommen, dass der Startwert den Wert 0 hat und die Schrittweite den Wert 1 hat. Fehlt nur ein Parameter, so wird angenommen, dass die Schrittweite fehlt. ''%%range%%'' erzeugt nun eine Folge von Werten, die mit dem Startwert beginnt. Der jeweils nächste Wert ergibt sich, indem man zu einem Wert die Schrittweite addiert. Das wird wird immer weiter fortgesetzt, solange ein Wert noch keiner ist als der Endwert. Im Zusammenhang mit einer sogenannten ''%%for%%''-Schleife benutzt man ''%%range%%'' nun wie folgt: for i in range(startwert, endwert, schrittweite): ...Anweisungen... Die Variable i nimmt nun bei jeden Schleifendurchlauf einen von ''%%range%%'' erzeugten Wert an. Man kann nun i mit dem jeweiligen Wert in der Schleife benutzen oder man benutzt das Konstrukt einfach, um die Anzahl der Durchläufe festzulegen. '%%range%%'' erzeugt eigentlich ein Objekt vom Datentyp **Liste**. Diesen Datentyp habe ich in einem extra Wikieintrag bechrieben. * [[python:zaehlschleifen:listen|Listen]] ===== Beispiel ===== Schreibe ein Programm, dass nach Eingabe einer Zahl bis zu dieser zählt. ==== Verbale Kurzbeschreibung ==== Für zahl = anfangswert bis zahl = endwert mit schrittweite wiederhole: * Ausgabe: zahl ==== Struktogramm ==== {{ :python:beispiel_zaehlschleife.png?direct&200 |}} ==== Pythonprogramm ==== n = int(input("Zahl: ")) for i in range(1,n+1): print(i) ===== Vertiefung ===== Im Lehrbuch inf-Schule wird das Thema nochmal vertieft: https://www.inf-schule.de/imperative-programmierung/python/konzepte/wiederholungen/exkurs_zaehlschleifen ===== Aufgaben ===== **Aufgabe 1** Gib jeweils an, welche Werte i annimmt! a) for i in range(1,2,9) b) for i in range(3,11) c) for i in range(5) **Aufgabe 2** Schreibe ein Programm, dass nach Eingabe einer Zahl alle Zahlen bis zu dieser Zahl ausgibt, die bei der Division durch 7 den Rest 4 lassen! \\ [[python:loesungen:zaehlschleifen| >> Lösungen]] [[python:zus|>> Zusammenfassung algorithmische Gundstrukturen]] \\ ~~DISCUSSION | Hier können Fragen zum Inhalt der Seite gestellt werden. ~~