lehrkraefte:blc:informatik:glf20:programmieren:io-and-vars

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.

🎞▶️ Erklärvideo oder auch auf Stream

Starten Sie TigerJython und geben Sie folgendes Programm ein (erst mal von Hand, ohne Copy-Paste):

print("Hello World!")

Speichern Sie das Programm an einem geeigneten Ort und dem Namen hello.py

Führen Sie das Programm aus.

🎞▶️Erklärvideo dazu und noch auf Stream

Erstellen Sie ein neues (leeres) Programm, schreiben Sie folgendes Programm ab und speichern Sie es unter dem Namen punktvorstrich.py in einem geeigneten Ordner.

print("2+3*4 ergibt nicht 20 sondern:")
print(2+3*4)
print("Die Wurzel aus 2 ist:")
print(2**0.5)

Führen Sie das Programm aus und versuchen Sie dieses zu verstehen. Hinweis: ** bedeutet potenzieren.

Es gelten die üblichen Rechenregeln (Punkt vor Strich, Klammern etc.)

Variablen

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.

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):

# 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)

Erstellen Sie ein neues Programm mit folgendem Inhalt. Erklären Sie die Ausgabe des Programms:

a = "6"
b = "7"
c = a+b
print(c)
 
a = 6
b = 7
c = a+b
print(c)

Was bewirkt Text mal Zahl?

a="bla "
print(a*10)

Mit \n kann ein Zeilenumbruch in einen Text (String) eingefügt werden, z.B.

print("Immer\nwieder\neine\nneue\nZeile..")

Ein Zeilenumbruch ist zwar Spezialbuchstabe, muss aber wie jeder Text zwischen Anführungszeichen stehen. Z.B. so:

t = "bla"
print(t+"\n"+t)

Erstellen Sie ein neues Programm, das folgende Ausgabe produziert. Ziel ist es, dass das Programm weniger Platz braucht, als die Ausgabe:

+---+---+---+---+---+
|   |   |   |   |   |
+---+---+---+---+---+
|   |   |   |   |   |
+---+---+---+---+---+
|   |   |   |   |   |
+---+---+---+---+---+
|   |   |   |   |   |
+---+---+---+---+---+
|   |   |   |   |   |
+---+---+---+---+---+

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.

🎞▶️ Erklärvideo oder auch auf Stream

Input / Output

Testen Sie folgendes Programm

s = inputString("Bitte Ihren Namen:")
print("Guten Tag, "+s)

Testen Sie folgendes Programm:

s = inputInt("Bitte eine Zahl:")
print("Das Quadrat von")
print(s)
print("ist")
print(s*s)

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.

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

Testen Sie folgenden Code:

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))

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:

print("Dezimal, Breite 5 ->%5d<-, Float, 2 Nachkommastellen %.2f" % (g,d))
print("Dezimal, Breite 3 mit führenden Nullen ->%03d<-" % g)

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.

🎞▶️Erklärvideo dazu und dasselbe auf Stream

Aufgaben

Vervollständigen Sie:

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

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:

Der BMI bei einer Grösse von 1.65 m und einem Gewicht von 62 kg beträgt 22.8.

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 %% ausgegeben)

Nach 20 Jahren ist das Kapital von 100.00 mit einem Zins von 1.0% auf 122.02 angewachsen.

Lösungsvorschläge

Lösungsvorschläge

Lösungsvorschläge

anz = 6
strich = "+---"*anz+"+\n"
leer = "|   "*anz+"|\n"
print((strich+leer)*anz+strich)
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))
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))
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))
  • lehrkraefte/blc/informatik/glf20/programmieren/io-and-vars.txt
  • Last modified: 2020/09/23 08:45
  • by Ivo Blöchliger