lehrkraefte:snr:informatik:glf22:python:for

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:snr:informatik:glf22:python:for [2022/09/16 10:59]
Olaf Schnürer [Aufgabe 4: Slalomtext]
lehrkraefte:snr:informatik:glf22:python:for [2022/10/25 10:30] (current)
Olaf Schnürer [Aufgabe 4: Slalomtext]
Line 4: Line 4:
 <WRAP center round info> <WRAP center round info>
 Schleifen werden verwendet, wenn ein Programmteil mehrfach ausgeführt werden soll. In diesem Abschnitt lernst du for-Schleifen kennen. Später werden while-Schleifen erklärt. Schleifen werden verwendet, wenn ein Programmteil mehrfach ausgeführt werden soll. In diesem Abschnitt lernst du for-Schleifen kennen. Später werden while-Schleifen erklärt.
 +
 +Schleifen sind wichtige Kontrollstrukturen; der Fachbegriff in diesem Kontext lautet //Iteration//: Man führt etwas iterativ (= wiederholt) durch.
 </WRAP> </WRAP>
  
Line 90: Line 92:
 </code> </code>
  
-<hidden Hinweis zur Bonusaufgabe>+<hidden Hinweis zum Bonus-Teil>
 Definiere am Anfang eine String-Variable ''ausgabestring = ""'', die du während der Schleife (und eventuell am Ende) geeignet veränderst und am Ende ausgibst. Definiere am Anfang eine String-Variable ''ausgabestring = ""'', die du während der Schleife (und eventuell am Ende) geeignet veränderst und am Ende ausgibst.
 Innerhalb der for-Schleife kannst du ein if-statement verwenden, damit nicht zu viele Pluszeichen am Ende erscheinen. Innerhalb der for-Schleife kannst du ein if-statement verwenden, damit nicht zu viele Pluszeichen am Ende erscheinen.
Line 176: Line 178:
  
 <WRAP center round todo> <WRAP center round todo>
-Schreibe ein Programm, das vom Benutzer einen kurzen Text erfragt und diesen dann 100 Mal wie folgt in Slalom-Form ausgibt (maximale Einrückung im Beispiel unten sind 5 Leerschläge, etwas mehr ist aber auch erlaubt).+Schreibe ein Programm, das vom Benutzer einen kurzen Text erfragt und diesen dann 100 Mal wie unten illustriert in Slalom-Form ausgibt (maximale Einrückung im Beispiel unten sind 5 Leerschläge, etwas mehr ist aber auch erlaubt).
  
-Damit es nicht zu leicht wird und du viele for-Schleifen verwendest+Damit es nicht zu leicht ist
-<WRAP left round important 90%>+<WRAP left round important 100%>
 Du darfst nur eine for-Schleife verwenden. Du darfst nur eine for-Schleife verwenden.
 +
 +Beliebig viele if-statements sind aber erlaubt!
 </WRAP> </WRAP>
    
-Bemerkung: Wenn du die Ausgabe zeitlich verzögern willst, importiere am Anfang deines Programms mit ''import time'' die dazu nötige Bibliothek und verwende im Programm den Befehl ''time.sleep(0.05)'' (Pause von einer zwanzigstel Sekunde).+Bemerkung: Wenn du die Ausgabe zeitlich verzögern willst, importiere am Anfang deines Programms mit ''import time'' die dazu nötige Bibliothek und verwende im Programm den Befehl ''time.sleep(0.05)'' für eine Pause von einer zwanzigstel Sekunde.
  
 <code text> <code text>
Line 201: Line 205:
   Schleifen sind cool!   Schleifen sind cool!
    Schleifen sind cool!    Schleifen sind cool!
-    Schleifen sind cool! +...
-     Schleifen sind cool! +
-    Schleifen sind cool!+
 </code> </code>
  
 <hidden Hinweis:> <hidden Hinweis:>
-Verwende zwei Variablen: Eine speichert die aktuelle Einrückung und die andere speichert die Veränderung der Einrückung von Zeile zu Zeile: Sie ist manchmal ''1'' und manchmal ''-1''.+Verwende zwei Variablen: Eine speichert die aktuelle Einrückung und die andere speichert die Veränderung der Einrückung von Zeile zu Zeile: Sie nimmt nur die Werte ''1'' und ''-1'' und wird verändert, wenn die aktuelle Einrückung minimal (also Null) oder maximal ist.
 </hidden> </hidden>
  
 <hidden Lösungsvorschlag> <hidden Lösungsvorschlag>
-Zum Ausschalten der zeitlichen Verzögerung die beiden Zeilen mit "time" auskommentieren. 
 <code python> <code python>
 import time import time
- 
 text = input("Gib einen kurzen Satz oder Text ein: ") text = input("Gib einen kurzen Satz oder Text ein: ")
