======Zählschleifen====== Das folgende Turtleprogramm zeichnet ein Sechseck: from turtle import * fd(100) left(60) fd(100) left(60) fd(100) left(60) fd(100) left(60) fd(100) left(60) fd(100) left(60) Wie man sieht, wiederholen sich die Befehle ''%%fd(100)%%'' und ''%%left(60)%%'' sechsmal. Sich wiederholende Befehlsfolgen kann man beim Programmieren mit Hilfe von Schleifen ausdrücken. Da wir bei diesem wissen wir genau, dass sich die Befehlsfolge sechsmal wiederholen muss. Deshalb können eine sogenannte Zählschleife verwenden: from turtle import * for i in [1, 2, 3, 4, 5, 6]: fd(100) left(60) In Python setzt man eine Zählschleife mit der ''%%for%%''-Anweisung umgesetzt. Nach ''%%for%%'' steht ein Variablenname und danach das Schlüsselwort ''%%in%%''. Nach ''%%in%%'' steht eine Liste (ein Datentyp, den wir später behandeln). Abgeschlossen wird die Zeile durch einen Doppelpunkt. Nach dem Doppelpunkt wird der Quelltext eingerückt. Alle Befehle die eingerückt werden, gehören zur Schleife. Die Variable nach ''%%for%%'' nimmt bei jedem Schleifendurchlauf einen Wert aus der Liste an und könnte in der Schleife verwendet werden. Die Liste kann in der ''%%for%%''-Schleife auch durch die ''%%range%%''-Anweisung ersetzt werden: from turtle import * for i in range(6): fd(100) left(60) Die \lstinline+range+-Anweisung erwartet 3 Parametern vom Typ ''%%int%%'': 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. Im Zusammenhang mit ''%%for%%'' wird das Konstrukt nun wie folgt benutzt: for i in range(startwert, endwert, schrittweite): ...anweisungen... **Beispiele:** for i in range(1,5,2) #2 Durchläufe i=1,3 for i in range(1,6) #5 Durchläufe i=1,2,3,4,5 for i in range(3) #3 Durchläufe i=0,1,2 Weitere Informationen zu Zählschleifen findet man hier: * [[python:zaehlschleifen|Zählschleifen]] **Aufgabe 14** Teste die Beispielprogrammme! **Aufgabe 15** Das folgende Programm zählt bis 10. from turtle import * for i in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]: print(i) Formuliere es um, dass es mit der ''%%range%%''-Anweisung funktioniert! **Aufgabe 16** Zeichne die folgenden Figuren mit einer Zählschleife mit Liste! a) {{:python:turtle:turtle010.png?400|}} b) {{:python:turtle:turtle011.png?400|}} c) {{:python:turtle:turtle012.png?400|}} d) {{:python:turtle:turtle013.png?400|}} **Aufgabe 17** Zeichne die folgende Treppe mit 100 Stufen mit Hilfe der ''%%range%%''-Anweisung! {{:python:turtle:turtle014.png?400|}}