Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
gf_informatik:programmieren_ii [2025-10-06 12:22] – [Variablen, Verzweigungen, Schleifen in Python] hofgf_informatik:programmieren_ii [2025-11-20 14:22] (aktuell) hof
Zeile 1: Zeile 1:
 ====== Programmieren II: Python Grundlagen ====== ====== Programmieren II: Python Grundlagen ======
 +<html><script type="module" src="https://bottom.ch/ksr/ed/bottom-editor.js"></script></html> 
 + 
 ===== Von Struktogrammen zu Python ===== ===== Von Struktogrammen zu Python =====
  
Zeile 144: Zeile 145:
 == Teil I== == Teil I==
  
-<code python>+<html><bottom-editor>
 x = int(input('Gib eine Zahl ein')) x = int(input('Gib eine Zahl ein'))
 y = int(input('Gib eine Zahl ein')) y = int(input('Gib eine Zahl ein'))
 print(x + y) print(x + y)
-</code>+</bottom-editor></html>
  
 == Teil II== == Teil II==
  
 Einfach: Einfach:
-<code python>+<html><bottom-editor>
 x = int(input('Gib eine Zahl ein')) x = int(input('Gib eine Zahl ein'))
 y = int(input('Gib eine Zahl ein')) y = int(input('Gib eine Zahl ein'))
Zeile 161: Zeile 162:
 else: else:
     print(y)     print(y)
-</code>+</bottom-editor></html>
  
  
 === Aufgabe A2 === === Aufgabe A2 ===
-<code python>+<html><bottom-editor>
 n = int(input("Gib Startzahl von Countdown ein!")) n = int(input("Gib Startzahl von Countdown ein!"))
  
Zeile 173: Zeile 174:
  
 print("Los!") print("Los!")
-</code>+</bottom-editor></html>
  
 === Aufgabe A3 === === Aufgabe A3 ===
 == Teil I == == Teil I ==
-<code python>+<html><bottom-editor>
 a = int(input("Gib Zahl ein")) a = int(input("Gib Zahl ein"))
 b = int(input("Gib Zahl ein")) b = int(input("Gib Zahl ein"))
Zeile 186: Zeile 187:
 print(c) print(c)
 print(a) print(a)
-</code>+</bottom-editor></html>
  
 == Teil II == == Teil II ==
-<code python>+<html><bottom-editor>
 n = int(input("Gib Zahl ein")) n = int(input("Gib Zahl ein"))
 summe = 0 summe = 0
Zeile 197: Zeile 198:
     summe = summe + zahl     summe = summe + zahl
 print(summe) print(summe)
-</code>+</bottom-editor></html>
  
 === Aufgabe A4 === === Aufgabe A4 ===