- 
 anfangsabstand = 0 anfangsabstand = 0
 d = 1 d = 1
- 
 for i in range(100): for i in range(100):
     print(anfangsabstand * " " + text)     print(anfangsabstand * " " + text)
Line 229: Line 227:
     time.sleep(0.05)     time.sleep(0.05)
 </code> </code>
 +Zum Ausschalten der zeitlichen Verzögerung: Kommentiere die beiden Zeilen mit "time" aus.
 </hidden> </hidden>
 </WRAP> </WRAP>
Line 238: Line 237:
 Schreibe ein Programm, das die Anzahl der Neuansteckungen mit Corona simuliert.  Schreibe ein Programm, das die Anzahl der Neuansteckungen mit Corona simuliert. 
  
-Am Anfang des Programms sollen aktuelle Anzahl und Zuwachsrate (in Prozen) und Simulationszeit (wie viele Wochen?) als Variablen definiert werden. +Am Anfang des Programms sollen aktuelle Anzahl und wöchentliche Zuwachsrate (in Prozent) und Simulationszeit (wie viele Wochen?) als Variablen definiert werden. 
  
 Hinweis: Um eine Kommazahl (alias float) zu einer ganzen Zahl (alias int) zu runden, verwende den Befeh ''round''. Zum Testen gib etwa ''round(3.49)'' und ''round(3.5)'' in der Python-Shell ein. Hinweis: Um eine Kommazahl (alias float) zu einer ganzen Zahl (alias int) zu runden, verwende den Befeh ''round''. Zum Testen gib etwa ''round(3.49)'' und ''round(3.5)'' in der Python-Shell ein.
Line 321: Line 320:
  
 <WRAP round todo> <WRAP round todo>
-Schreibe ein Programm, das abhängig von einer Variablen ''n'' eine Multiplikationstabelle der Zahlen von $1$ bis $n$ Zahlen ausgibt. Im Fall ''n==10'' soll die Ausgabe wie folgt aussehen (wir lernen in Bälde, wie man eine "tabellarisch schöne" Ausgabe erzeugt).+Schreibe ein Programm, das abhängig von einer Variablen ''n'' eine Multiplikationstabelle der Zahlen von $1$ bis $n$ Zahlen ausgibt. Im Fall ''n == 10'' soll die Ausgabe wie folgt aussehen (wir lernen in Bälde, wie man eine "tabellarisch schöne" Ausgabe erzeugt).
 <code text> <code text>
 1 2 3 4 5 6 7 8 9 10  1 2 3 4 5 6 7 8 9 10 
Line 491: Line 490:
 <WRAP round todo> <WRAP round todo>
 Vereinbarung: In den folgenden Tabellen hat jede Zahl einen "Platz von 5 Zeichen". Vereinbarung: In den folgenden Tabellen hat jede Zahl einen "Platz von 5 Zeichen".
-(1) Ändere dein obiges Programm zur Multiplikationstabelle so, dass die Ausgabe im Fall ''n==10'' wie folgt aussieht:+ 
 +(1) Ändere dein obiges Programm zur Multiplikationstabelle so, dass die Ausgabe im Fall ''n == 10'' wie folgt aussieht:
 <code text> <code text>
     1    2    3    4    5    6    7    8    9   10     1    2    3    4    5    6    7    8    9   10
Line 605: Line 605:
 Beachte die zusätzlichen geschweiften Klammern um den "Platzparameter" ''abstand'' in den f-strings.  Beachte die zusätzlichen geschweiften Klammern um den "Platzparameter" ''abstand'' in den f-strings. 
  
-Meine Interpretation, warum sie nötig sind: Python erwartet als "Platzparameter" eine Zahl; wenn man einen auszuwertenden Ausdruck angeben will, braucht man diese Zusatzklammern. +Mir ist nicht ganz klar, warum diese verlangt werden; man könnte dies aber so begründen: Python erwartet als "Platzparameter" eine Zahl; wenn man einen auszuwertenden Ausdruck angeben will, braucht man diese Zusatzklammern. 
  
 Teste dies in der Python-Shell: Definiere ''abstand = 5''. Dann führt ''f"{20:abstand}"'' zu einem Fehler, während ''f"{20:{abstand}}"'' oder ''f"{20:{abstand+3}}"'' das gewünschte Resultat liefern. Teste dies in der Python-Shell: Definiere ''abstand = 5''. Dann führt ''f"{20:abstand}"'' zu einem Fehler, während ''f"{20:{abstand}}"'' oder ''f"{20:{abstand+3}}"'' das gewünschte Resultat liefern.
  • lehrkraefte/snr/informatik/glf22/python/for.1663318743.txt.gz
  • Last modified: 2022/09/16 10:59
  • by Olaf Schnürer