08 | Freitag, 08.12.2023

Grundlagen der Programmierung mit Python

In einer Einführung in die Informationstechnik dürfen erste Schritte mit einer Programmiersprache nicht fehlen. Daher wenden wir uns in diesem Abschnitt der leicht erlernbaren Skriptsprache Python zu. Sie werden erste Programme schreiben, die entweder auf Ihrem Laptop oder dem Raspberry Pi ausgeführt werden.

Ziele

  • Sie kennen verschiedene Datentypen und ihren sinnvollen Einsatz.
  • Sie definieren Variablen mit Daten unterschiedlicher Typen.
  • Sie geben die gespeicherten Inhalte von Variablen aus.
  • Sie führen Berechnungen mit Variablen durch.
  • Sie fügen Kommentare in Ihren Code ein und kommentieren Programmzeilen aus.
  • Sie greifen auf Elemente von Listen und Verzeichnissen zu.
  • Sie iterieren mit Schleifen über Listen, um deren Werte auszugeben.
  • Sie programmieren Bedingungen und Fallunterscheidungen, um den Programmverlauf davon abhängig zu ändern.
  • Sie kennen verschiedene Arten von Schleifen und deren sinnvollen Einsatz.
  • Sie definieren Funktionen und rufen sie auf.
  • Sie übergeben Argumente an eine Funktion.
  • Sie führen Berechnungen mit Funktionen durch und geben das Ergebnis zurück.
  • Sie kennen die Grundlagen der objektorntierten Programmierung in Python und können diese an gegebenen Beispielen erklären.

Inhalte

Variablen und Ausgaben

Nach dem obligatorischen Hello World! mit print("Hello World!") setzen Sie Ihre Reise in die Welt der Programmierung mit möglich einfachen ersten Skripten fort:

1sinn = 42
2hund = "Dackel"
3katze = "Julia"
4
5print(sinn)
6print(hund)
7print(katze)

Listen und Schleifen

Hier werden drei Variablen definiert und anschließend wieder ausgegeben. Im folgenden Skript nähern Sie sich effizienteren Methoden der Ausgaben von Variablen an:

 1# Vorgänge, die sich wiederholen, können mit Schleifen automatisiert werden.
 2# Hier wird eine Variable vom Typ Liste definiert.
 3tierheim = ["Hund", "Elefant", "Bär", "Gottesanbeterin"]
 4
 5# Liste als Ganzes ausgeben
 6print(tierheim)
 7
 8# Einzelne Elemente ausgeben
 9# Hier das erste
10print(tierheim[0])
11
12# Das dritte Element ausgeben
13print(tierheim[2])
14
15# Alle Elemente des Tierheims in
16# der richtigen Reihenfolge ausgeben
17print(tierheim[0])
18print(tierheim[1])
19print(tierheim[2])
20print(tierheim[3])
21
22# So umständlich muss es nicht bleiben.
23# Eine Schleife hilft.
24for tier in tierheim:
25    print(tier)

Bedingungen und Fallunterscheidungen

Wenn Sie den Programmverlauf abhängig von einer Bedingung ändern wollen, bspw. abhängig von einem bestimmten Wert einer Variablen, können tun Sie das in Python folgendermaßen:

 1# Erstellen Sie eine Datenbank, in der alle Mitglieder 
 2# einer Schulklasse gespeichert sind. 
 3# Geben Sie alle Mitglieder der Klasse der Reihe nach mit Ihrem Namen aus.
 4
 5klasse = ["Klaus", "Ingo", "Bärbel"]
 6gewinner_in = "Ingo"
 7
 8# Gehen Sie der Reihe nach die Klassenliste durch. 
 9# Wenn Sie auf den Gewinner bzw. die Gewinnerin des 
10# Vorlesewettbewerbs stoßen, geben Sie die zugehörigen Daten aus.
11
12for teilnehmer_in in klasse:
13    if teilnehmer_in == gewinner_in:
14        print(teilnehmer_in)

Verzeichnisse (dictionaries)

Ein besonderer Datentyp ist das Verzeichnis (engl.: dictionary). Es speichert Bezeichner-Wertepaare. Mit der Kombination einer Liste mit Verzeichnissen ist es u.a. möglich, die Struktur von Tabellen nachzubilden:

Diese Tabelle lässt sich mit einer Kombination von Liste und Verzeichnissen in Python abbilden. Quelle: Screenshot aus Calc
Diese Tabelle lässt sich mit einer Kombination von Liste und Verzeichnissen in Python abbilden. Quelle: Screenshot aus Calc
 1klasse = [
 2    {
 3        "vorname": "Ingo",
 4        "nachname": "Ingersen"
 5    },
 6    {
 7        "vorname": "Ayse",
 8        "nachname": "Klausen"
 9    },
10    {
11        "vorname": "Paul",
12        "nachname": "Paulsen"
13    },
14    {
15        "vorname": "Petra",
16        "nachname": "Petersen"
17    }
18]
19
20gewinner_in = "Klausen"
21
22# Geben Sie beim Durchlaufen der Klassenliste den 
23# Vor- und Nachnamen der Person aus, die den 
24# Vorlesewettbewerb gewonnen hat.
25
26# Zur Erinnerung: Auf Elemente der Liste greifen Sie
27# wie folgt zu:
28# print(klasse[1]["nachname"])
29
30for mitglied in klasse:
31    if mitglied["nachname"] == gewinner_in:
32        print(gewinner_in)

Funktionen

Funktionen kapseln Programmcode, der öfter verwendet werden soll. Durch Parameter wird eine Funktion noch flexibler und universeller einsetzbar. So lässt sich zu dem obigen Programm noch eine Funktion ergänzen:

1# Funktionsdefinition
2def gewonnen_hat (gewinner_in,klasse):
3    for mitglied in klasse:
4        if mitglied["vorname"] == gewinner_in:
5          print(mitglied["nachname"]+ " "+ mitglied["vorname"] )
6    
7
8# Funktionsaufruf
9gewonnen_in("Ingo",klasse)

Auftrag: Ganz einfache Programme

Schreiben Sie Programme zu den folgenden Aufforderungen. Lesen Sie genau, was dort steht und machen Sie nicht mehr als nötig, um die Aufgabe zu erfüllen. Legen Sie für jede Aufgabe eine neue Datei an.

  1. Geben Sie alle Wochentage der Reihe nach aus.
  2. Geben Sie nacheinander die Namen der letzten fünf Bundeskanzler*innen aus. Unterbrechen Sie das Programm bei der ersten Frau, die dieses Amt inne hatte.
  3. Bauen Sie eine Maschine (Funktion), die einen “Tisch”, einen “Stuhl” oder eine “Tür” zurückgibt, wenn Sie “Holz” hineingeben. Wenn Sie kein “Holz” hineingeben, sagt die Maschine: “Damit kann ich nichts anfangen.” Falls Sie Zufallszahlen brauchen, lesen Sie “Zufälliges Element aus einer Liste”.

Abgabetermin

Der Auftrag ist bis zum Donnerstag, 14.12.2023, zu erledigen.

Zurück
Weiter