Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:snr:informatik:python:ersteschritte [2021/09/01 09:00] – [Formatierte Strings] Olaf Schnürer | lehrkraefte:snr:informatik:python:ersteschritte [2022/08/27 21:01] (current) – [Rechnen mit Variablen] Olaf Schnürer | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | (Stark beeinflusst von Ivo Blöchligers entsprechendem Kapitel in seinem Python-Kurs) | ||
| + | |||
| + | ====== Variablen, Output und Input ====== | ||
| + | |||
| + | Starte einen Browser und Tigerjython. Ordne diese beiden Fenster auf deinem Bildschirm so an, dass du gut Arbeiten kannst. | ||
| + | |||
| + | ===== Hello-world-Programm ===== | ||
| + | |||
| + | Traditionell ist das erste Programm in vielen Programmier-Lehrbüchern ein kleines Programm, das nur den Text "Hello world!" | ||
| + | |||
| + | <WRAP round todo> | ||
| + | Gib das folgende Programm im Tigerjython-Editor ein - wer mag, kann natürlich auch " | ||
| + | <code python> | ||
| + | print(" | ||
| + | </ | ||
| + | Speichere es in einem geeigneten Ordner unter dem Namen '' | ||
| + | |||
| + | Führe das Programm aus. Wo erscheint die Ausgabe? | ||
| + | </ | ||
| + | |||
| + | ===== Arithmetische Ausdrücke ===== | ||
| + | |||
| + | <WRAP round info> | ||
| + | Die vier Grundrechenarten Addition, Subtraktion, | ||
| + | |||
| + | Potenzieren wird mit ''< | ||
| + | |||
| + | Wie üblich gilt " | ||
| + | </ | ||
| + | |||
| + | <WRAP round todo> | ||
| + | Öffne eine neues, leeres Programm/ | ||
| + | |||
| + | <wrap em>Bevor Du es ausführst:</ | ||
| + | |||
| + | <code python> | ||
| + | print(" | ||
| + | print(2+3*4) | ||
| + | print(" | ||
| + | print(2.0+3*4) | ||
| + | print(" | ||
| + | print(5-2**3) | ||
| + | print(" | ||
| + | print(1+2*3**2) | ||
| + | |||
| + | print(" | ||
| + | print(2**100) | ||
| + | |||
| + | print(" | ||
| + | print(2**0.5) | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP round todo> | ||
| + | Versuche herauszubekommen, | ||
| + | </ | ||
| + | |||
| + | ===== Variablen ===== | ||
| + | <WRAP round info> | ||
| + | Variablen können viele verschiedene Dinge speichern: | ||
| + | * ganze Zahlen wie 5 oder -6 (englisch '' | ||
| + | * Kommazahlen wie 1.2345 (englisch floating point number, kurz '' | ||
| + | * Zeichenketten wie " | ||
| + | * vieles mehr, etwa Wahrheitswerte (True oder False), Listen, Mengen, ... Das lernen wir teilweise später. | ||
| + | |||
| + | Namen von Variablen beginnen in der Regel mit einem Kleinbuchstaben, | ||
| + | </ | ||
| + | |||
| + | ==== Rechnen mit Variablen ==== | ||
| + | |||
| + | <WRAP round todo> | ||
| + | Erstelle ein neues Programm mit folgenden Inhalt und verbessere es (Reihenfolge, | ||
| + | <code python> | ||
| + | # Dies ist ein Kommentar und wird bei der Ausführung ignoriert. | ||
| + | # Die Leerzeichen rechts und links des Gleichheitszeichens (das man eigentlich als Zuordnungszeichen bezeichnen sollte) dienen nur der bessere Lesbarkeit. | ||
| + | # Zeichenketten werden dadurch gekennzeichnet, | ||
| + | gruss = " | ||
| + | adressat = " | ||
| + | ausgabe = adressat+gruss | ||
| + | print(ausgabe) | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP round todo> | ||
| + | Erstelle ein neues Programm mit folgenden Inhalt. Noch ist es fehlerhaft. | ||
| + | |||
| + | <wrap em>Bevor Du es ausführst:</ | ||
| + | |||
| + | Kommentiere möglichst wenige " | ||
| + | |||
| + | <code python> | ||
| + | # Mit Strings (= Kurzbezeichnung für Variablen, die strings enthalten) rechnen | ||
| + | a = " | ||
| + | b = " | ||
| + | print(a+b) | ||
| + | print(a*b) | ||
| + | |||
| + | # Mit Integers (= Kurzbezeichnung für Variablen, die integers enthalten) rechnen | ||
| + | a = 23 | ||
| + | b = 5 | ||
| + | print(a+b) | ||
| + | print(a*b) | ||
| + | |||
| + | # Es ist eigentlich kein guter Stil (und in vielen Programmiersprachen nicht erlaubt), | ||
| + | # dass derselbe Variablenname einmal für eine Zeichenkette und einmal für eine Zahl verwendet wird. | ||
| + | |||
| + | # Ist Zahl * string definiert? | ||
| + | s = " | ||
| + | x = 5 | ||
| + | y = 5.0 | ||
| + | print(x*s) | ||
| + | print(s*x) | ||
| + | print(y*s) | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP round info> | ||
| + | Variablen muss ein Startwert zugeordnet werden (sie müssen initialisiert werden), bevor sie verwendet werden können. Beispielsweise ist die Variable " | ||
| + | <code python> | ||
| + | a = 7 | ||
| + | print(a*b) | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | <WRAP round info> | ||
| + | Das (aus zwei Zeichen bestehende Symbol) '' | ||
| + | </ | ||
| + | |||
| + | <WRAP round todo> | ||
| + | Öffne die interaktive Konsole mit dem Fensterbutton der Menüleiste | ||
| + | {{: | ||
| + | und teste dort die folgenden Befehle (zum Abschicken des Befehls die Return-Taste drücken): | ||
| + | <code python> | ||
| + | print(" | ||
| + | </ | ||
| + | oder vielleicht lesbarer | ||
| + | <code python> | ||
| + | print(" | ||
| + | </ | ||
| + | Beachte hier, dass das Spezialzeichen jeweils zwischen Anführungszeichen steht. | ||
| + | |||
| + | Die Konsole eignet sich beispielsweise zum Ausprobieren von Befehlen. | ||
| + | </ | ||
| + | |||
| + | <WRAP round todo> | ||
| + | Ergänze | ||
| + | <code python> | ||
| + | n = # eine beliebige natürliche Zahl | ||
| + | </ | ||
| + | zu einem kurzen, aber lesbaren Python-Programm, | ||
| + | <code text> | ||
| + | +--+--+--+--+ | ||
| + | | | | | | | ||
| + | +--+--+--+--+ | ||
| + | | | | | | | ||
| + | +--+--+--+--+ | ||
| + | | | | | | | ||
| + | +--+--+--+--+ | ||
| + | | | | | | | ||
| + | +--+--+--+--+ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | 2aLM und 2dNP bis hier am 25.08.2021 | ||
| + | |||
| + | ===== Eingabe/ | ||
| + | <WRAP round info> | ||
| + | |||
| + | Für die Eingabe von Werten per Tastatur während des Programmablaufs gibt es die folgenden Funktionen. | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | </ | ||
| + | |||
| + | <WRAP round todo> | ||
| + | Teste die beiden folgenden Programme (der Befehl '' | ||
| + | <code python> | ||
| + | s = inputString(" | ||
| + | print(" | ||
| + | </ | ||
| + | <code python> | ||
| + | a = inputInt(" | ||
| + | print(" | ||
| + | </ | ||
| + | Gib im zweiten Programm bewusst ein Wort statt einer Zahl ein! Was ändert sich bei der Ausführung, | ||
| + | </ | ||
| + | |||
| + | ===== Formatierte Strings ===== | ||
| + | |||
| + | (Relativ schwierig: Nächstes Mal als Ziel Syntax wie < | ||
| + | |||
| + | <WRAP round todo> | ||
| + | Teste den folgenden Code. | ||
| + | <code python> | ||
| + | ganzzahl = 42 # Integer oder genauer Variable vom Typ Integer mit Wert 42 | ||
| + | kommazahl= 3.1415926535 | ||
| + | zeichenkette = " | ||
| + | |||
| + | ausgabe = " | ||
| + | print(ausgabe) | ||
| + | print("" | ||
| + | |||
| + | print(" | ||
| + | print(" | ||
| + | print(" | ||
| + | print("" | ||
| + | |||
| + | a = 5 | ||
| + | print(" | ||
| + | print("" | ||
| + | |||
| + | |||
| + | # Oder ohne Variablen: | ||
| + | print(" | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP round info> | ||
| + | Der Operator '' | ||
| + | |||
| + | Die '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | Wenn mehrere der '' | ||
| + | </ | ||
| + | |||
| + | <WRAP round info> | ||
| + | Genauere Formatierung: | ||
| + | <code python> | ||
| + | ff = 3.1415926535 | ||
| + | print(" | ||
| + | print(" | ||
| + | print(" | ||
| + | print(" | ||
| + | print(" | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP round important> | ||
| + | Beim Arbeiten mit Float-Variablen muss man immer mit Rundungsfehlern rechnen, wie das folgende Programm zeigt! | ||
| + | |||
| + | Der Grund für den Fehler hier ist, dass der Computer mit Binärzahlen statt Dezimalzahlen rechnet. | ||
| + | <code python> | ||
| + | print(" | ||
| + | f=(0.1+0.1)-(0.3-0.1) | ||
| + | print(f) | ||
| + | print(" | ||
| + | print(" | ||
| + | print(" | ||
| + | </ | ||
| + | Verstehst du die erste Ausgabe? Wenn nicht, lies [[https:// | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Aufgaben ===== | ||
| + | |||
| + | Die folgenden Aufgaben sind (bis auf minimale Ergänzungen) von Ivo Blöchliger kopiert. | ||
| + | |||
| + | <WRAP todo> | ||
| + | Vervollständigen Sie: | ||
| + | <code python> | ||
| + | n = inputInt(" | ||
| + | wurzel = n**0.5 | ||
| + | # Hier fehlt die Ausgabe in der Form | ||
| + | # Die Wurzel von 10 ist ungefähr 3.16, genauer 3.16227766016837952 | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP todo> | ||
| + | Schreiben Sie ein Programm, das den BMI (body mass index, eine total nutzlose Grösse) nach der Formel $\frac{m}{h^2}$ berechnet, wobei $m$ die Masse in kg und $h$ die Körpergrösse in m ist. Masse in kg und Grösse **in cm** sollen vom Benutzer eingelesen werden. Die Ausgabe soll in etwa wie folgt aussehen: | ||
| + | <code text> | ||
| + | Der BMI bei einer Grösse von 1.65 m und einem Gewicht von 62 kg beträgt 22.8. | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | 2aLM bis hier 01.09.2021 | ||
| + | |||
| + | <WRAP todo> | ||
| + | Definieren Sie 3 Variablen k (Kapital), p (Zinsatz) und n (Anzahl Jahre). Das Programm soll das mit Zinseszins verzinste Kapital nach n Jahren auf 2 Kommastellen gerundet ausgeben. Die Ausgabe soll z.B. wie folgt aussehen: (% wird mit < | ||
| + | |||
| + | < | ||
| + | Nach 20 Jahren ist das Kapital von 100.00 mit einem Zins von 1.0% auf 122.02 angewachsen. | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | 2dNP bis hier am 01.09.2021 | ||
| + | |||
| + | ===== Expertenwissen: | ||
| + | |||
| + | <WRAP round info> | ||
| + | Wie aus dem folgenden Code-Beispiel ersichtlich, | ||
| + | <code python> | ||
| + | platz = 9 | ||
| + | s1 = (" | ||
| + | nachkommastellen = 3 | ||
| + | s2 = (" | ||
| + | print(s1) | ||
| + | print(s2) | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Einige Lösungsvorschläge ===== | ||
| + | <hidden Quadratisches Raster> | ||
| + | <code python> | ||
| + | n = 7 | ||
| + | z1 = " | ||
| + | z2 = " | ||
| + | print(n*(n * z1 + " | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <hidden BMI-Berechnung> | ||
| + | <code python> | ||
| + | g = inputInt(" | ||
| + | m = inputInt(" | ||
| + | h = g/100 # Grösse in m | ||
| + | BMI = m / (h**2) | ||
| + | print(" | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Link zur Kursseite ===== | ||
| + | |||
| + | [[lehrkraefte: | ||