-TBD+<html><bottom-editor> 
 +zahl = int(input("Eine Zahl eingeben: ")) 
 +kandidat = 2 
 +while kandidat < zahl: 
 +    a = zahl 
 +    b = kandidat 
 +    while b <= a: 
 +        a = a - b 
 +    if a == 0: 
 +        print("Zahl ist keine Primzahl"
 +        quit() 
 +    kandidat = kandidat + 1 
 +print("Zahl ist eine Primzahl"
 +</bottom-editor></html> 
  
 ++++ ++++
Zeile 315: Zeile 330:
 Oft möchte man mehrere Strings und Zahlen zu einem einzelnen String kombinieren. Einzelne Strings können mit `+` zusammengefügt werden. Möchte man eine Zahl-Variable `x` an einen String anfügen, so muss man diese zuerst in einen String umwandeln: `str(x)`. Ein String, der aus mehreren einzelnen Strings und Zahlen zusammengesetzt wurde, nennt man einen **formatierten String**. Wird der String mit print ausgegeben, so spricht man von einer **formatierten Ausgabe**. Beispiel: Oft möchte man mehrere Strings und Zahlen zu einem einzelnen String kombinieren. Einzelne Strings können mit `+` zusammengefügt werden. Möchte man eine Zahl-Variable `x` an einen String anfügen, so muss man diese zuerst in einen String umwandeln: `str(x)`. Ein String, der aus mehreren einzelnen Strings und Zahlen zusammengesetzt wurde, nennt man einen **formatierten String**. Wird der String mit print ausgegeben, so spricht man von einer **formatierten Ausgabe**. Beispiel:
  
-<code python>+<html><bottom-editor>
 firstname = "Albert" firstname = "Albert"
 lastname = "Einstein" lastname = "Einstein"
 print("Full name is " + firstname + " " + lastname + "!") print("Full name is " + firstname + " " + lastname + "!")
-</code>+</bottom-editor></html>
  
 Beachte, dass der **Plus-Operator** `+` komplett **unterschiedliche Bedeutungen** haben kann, je nach Situation, in der er angewendet wird: Beachte, dass der **Plus-Operator** `+` komplett **unterschiedliche Bedeutungen** haben kann, je nach Situation, in der er angewendet wird:
Zeile 327: Zeile 342:
  
 Praktisch sind auch die Befehle `s.lower()` und `s.upper()`, mit denen ein String `s` in kleinbuchstaben, resp. GROSSBUCHSTABEN umgewandelt werden. Praktisch sind auch die Befehle `s.lower()` und `s.upper()`, mit denen ein String `s` in kleinbuchstaben, resp. GROSSBUCHSTABEN umgewandelt werden.
 +
 +=== Stringformatierung ===
 +Um eine schöne Ausgabe mit verschiedenen Variablen egal welchen Typs zu erhalten, verwendet man Format-Strings. Sobald vor dem ersten Anführungszeichen der Buchstabe `f` steht, können Variablen mittels geschweifter Klammern in den String eingebettet werden.
 +
 +<html><bottom-editor>
 +age = 42
 +first_name = 'Albert'
 +last_name = 'Einstein'
 +
 +print(f'My name is {first_name} {last_name} and I am {age} years old')
 +</bottom-editor></html>
  
  
Zeile 342: Zeile 368:
  
 Mithilfe des **random**-Moduls können ganz einfach Zufallszahlen erzeugt werden. Folgender Code simuliert den Wurf eines Würfels: Mithilfe des **random**-Moduls können ganz einfach Zufallszahlen erzeugt werden. Folgender Code simuliert den Wurf eines Würfels:
-<code python>+<html><bottom-editor>
 import random import random
  
 z = random.randint(1,6) # bestimmt eine Zufallszahl aus Bereich 1,2,3,4,5,6 z = random.randint(1,6) # bestimmt eine Zufallszahl aus Bereich 1,2,3,4,5,6
 print(z) print(z)
-</code>+</bottom-editor></html> 
 Beachte, dass die Zufallsfunktion **randint** heisst. Dies steht für '**rand**om **int**eger', also 'zufällige ganze Zahl'. Ganze Zahlen sind Zahlen ohne Nachkommastellen, also $\ldots, -3,-2,-1,0,1,2,3,\ldots$. Beachte, dass die Zufallsfunktion **randint** heisst. Dies steht für '**rand**om **int**eger', also 'zufällige ganze Zahl'. Ganze Zahlen sind Zahlen ohne Nachkommastellen, also $\ldots, -3,-2,-1,0,1,2,3,\ldots$.
  
Zeile 563: Zeile 590:
 Kannst du auch eine Spirale zeichnen? Beim Quadrat bleiben Seitenlänge und Winkel immer gleich - welcher der beiden Werte ändert sich bei der Spirale? Kannst du auch eine Spirale zeichnen? Beim Quadrat bleiben Seitenlänge und Winkel immer gleich - welcher der beiden Werte ändert sich bei der Spirale?
  
-Zeichne erst eine Spirale. Zeichne dann ein zweite Spirale ähnlich wie im Bild. Zeichne dazu mit einer while-Schleife die eine. Versetze dann die Position deiner Turtle mit `setXund `setY` (oder `setPos`) und zeichne die Zweite Spirale mit einer neuen while-Schleife.+Zeichne erst eine Spirale. Zeichne dann ein zweite Spirale ähnlich wie im Bild. Zeichne dazu mit einer while-Schleife die eine. Versetze dann die Position deiner Turtle mit `teleport` und zeichne die Zweite Spirale mit einer neuen while-Schleife.
  
 {{ : gf_informatik:spiralen_duo.png?250 |}} {{ : gf_informatik:spiralen_duo.png?250 |}}
  
-<nodisp 1>+<nodisp 0>
 ++++Tipps| ++++Tipps|
  
Zeile 602: Zeile 629:
  
 <code python> <code python>
-from gturtle import *+from turtle import *
 turi = Turtle() turi = Turtle()
-turi.hideTurtle()+turi.hideturtle()
  
-0 +sides 4 
-while i < 4+while sides > 0
-    turi.forward(200)+    turi.forward(100)
     turi.left(90)     turi.left(90)
 +    sides = sides - 1
 </code> </code>
  
Zeile 615: Zeile 643:
  
 <code python> <code python>
-from gturtle import *+from turtle import *
  
 monika = Turtle() monika = Turtle()
-monika.hideTurtle()+monika.hideturtle()
  
-monika.setPos(-200,0) +monika.teleport(-100,0) 
-0 +length 100 
-while i < 39+while length > 0
-    monika.forward(10*i)+    monika.forward(length)
     monika.left(90)     monika.left(90)
-    i + 1+    length length - 5
          
-monika.setPos(200,0) +monika.teleport(100,0) 
-0 +length 100 
-while i < 96+while length > 0
-    monika.forward(4*i)+    monika.forward(length)
     monika.left(90)     monika.left(90)
-    i + 1+    length length - 2
 </code> </code>
  
Zeile 638: Zeile 666:
  
 <code python> <code python>
-from gturtle import *+from turtle import *
 t = Turtle() t = Turtle()
-t.hideTurtle()+t.hideturtle()
  
-+radius 50 
-l = 5 +while radius > 0
-while i < 150+    t.circle(radius180
-    t.rightArc(l,20+    radius = radius - 4
-    l + 2 # increase radius  +
-    i = i + 1+
 </code> </code>
  
 === Aufgabe C4 === === Aufgabe C4 ===
  
-<code python+<html><iframe src="https://webtigerpython.ethz.ch/?layout=%5B%22Editor%22%2C%20%22Canvas%22%5D&lang=en&full_screen=false&dark_mode=false&device=-&code=NobwRAdghgtgpmAXGGUCWEB0AHAnmAGjABMoAXKJMAMwCcB7GAAjIFdayAbOJtGbehyYAqADoRxAa3ZkmAXiYAVGdwAUASnHiAzmmI8FARgAMxpuYsBiJgBkAJxADmPfbSaSAP7QBecWnAgmAGU4NDI4HT04AH1acjR6eSYAJnNrIPoANzQ4TiZOB2c3NG1ZYhz8wr8eELCIiFK4bGjdXySAVitgrJy8gHc0WmImcp57Jx5PHz8mbAYmABF2AGMAC0coJy0IPtW0biZdfSYAPiZjRHELdxlMakE%2BqCHVI55hQ6jY%2BPpNQItpDiYbjUMiqACcxl%2B1wBZDuDyexBeUSh%2F1uwNBEJR5leSRxAFpDuFmq0EABfAC6QA%3D" allow="usb;clipboard-write" style="border: 1px solid lightgray; height: 500px; width: 100%"
-</code+</iframe
 +</html>
 ++++ ++++
 </nodisp> </nodisp>
Zeile 664: Zeile 690:
 Bei diesen Aufgaben geht es um folgendes: Bei diesen Aufgaben geht es um folgendes:
  
-   Schleifen mit elif zu programmieren+   Verzweigungen mit elif zu programmieren
    * etwas längere Programme schreiben    * etwas längere Programme schreiben
  
Zeile 712: Zeile 738:
 == Schritt 2 == == Schritt 2 ==
  
-Erweitere nun dein Mathe-Quiz. In diesem soll die Aufgabe per Zufall generiert werden. Nutze den Zufallsgenerator von Python, um die beiden Zahlen, die addiert werden sollen, zufällig zu wählen.+Erweitere nun dein Mathe-Quiz. In diesem soll die Aufgabe per Zufall generiert werden. Nutze den [[#zufallszahlen|Zufallsgenerator]] von Python, um die beiden Zahlen, die addiert werden sollen, zufällig zu wählen.
  
 Dazu musst du das //random//-Modul einbinden. Dazu musst du das //random//-Modul einbinden.
Zeile 818: Zeile 844:
  
 <code python> <code python>
 +import random
 +
 +questions = 0
 +correct = 0
 +
 +while questions < 10:
 +    questions = questions + 1
 +
 +    x = random.randint(1, 20)
 +    y = random.randint(1, 20)
 +    result = x + y
 +    answer = int(input(f'Was ergibt {x} + {y} ?'))
 +    if answer == result:
 +        correct = correct + 1
 +
 +print(f'Du hast {correct} von 10 Aufgaben richtig gelöst!')
 </code> </code>
  
 ++++ ++++
 </nodisp> </nodisp>
  • gf_informatik/programmieren_ii.1759753324.txt.gz
  • Zuletzt geändert: 2025-10-06 12:22
  • von hof