lehrkraefte:blc:informatik:ffprg1-2020:loops

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
Last revision Both sides next revision
lehrkraefte:blc:informatik:ffprg1-2020:loops [2022/02/08 07:51]
Ivo Blöchliger [while-loops]
lehrkraefte:blc:informatik:ffprg1-2020:loops [2022/03/31 12:41]
Ivo Blöchliger [Zeilenumbrüche]
Line 39: Line 39:
 p=1.01 p=1.01
 while (k<200):   # Wiederhole solange wie k<200 while (k<200):   # Wiederhole solange wie k<200
-    k*=p +    k*=p   # Kurzform für k = k*
-    n+=1+    n+=1   # Kurzform für n = n+1
 print(n) print(n)
 </code> </code>
Line 53: Line 53:
 while True: while True:
    print("immer und immer wieder")    print("immer und immer wieder")
-   time.sleep(0.5)+   time.sleep(0.5)   # Ein bisschen Pause, damit die Ausgabe nicht komplett überläuft.
 </code> </code>
  
 ===== break, continue ===== ===== break, continue =====
-Manchmal ist es wünschenswert, eine Schleife abzubrechen (**break**) oder direkt zur nächsten Wiederholung (**continue**) zu springen.+Manchmal ist es wünschenswert, eine ''while''- oder ''for'-Schleife irgendwo innerhalb abzubrechen (**break**) oder direkt zur nächsten Wiederholung (**continue**) zu springen, ohne den Rest des Blocks auszuführen
  
 <code python> <code python>
Line 65: Line 65:
     if a>5:     if a>5:
         break  # Sofort die while-Schlaufe beenden         break  # Sofort die while-Schlaufe beenden
 +    print("Sonst noch was mit %d tun" % a)
 </code> </code>
  
Line 70: Line 71:
 a = 1 a = 1
 while a<10: while a<10:
-   if a%2==0:+   if a%2==0:   # Wenn der Rest der Divison von a durch 2 Null ist, d.h. wenn a gerade ist.
        a+=3        a+=3
        continue  # Nächste Wiederholung        continue  # Nächste Wiederholung
Line 84: Line 85:
         print("%d * %d = %d" %(i,j,i*j))         print("%d * %d = %d" %(i,j,i*j))
 </code>         </code>        
 +
 +
 +===== Zeilenumbrüche =====
 +Sie können eine print-Ausgabe ohne Zeilenumbruch erreichen, indem Sie nach der schliessenden Klammer ein Komma anfügen:
 +<code python>
 +print("Es geht "),
 +print("noch weiter")
 +</code>
 +Leider wird damit auch ein Leerschlag eingefügt. 
 +
 +Noch mehr Kontrolle hat man, wen man die ganze Zeile erst in einem String aufbaut und diesen am Schluss ausgibt:
 +<code python>
 +zeile = "Die Zahlen 1"
 +for i in range(2,5):
 +   zeile += ", %d" % (i*i)
 +print(zeile)                 # Ausgabe: Die Zahlen 1, 4, 9, 16
 +</code>
  
 ====== Aufgaben ====== ====== Aufgaben ======
Line 97: Line 115:
 </code> </code>
  
-Sie können eine print-Ausgabe ohne Zeilenumbruch erreichen, indem Sie nach der schliessenden Klammer ein Komma anfügen: 
-<code python> 
-print("Es geht "), 
-print("noch weiter") 
-</code> 
-Leider wird damit auch ein Leerschlag eingefügt. Eine flexiblere Methode ist die Verwendung von sys.stdout.write(): 
-<code python> 
-import sys 
- 
-sys.stdout.write("Es geht") 
-sys.stdout.write("noch weiter\n" # Am Schluss ein Zeilenumbruch mit \n 
-</code> 
  
   * Schreiben Sie ein Programm, das sämtliche Teiler der eingegebenen Zahl ausgibt.   * Schreiben Sie ein Programm, das sämtliche Teiler der eingegebenen Zahl ausgibt.
  • lehrkraefte/blc/informatik/ffprg1-2020/loops.txt
  • Last modified: 2022/04/07 13:16
  • by Ivo Blöchliger