Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== Das erste Programm ====== Bevor Sie beginnen, ordnen Sie Ihre Fenster (Browser und TigerJython) so an, dass es für Sie praktisch zum arbeiten ist, z.B. indem Sie die Fenster in die Mitte vom rechten oder linken Rand ziehen oder mit Alt-Tab hin- und her wechseln. [[https://fginfo.ksbg.ch/~ivo/videos/informatik/python/fenster-managment.mp4|🎞▶️ Erklärvideo]] oder auch auf [[https://web.microsoftstream.com/video/18eb7131-8f25-4863-b239-07d0f962e373|Stream]] <WRAP todo> Starten Sie TigerJython und geben Sie folgendes Programm ein (erst mal von Hand, ohne Copy-Paste): <code python> print("Hello World!") </code> Speichern Sie das Programm an einem geeigneten Ort und dem Namen ''hello.py'' Führen Sie das Programm aus. [[https://fginfo.ksbg.ch/~ivo/videos/informatik/python/tiger-jython-hello-world.mp4|🎞▶️Erklärvideo dazu]] und noch auf [[https://web.microsoftstream.com/video/1748a15f-4eac-4bf6-b2ec-fccc51383855|Stream]] </WRAP> ===== Ausgabe und Arithmetische Ausdrücke ===== <WRAP todo> Erstellen Sie ein neues (leeres) Programm, schreiben Sie folgendes Programm ab und speichern Sie es unter dem Namen ''punktvorstrich.py'' in einem geeigneten Ordner. <code python> print("2+3*4 ergibt nicht 20 sondern:") print(2+3*4) print("Die Wurzel aus 2 ist:") print(2**0.5) </code> Führen Sie das Programm aus und versuchen Sie dieses zu verstehen. Hinweis: ''<nowiki>**</nowiki>'' bedeutet potenzieren. </WRAP> <WRAP info> Es gelten die üblichen Rechenregeln (Punkt vor Strich, Klammern etc.) </WRAP> ====== Variablen ====== <WRAP info> Variablen beginnen i.d.R. mit einem Kleinbuchstaben. Danach können weitere Zeichen wie Grossbuchstaben, Ziffern und Bodenstriche verwendet werden. Von Sonderzeichen, Umlauten etc. wird abgeraten. Die Variablennamen sollten kurz aber beschreibend sein. Variablen können verschiedene Dinge speichern, typischerweise Zahlen oder Text (auch Strings genannt), aber auch beliebig komplizierte Dinge. Mit Variablen kann gerechnet werden. Je nach Typ (Zahl oder Text) sind die Operationen nicht definiert oder bewirken unterschiedliches. </WRAP> <WRAP todo> Speichern Sie folgende Programm wieder in einen neue Datei und verbessern Sie es (die Ausgabe ist nicht ganz so wie gewünscht, es fehlt ein Leerschlag): <code python> # Das ist ein Kommentar und wird bei der Ausführung ignoriert. # Die Leerschläge um das Gleichheitszeichen sind optional und dienen nur der Lesbarkeit des Programms anfang = "Hello" ende = "World!" ganz = anfang+ende print(ganz) </code> </WRAP> <WRAP todo> Erstellen Sie ein neues Programm mit folgendem Inhalt. Erklären Sie die Ausgabe des Programms: <code python> a = "6" b = "7" c = a+b print(c) a = 6 b = 7 c = a+b print(c) </code> </WRAP> <WRAP todo> Was bewirkt Text mal Zahl? <code python> a="bla " print(a*10) </code> </WRAP> <WRAP info> Mit ''\n'' kann ein Zeilenumbruch in einen Text (String) eingefügt werden, z.B. <code python> print("Immer\nwieder\neine\nneue\nZeile..") </code> Ein Zeilenumbruch ist zwar Spezialbuchstabe, muss aber wie jeder Text zwischen Anführungszeichen stehen. Z.B. so: <code python> t = "bla" print(t+"\n"+t) </code> </WRAP> <WRAP todo> Erstellen Sie ein neues Programm, das folgende Ausgabe produziert. Ziel ist es, dass das Programm weniger Platz braucht, als die Ausgabe: <code text> +---+---+---+---+---+ | | | | | | +---+---+---+---+---+ | | | | | | +---+---+---+---+---+ | | | | | | +---+---+---+---+---+ | | | | | | +---+---+---+---+---+ | | | | | | +---+---+---+---+---+ </code> Erweitern Sie Ihr Programm so, dass Sie in der ersten Zeile mit einer Variablen die Grösse (Anzahl kleiner Quadrätchen) des Text-Quadrats beliebig wählen können. [[https://fginfo.ksbg.ch/~ivo/videos/informatik/python/tiger-jython-text-gitter-quadrat.mp4|🎞▶️ Erklärvideo]] oder auch auf [[https://web.microsoftstream.com/video/7e14fc58-02f0-41fc-8d79-ce4c0a33dc4a|Stream]] </WRAP> ====== Input / Output ====== <WRAP todo> Testen Sie folgendes Programm <code python> s = inputString("Bitte Ihren Namen:") print("Guten Tag, "+s) </code> </WRAP> <WRAP todo> Testen Sie folgendes Programm: <code python> s = inputInt("Bitte eine Zahl:") print("Das Quadrat von") print(s) print("ist") print(s*s) </code> </WRAP> Der Output vom obigen Programm ist natürlich nicht schön mit den vielen Zeilenumbrüchen. Im nächsten Abschnitt lernen wir, eine schönere Ausgabe zu produzieren. ===== Input ===== <WRAP info> Es stehen folgende Funktionen für das Einlesen von der Tastatur zur Verfügung: * ''inputString'' liest die Eingabe als Text ein (auch z.B. "42"). * ''inputInt'' liest die Eingabe als **Ganzzahl** ein. Andere Eingaben werden nicht akzeptiert. * ''inputFloat'' liest die Eingable als **Dezimalbruch** (float) ein, wie z.B. 3.1415926 </WRAP> ===== Formatierter Output ===== <WRAP todo> Testen Sie folgenden Code: <code python> g = 42 # Typ int (Ganzzahl) d = 3.1415926 # Typ float (Dezimalzahl) s = "Hallo" # Typ string (Text) print("Dezimal %d, Float %f, String %s" % (g,d,s)) </code> </WRAP> <WRAP info> Die %d, %f und %s im Text werden durch die Werte ersetzt, die nach dem %-Operator in der Liste in dieser Reihenfolge aufgeführt sind. Weitere Formatierungsangaben sind möglich, z.B. führende Nullen, führende Leerschläge, Anzahl Nachkommastellen: <code python> print("Dezimal, Breite 5 ->%5d<-, Float, 2 Nachkommastellen %.2f" % (g,d)) print("Dezimal, Breite 3 mit führenden Nullen ->%03d<-" % g) </code> [[https://docs.python.org/2/library/stdtypes.html#string-formatting|Hier noch die offizelle Dokumentation]]. In Python3 wird zwar noch eine andere Variante mit ''.format()'' empfohlen. Die hier präsentierte Variante ist aber so in fast allen Programmiersprachen möglich. [[https://fginfo.ksbg.ch/~ivo/videos/informatik/python/tiger-jython-format-modulo.mp4|🎞▶️Erklärvideo dazu]] und dasselbe auf [[https://web.microsoftstream.com/video/83e8e81f-b732-4ecf-b978-0f6bb5cc6490|Stream]] </WRAP> ====== Aufgaben ====== <WRAP todo> Vervollständigen Sie: <code python> n = inputInt("Wurzel von welcher Ganzzahl?") wurzel = n**0.5 # hoch 1/2 entspricht der Wurzel (weil wenn man quadriert...) # Hier fehlt die Ausgabe in der Form # Die Wurzel von 10 ist ungefähr 3.16, genauer 3.16227766016837952 </code> </WRAP> <WRAP todo> Schreiben Sie ein Programm, das den BMI 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. </code> </WRAP> <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 <nowiki>%%</nowiki> ausgegeben) <code> Nach 20 Jahren ist das Kapital von 100.00 mit einem Zins von 1.0% auf 122.02 angewachsen. </code> </WRAP> ===== Quiz ===== [[:io-and-vars:quiz|Quiz]] ====== Lösungsvorschläge ====== <hidden Lösungsvorschläge> <code python> anz = 6 strich = "+---"*anz+"+\n" leer = "| "*anz+"|\n" print((strich+leer)*anz+strich) </code> <code python> n = inputInt("Wurzel von welcher Ganzzahl?") wurzel = n**0.5 # hoch 1/2 entspricht der Wurzel (weil wenn man quadriert...) # Hier fehlt die Ausgabe in der Form # Die Wurzel von 10 ist ungefähr 3.16, genauer 3.16227766016837952 print("Die Wurzel von %d ist ungefähr %.2f, genauer %.17f" % (n,wurzel, wurzel)) </code> <code python> k=100 p=1 n=20 kn = k*(1+p/100)**n print("Nach %d Jahren ist das Kapital von %.2f mit einem Zins von %.1f%% auf %.2f angewachsen." % (n,k,p,kn)) </code> <code python> m = inputInt("Gewicht in kg?") h = inputInt("Grösse in cm?") h = 0.01*h bmi = m/(h*h) print("Der BMI bei einer Grösse von %.2f m und einem Gewicht von %d kg beträgt %.1f" % (h,m,bmi)) </code> </hidden> lehrkraefte/blc/informatik/glf20/programmieren/io-and-vars.txt Last modified: 2020/09/23 08:45by Ivo Blöchliger