Programmierung mit Python
Programmierung mit Python
Vorsemesterkurs Informatik
Wintersemester 2024/25
Ronja Düffel
07. Oktober 2024
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Rückblick
Datentypen:
bool
Zahlen (int und float)
string
Variablen
Kontrollstrukturen
Verzweigungen (if...: und if...else:)
Schleifen (while...: und for...:)
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Aggregierte Datentypen
Datentyp: Zusammenfassung von Objektmengen und der darauf definierten Operationen
z.B. die elementaren Datentypen bool, int, float
aggregierter Datentyp: Aus anderen (elementaren oder aggregierten) Datentypen
zusammengesetzter Datentyp.
um mehrere Daten die zusammengehören zu verwalten
in Python gibt es vordefinierte aggregierte Datentypen
z.B. set, tupel, dict, list
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Listen
mehrere Werte unter einem Variablennamen zusammengefasst
werden durch eckige Klammern [ ] angezeigt, Listenelemente werden durch Komma
getrennt.
auf einzelne Werte kann über den Index zugegriffen werden
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Listen
Operator/ Funktion Beschreibung
<list>[x] Zugriff auf Element mit Index x
<list>[x:y] Zugriff auf Teilliste von Index x bis y−1 (!!!)
<list> + <list> zusammenfügen von Listen
<list>.append(x) hinzufügen von x
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Listen
<list>.pop(x) Rückgabe und Löschen von Element mit Index x
del <list>[x] Löschen von Element mit Index x
<list>.remove(x) Löschen von Element x (1.Vorkommen!)
len(<list>) Länge der Liste
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Funktionen
für Operationen die immer wieder gebraucht werden
+ Wiederverwertbarkeit
+ leichte Wartbarkeit
+ nur einmal schreiben
+ leicht auszutauschen
+ Übersichtlichkeit
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Funktionen
werden mit def-Anweisung definiert, Übergabeparameter in runden Klammern ( )
dahinter
Funktionsrumpf muss eingerückt sein
Ende der Funktion durch beenden der Einrückung
Schlüsselwort return beendet die Funktion und veranlasst Zuweisung des
Rückgabewerts
1 def add(a,b):
2 ’’’Addiere die Zahlen a und b’’’
3 return a+b
return-Anweisung ist optional. Hat die Funktion keinen Rückgabewert, so wird das
Objekt None zurückgegeben.
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Funktionen
Funktionsdefinition muss im Code (lexikalisch) vor dem Aufruf erfolgen
Übergabeparameter müssen beim Aufruf in der richtigen Reihenfolge angegeben
werden
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Beispiel:Parameterübergabe
1 def getNewBalance (now, spent, name):
2 amount = now - spent
3 owner = name
4 return ((owner, amount))
5
6 balance = getNewBalance(’Bob’, 500, 150)
7 print(balance)
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Parameter benennen
1 def getNewBalance (now, spent, name):
2 amount = now - spent
3 owner = name
4 return ((owner, amount))
5
6 balance = getNewBalance(name=’Bob’, now=500, spent=150)
7 print(balance)
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Fehlersuche
mit type() kann man sich den Datentyp einer Variablen ausgeben lassen
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Beispiel type()
1 # berechne Fläche eines Quadrats
2 side = input(’Seitenlänge in cm: ’)
3 area = side**2
4 print(’Flächeninhalt:’,area)
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Beispiel type()
1 # berechne Fläche eines Quadrats
2 side = input(’Seitenlänge in cm: ’)
3 print(’debug:’,side, type(side))
4 area = side**2
5 print(’Flächeninhalt:’,area)
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Gültigkeitsbereiche
1 # Gueltigkeitsbereiche
2
3 x = 5
4 def sowas():
5 x = 0
6 print (’Wert von x in der Funktion:’,x)
7 return
8
9 print(’Wert von x vor Funktionsaufruf:’,x)
10 sowas()
11 print(’Wert von x nach Funktionsaufruf:’, x)
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Gültigkeitsbereiche
1 # Gueltigkeitsbereiche
2
3 x = 5
4 def sowas():
5 global x
6 x = 0
7 print (’Wert von x in der Funktion:’,x)
8 return
9
10 print(’Wert von x vor Funktionsaufruf:’,x)
11 sowas()
12 print(’Wert von x nach Funktionsaufruf:’, x)
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Gültigkeitsbereiche
1 # Gueltigkeitsbereiche
2 x = 5
3 y = 2
4 def sowas():
5 global x
6 x = 0
7 z = x - y
8 print (’Wert von x in der Funktion:’,x)
9 print(’Wert von z in der Funktion:’, z)
10 return
11 print(’Wert von x vor Funktionsaufruf:’,x)
12 sowas()
13 print(’Wert von x nach Funktionsaufruf:’, x)
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Gültigkeitsbereiche
1 # Gueltigkeitsbereiche
2 x = 5
3 y = 2
4 def sowas():
5 global x
6 x = 0
7 z = x - y
8 print (’Wert von x in der Funktion:’,x)
9 print(’Wert von z in der Funktion:’, z)
10 return
11 print(’Wert von x vor Funktionsaufruf:’,x)
12 sowas()
13 print(’Wert von x nach Funktionsaufruf:’, x)
14 print(’Wert von z nach Funktionsaufruf:’,z)
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Ausgabe
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Gültigkeitsbereiche
Variablenname ist in dem Anweisungsblock gültig, in dem er definiert wird.
unterscheide zwischen lokalen (innerhalb Block/Funktion)
und globalen (auch außerhalb) Variablen
Verwendung globaler Variablen innerhalb von Funktionen mit global
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Module
Wiederverwendung von Funktionen in anderen Programmen :
import
import <Modulname> (Dateiname ohne .py)
Verwendung durch <Modulname>.<Funktionsname>
(kein Namenskonflikt)
from <Modulname> import <Funktionsname/n)>
Verwendung durch <Funktionsname>
(!gleichnamige Funktionen werden überschrieben!)
from <Modulname> import ∗
Alles wird importiert, gefährlich aber “bequem”
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Beispiel import
Datei: rechnen.py
1 def add(a,b):
2 ’’’Addiere die Zahlen a und b’’’
3 return a+b
4
5 def summe(n):
6 ’’’berechnet die Summe der ersten n natürlichen Zahlen’’’
7 ergebnis = 0
8 for i in range(n+1):
9 ergebnis += i
10 return ergebnis
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Beispiel import
Programm, mit dem die Summe der ersten n natürlichen Zahlen berechnet werden kann
1 import rechnen # importiere Modul rechnen
2
3 while True:
4 a = input("Geben Sie eine Ganzzahl > 0 ein: ")
5 if a.isdigit():
6 break
7
8 a_int = int(a)
9 result = rechnen.summe(a_int)
10 print("Die Summe von 1 bis", a ,"ist:",result)
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Beispiel import *
1 from rechnen import * # importiere alles von Modul rechnen
2 def summe(a,b):
3 return(a + b)
4
5 while True:
6 a = input("Geben Sie eine Ganzzahl > 0 ein: ")
7 if a.isdigit():
8 break
9 a_int = int(a)
10 result = summe(a_int)
11 print("Die Summe von 1 bis", a ,"ist:",result)
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Beispiel import *
1 import rechnen # importiere Modul rechnen
2 def summe(a,b):
3 return(a + b)
4
5 while True:
6 a = input("Geben Sie eine Ganzzahl > 0 ein: ")
7 if a.isdigit():
8 break
9 a_int = int(a)
10 result = rechnen.summe(a_int)
11 print("Die Summe von 1 bis", a ,"ist:",result)
12 summe = summe(a_int,6)
13 print("Die Summe von", a ,"und 6 ist:",summe)
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Dateien lesen und schreiben
open() : öffnet eine Datei in angegebenem Modus
’r’: Lesemodus
’w’: Schreibmodus !Datei wird überschreiben !
’a’: Schreibmodus, neue Daten werden am Ende hinzugefügt
read() : Lese den Inhalt der Datei; komplett, oder die angegebene Anzahl an Bytes
write() : Schreibt Daten in Datei. Zeilenumbruch muss explizit angegeben werden
close() : schließt Datei.
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Beispiel
1 # Dateizugriff
2
3 fo = open("/home/ronja/Demo/beispiel.txt","w") #Datei öffen zum
Schreiben
4 fo.write("Nun zieren Sie sich doch nicht so! \n")
5 fo.write("""Sie haben doch einen Spenderausweis.
6
7 Aber das ist doch nur im Todesfall!!!""") #mehrzeilig ohne \n-Angabe
8 fo.close() #Datei schliessen
Datei beispiel.txt
1 Nun zieren Sie sich doch nicht so!
2 Sie haben doch einen Spenderausweis.
3
4 Aber das ist doch nur im Todesfall!!!
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Beispiel
1 fo = open("/home/ronja/Demo/beispiel.txt","w") #Datei öffen zum
Schreiben
2 fo.write("Keine Angst. Das hat noch keiner überlebt")
3 fo.close()
Datei beispiel.txt
1 Keine Angst. Das hat noch keiner überlebt
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Beispiel
1 fo = open("/home/ronja/Demo/beispiel.txt","a") #Datei öffen zum
Schreiben
2 fo.write("Keine Angst. Das hat noch keiner überlebt")
3 fo.close()
Datei beispiel.txt
1 Nun zieren Sie sich doch nicht so!
2 Sie haben doch einen Spenderausweis.
3
4 Aber das ist doch nur im Todesfall!!!Keine Angst. Das hat noch
keiner überlebt
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Rekursion
Um Rekursion zu verstehen,
muss man erstmal Rekursion verstehen
Methode etwas durch sich selbst zu definieren
Beispiel (Summe)
Die Funktion f : N → N sei gegeben durch
0, falls n = 0 Rekursionsanfang
f (n) :=
n + f (n − 1), sonst. Rekursionsschritt
Vorkurs Informatik - WS2024/25
Programmierung mit Python
rekursive Programmierung
Funktionen die sich selbst aufrufen (auch verschachtelt)
Abbruchbedingung muss auch erreicht werden (Gefahr der Endlosschleife)
1 # Summe rekursiv
2
3 def sum_rek(n):
4 if n==0:
5 return 0
6 else:
7 return n + sum_rek(n-1)
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Beispiel Summe
1 # Summe iterativ
2
3 def sum_iter(n):
4 result = 0
5 for i in range(n+1):
6 result += i
7 return result
1 # Summe rekursiv
2
3 def sum_rek(n):
4 if n==0:
5 return 0
6 else:
7 return n + sum_rek(n-1)
Vorkurs Informatik - WS2024/25
Programmierung mit Python
Fragen?
?
Vorkurs Informatik - WS2024/25