![Page 1: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/1.jpg)
Brückenkurs InformatikAlgorithmik und Programmieren
Justus Piater
https://iis.uibk.ac.at/
![Page 2: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/2.jpg)
OrganisationTeilnahme
Zielgruppe
• Einsteiger in die Informatik
• Studierende ohne Programmierkenntnisse
Ganz locker.
• Die Teilnahme am Kurs ist freiwillig.• Gruppenarbeit ist ausdrücklich erwünscht.
• Helfen Sie anderen Studierenden; das hilft auch Ihnen.• Erst wenn Sie die Lösungen erklären können, haben Sie das
Problem wirklich verstanden.
• Stellen Sie Fragen!
• Melden Sie sich, wenn es zu schnell oder zu langsam geht.
Brückenkurs Informatik: Algorithmik und Programmieren 1
![Page 3: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/3.jpg)
OrganisationInhalt
Ablauf
• Theorieblöcke• Praktische Übungen
• Sie lernen am meisten, wenn Sie selbst programmieren.• Auch in Gruppen sollte jeder selbst programmieren!
• Schriftliche Prüfung
Ziele
• Grundlagen der Programmierung
• Probleme abstrahieren und lösen
Brückenkurs Informatik: Algorithmik und Programmieren 2
![Page 4: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/4.jpg)
OrganisationRessourcen
• Termine und Kursunterlagen: Kurs-HomepageDank an Benedikt Hupfauf, auf dessen Vorarbeit dieses Material basiert.
• Feedback und Fragen bitte an [email protected].
Brückenkurs Informatik: Algorithmik und Programmieren 3
![Page 5: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/5.jpg)
OrganisationPython unter Linux
Wir benötigen für diesen Kurs
• eine Python-Installation (für diesen Teil des Brückenkurses)
• Linux (insbesondere für den Computer-Teil)
Brückenkurs Informatik: Algorithmik und Programmieren 4
![Page 6: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/6.jpg)
OrganisationBlitzumfrage
Ich habe beim ZID einen Linux-Account. . .
A nicht beantragt
B beantragt und erhalten, aber noch nicht ausprobiert
C beantragt und erfolgreich ausprobiert(z.B. mit ssh -l c...- zid-gpl.uibk.ac.at)
D anderes
Brückenkurs Informatik: Algorithmik und Programmieren 5
![Page 7: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/7.jpg)
OrganisationBlitzumfrage
Ich verfolge diese Sitzung auf. . .
A Linux
B Windows
C Mac
D Smartphone
E anderes
Brückenkurs Informatik: Algorithmik und Programmieren 6
![Page 8: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/8.jpg)
OrganisationBlitzumfrage
Ich habe Linux. . .
A auf meinem Rechner installiert und erfolgreich ausprobiert
B auf einem bootfähigen USB-Stick installiert und erfolgreichausprobiert
C installiert aber nicht bzw. erfolglos ausprobiert
D nicht installiert
E anderes
Brückenkurs Informatik: Algorithmik und Programmieren 7
![Page 9: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/9.jpg)
OrganisationBlitzumfrage
Ich habe. . .
A Zugriff auf Linux (z.B. mittels ZID-Linux-Account und ssh odermittels selbst installiertem Linux)
B keinen Zugriff auf Linux
C keine Ahnung
D anderes
Brückenkurs Informatik: Algorithmik und Programmieren 8
![Page 10: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/10.jpg)
OrganisationErster Python-Test
1 Linux-KommandozeileUnter Linux:
• Öffnet eine Konsole, Terminal, Shell, . . .
Ansonsten:1 Öffnet euer SSH-Programm (PuTTY, . . . )2 Loggt euch auf zid-gpl.uibk.ac.at ein.
2 Tippt in die Kommandozeile: python --version Enter/ReturnWas seht ihr:
• Python 3.. . . : OK• Python 2.. . . : Schritt 2 wiederholen mit python3 --version• nichts dergleichen: bitte melden
Brückenkurs Informatik: Algorithmik und Programmieren 9
![Page 11: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/11.jpg)
OrganisationBlitzumfrage
Es funktioniert. . .
A Python 3
B Python 2, aber nicht Python 3
C weder noch
D Ich konnte es nicht ausprobieren.
Brückenkurs Informatik: Algorithmik und Programmieren 10
![Page 12: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/12.jpg)
Theorie 0: Was ist Python?
![Page 13: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/13.jpg)
Theorie 0Was ist Python?
• Python ist eine Skriptsprache.Python-Programme werden von einem Interpreter ausgeführt.
• Zwei Versionen sind verbreitet:• Python 2: zunehmend obsolet• Python 3: neue Features, sauberer durchdacht
• Wir verwenden Python 3 in diesem Kurs.
Brückenkurs Informatik: Algorithmik und Programmieren 11
![Page 14: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/14.jpg)
Theorie 0Eigenschaften von Python
• Open Source
• plattformunabhängige Skriptsprache
• einfach, verständlich und schnell zu erlernen
• dennoch sehr mächtig und von großer praktischer Bedeutung
Dies ist kein Python-Kurs. Wir werden uns auf das Notwendigstebeschränken.
Brückenkurs Informatik: Algorithmik und Programmieren 12
![Page 15: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/15.jpg)
Theorie 0Hilfreiche Ressourcen
• Die Python Dokumentation docs.python.org• Online-Kurse:
• LearnPython• Python for you and me• The Python Tutorial
• Bei konkreten Fragen: stackoverflow.com
Brückenkurs Informatik: Algorithmik und Programmieren 13
![Page 16: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/16.jpg)
Theorie I: Datentypen & Variablen
![Page 17: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/17.jpg)
Theorie IDatentypen
Python stellt Datentypen für die gängigsten Anwendungen(Built-in Types) zur Verfügung:
• String (Zeichenkette, Text): "This is text!", 'Dies auch.'• Integer (Ganzzahlen): 1, 2, . . .
• Float (Gleitkommazahlen): 1.35, 1.56e-5 = 1.56 · 10−5
• Bool (Wahr/Falsch): True, False
Brückenkurs Informatik: Algorithmik und Programmieren 14
![Page 18: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/18.jpg)
Theorie IVariablen
• Literale (wie eben benutzt) repräsentieren sich selbst.
• Variablen können jederzeit beliebige Werte zugewiesen werden.
• In Python muss der Typ nicht explizit benannt werden, und kannsich zur Laufzeit ändern.
• Vom (dynamischen) Typ hängt ab, welche Operationen fürdiese Variable zulässig sind.
Brückenkurs Informatik: Algorithmik und Programmieren 15
![Page 19: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/19.jpg)
Theorie IVariablennamen
• Gültige Variablennamen sind eine beliebige Kombination ausfolgenden Zeichen: a-z, A-Z, 0-9, _
• Beachten Sie folgende Sonderfälle:• Variablennamen dürfen nicht mit einer Ziffer beginnen.• Reservierte Schlüsselwörter, z.B.:
False, True, and, break, continue, def, elif, else, for, if, in,not, or, return, while
• Variablen sollten selbsterklärende Namen tragen!
Brückenkurs Informatik: Algorithmik und Programmieren 16
![Page 20: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/20.jpg)
Theorie IAusdrücke und Anweisungen
• Ein Ausdruck (expression) hat einen Wert; eine Anweisung(statement) hat einen Effekt.
• Ausdrücke lassen sich z.B. aus Variablen und mathematischenOperatoren erstellen, beispielsweise +, *, <, ==, uvm.
• Eine Wertzuweisung eines Ausdrucks an eine Variable mittelsdes Zuweisungsoperators = stellt eine Anweisung dar.Beachten Sie, dass = einer Variable einen Wert zuweist,während == zwei Werte vergleicht, ohne sie zu verändern.
1 >>> x = 2 + 1
2 >>> x = 2 * x
3 >>> print(x)
4 6
5 >>> x == 5
6 False
7 >>> print(x)
8 6
Brückenkurs Informatik: Algorithmik und Programmieren 17
![Page 21: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/21.jpg)
Theorie IPräzedenz von Operatoren
• Die Operatoren-Präzedenz bestimmt, in welcher Reihenfolgedie Operatoren eines Ausdrucks angewendet werden.
• Siehe die Python-Dokumentation für eine vollständige Liste derOperatoren und ihrer Präzedenzen.
Brückenkurs Informatik: Algorithmik und Programmieren 18
![Page 22: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/22.jpg)
Einschub: SkripteProgrammieren in einem Editor
Bisher haben wir interaktiv direkt im Interpreter gearbeitet,gestartet mit python bzw. python3.In der Praxis werden Sie Programme in einem Editor erstellen.Geben Sie Ihrer Python-Skript-Datei einen Namen, der auf .pyendet.
Tipp
• Ein einfacher Terminal-Editor ist nano. Starten Sie ihn mit demNamen Ihres Skripts als Argument: nano myScript.py
• Ein einfacher, graphischer Editor mitPython-Syntax-Hervorhebung ist gedit.
• Emacs kann alles, will aber gelernt sein.
Brückenkurs Informatik: Algorithmik und Programmieren 19
![Page 23: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/23.jpg)
Einschub: SkripteStarten eines Python-Skripts
Zwei Varianten, ein Python-Script zu starten:
• Das Script abspeichern und mit python3 myScript.py starten
• Das Script mit einem Shebang (Magic Line) beginnen,ausführbar machen und starten
Es kann auch eine IDE verwendet werden, aber das wird fürEinsteiger nicht empfohlen, da sie Nutzer von für das VerständnisWichtigem abschirmen.
Brückenkurs Informatik: Algorithmik und Programmieren 20
![Page 24: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/24.jpg)
Einschub: SkripteStarten eines Python Skripts mit Shebang
1 Im Editor das Skript mit einem Shebang beginnen:
1 #!/usr/bin/env python3
2 print("Hello World!")
2 im Terminal ausführbar machen (nur einmal):
1 chmod +x myScript.py
3 und starten:
1 ./ myScript.py
Brückenkurs Informatik: Algorithmik und Programmieren 21
![Page 25: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/25.jpg)
Theorie IÜbungsblatt 1: Variablen
https://iis.uibk.ac.at/public/piater/courses/703000/Algo+Prog/Übungsblatt-1.pdf
Brückenkurs Informatik: Algorithmik und Programmieren 22
![Page 26: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/26.jpg)
Theorie II: Kontrollfluss
![Page 27: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/27.jpg)
Theorie IIif-Anweisung
• Anweisungen werden sequentiell ausgeführt.
• Ist das nicht genug, kann der Kontrollfluss gesteuert werden.• Das if-Statement
• führt einen Code Block nur aus, wenn die Bedingung condition
erfüllt ist;• kann optional mit einem else-Block ergänzt werden,der
ausgeführt wird, wenn die Bedingung nicht erfüllt ist.
1 if condition:
2 # executed if condition true
3 else:
4 # executed if condition false
Brückenkurs Informatik: Algorithmik und Programmieren 23
![Page 28: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/28.jpg)
Theorie IIif-Anweisung: Beispiel I
1 >>> if a < 0:2 ... print( 'a is negative ')3 ... print( ' this line belongs to the same code block ')4 >>> print( ' this is a new block and is always executed ')
• Im Gegensatz zu den meisten Programmiersprachen ist dieEinrückung in Python nicht optional, sondern definiertCodeblöcke.
• Sie können Code mit <tab> oder mit 2–4 Leerzeicheneinrücken, sollten aber bei einer dieser Optionen bleiben.
Brückenkurs Informatik: Algorithmik und Programmieren 24
![Page 29: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/29.jpg)
Theorie IIif-Anweisung: Beispiel II
1 >>> if a < 0:
2 ... print( ' a is negative ' )3 >>> elif a > 0:
4 ... print( ' a is positive ' )5 >>> else:
6 ... print( ' a must be zero then ' )
Mit dem Schlüsselwort elif lassen sich vielfache Alternativenkompakter und ohne Verschachtelung angeben.
Quiz
Wie sähe das obige Programmstück ohne Verwendung von elif
aus?
Brückenkurs Informatik: Algorithmik und Programmieren 25
![Page 30: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/30.jpg)
Theorie IIwhile-Anweisung
Mit der while-Anweisung wird ein Programmblock wiederholt,solange die Bedingung condition erfüllt ist.
1 while condition:
2 # executed as long as condition is true
Brückenkurs Informatik: Algorithmik und Programmieren 26
![Page 31: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/31.jpg)
Theorie IIwhile-Anweisung: Beispiel
1 >>> i = 0
2 >>> while i < 3:
3 ... print( ' i is: ' , i)
4 ... i = i + 1
5 ...
6 i is: 0
7 i is: 1
8 i is: 2
Achten Sie darauf, dass die Bedingung nicht für immer True ist, dadie Schleife sonst endlos ist.
Brückenkurs Informatik: Algorithmik und Programmieren 27
![Page 32: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/32.jpg)
Theorie IIBreak and Continue
• Eine Schleife muss nicht immer bis zum Ende ausgeführtwerden.
• Mit dem Schlüsselwort continue wird der aktuelleSchleifendurchlauf abgebrochen und ggf. der folgendeangetreten.
• Mit dem Schlüsselwort break wird die Schleife sofort beendet.
1 >>> i = 02 >>> while i < 1000:3 ... i = i + 14 ... if i == 4: break5 ... if i == 1: continue6 ... print( 'i is: ' , i)7 ...8 i is: 29 i is: 3
Brückenkurs Informatik: Algorithmik und Programmieren 28
![Page 33: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/33.jpg)
Theorie IIÜbungsblatt 2: Kontrollfluss
https://iis.uibk.ac.at/public/piater/courses/703000/Algo+Prog/Übungsblatt-1.pdf
Brückenkurs Informatik: Algorithmik und Programmieren 29
![Page 34: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/34.jpg)
Theorie III: Funktionen
![Page 35: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/35.jpg)
Theorie IIIFunktionen
• Mehrfach verwendete Codeteile können in Funktionenausgelagert werden.
• Eine Funktion sollte immer genau einen Zweck erfüllen!
• Funktionen können, müssen aber keinen Rückgabewert haben(übergeben mittels return-Anweisung).
• Die Parameterliste parameters kann beliebig lang sein, alsoauch leer.
1 def functionName(parameters):
2 # function body
Brückenkurs Informatik: Algorithmik und Programmieren 30
![Page 36: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/36.jpg)
Theorie IIIFunktionen: Beispiele
Die folgenden Minimalbeispiele sollen nur zeigen, wie Funktionendefiniert werden können. Eine Funktion umfasst typischerweisemehr als nur eine Zeile Code.
1 >>> def mul(x, y):
2 ... return x * y
3 ...
4 >>> mul(2, 3)
5 6
1 >>> def printABC ():
2 ... print( ' abcdefghijklmnopqrstuvxyz ' )3 ...
4 >>> printABC ()
5 abcdefghijklmnopqrstuvxyz
Brückenkurs Informatik: Algorithmik und Programmieren 31
![Page 37: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/37.jpg)
Theorie IIIÜbungsblatt 1: Funktionen
https://iis.uibk.ac.at/public/piater/courses/703000/Algo+Prog/Übungsblatt-1.pdf
Brückenkurs Informatik: Algorithmik und Programmieren 32
![Page 38: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/38.jpg)
Theorie IV: Datenstrukturen
![Page 39: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/39.jpg)
Theorie IVDatenstrukturen
• Bisher: Einzelne Variablen und Konstanten
• Datenstrukturen erlauben es, „große“ Datenmengenzusammenzufassen und zu verarbeiten.
Brückenkurs Informatik: Algorithmik und Programmieren 33
![Page 40: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/40.jpg)
Theorie IVListen
• Die einfachste Datenstruktur in Python ist die Liste.
• Eine Liste ist eine geordnete, endliche Sammlung vonElementen beliebiger Datentypen.
• Achtung: geordnet heißt nicht zwangsläufig sortiert!
1 >>> list = [2,3,1,2]
2 >>> list
3 [2, 3, 1, 2]
Brückenkurs Informatik: Algorithmik und Programmieren 34
![Page 41: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/41.jpg)
Theorie IVKontrollfluss
• Mit einer for-Anweisung kann ein Programmblock für jedesElement einer Sequenz sequence ausgeführt werden.
• Diese sequence ist für uns eine Liste (Python kennt jedoch nochweitere Sequenz-Datentypen).
1 for variable in sequence:
2 # executed once for each element in sequence
Brückenkurs Informatik: Algorithmik und Programmieren 35
![Page 42: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/42.jpg)
Theorie IVKontrollfluss: Beispiel
• Mit dieser Schleife wird jedes Element der Liste [1,2,3] einmalausgegeben.
• Sie können statt der Variable i auch jeden anderen gültigenBezeichner verwenden.
1 >>> for i in [1,2,3]:
2 ... print(i)
3 ...
4 1
5 2
6 3
Brückenkurs Informatik: Algorithmik und Programmieren 36
![Page 43: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/43.jpg)
Theorie IVrange()
Zum Iterieren über eine Folge ganzer Zahlen verwendet mantypischerweise die Funktion range(), die einen sehr effizientenIterator zur Verfügung stellt:
1 >>> for i in range (3):
2 ... print(i)
3 ...
4 0
5 1
6 2
7 >>> for i in range(1, 3):
8 ... print(i)
9 ...
10 1
11 2
Hinweis
Es ist i.d.R. besser, über Elemente zu iterieren, als über Indizes.
Brückenkurs Informatik: Algorithmik und Programmieren 37
![Page 44: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/44.jpg)
Theorie IVZugriff auf Elemente in Listen
• Eine Liste kann Elemente verschiedener Datentypenbeinhalten:
1 >>> for i in [ ' a ' , 2.3, 5]:
2 ... print(i)
3 ...
4 a
5 2.3
6 5
• Einzelne Elemente oder Sublisten können auch referenziertwerden:
1 >>> list = [1,2,3]
2 >>> list [2]
3 3
4 >>> list [1]
5 2
6 >>> list [0:2]
7 [1, 2]
Brückenkurs Informatik: Algorithmik und Programmieren 38
![Page 45: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/45.jpg)
Theorie IVListenfunktionen
• append() hängt ein neues Element an die Liste an.
• + verkettet Listen.
1 >>> list_a = [ ' a ' , ' b ' , ' c ' ]2 >>> list_b = [ ' x ' , ' y ' , ' z ' ]3 >>> list_a.append( ' d ' )4 >>> list_a
5 [ ' a ' , ' b ' , ' c ' , ' d ' ]6 >>> print(list_a + list_b)
7 [ ' a ' , ' b ' , ' c ' , ' x ' , ' y ' , ' z ' ]
Brückenkurs Informatik: Algorithmik und Programmieren 39
![Page 46: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/46.jpg)
Theorie IVListenfunktionen II
• *n wiederholt eine Liste n mal.
• in prüft, ob ein Element in einer Liste enthalten ist.
• len(list) gibt die Länge der Liste zurück.
1 >>> list_b * 3
2 [ ' x ' , ' y ' , ' z ' , ' x ' , ' y ' , ' z ' , ' x ' , ' y ' , ' z ' ]3 >>> 2 in [1, 2, 3]
4 True
5 >>> len(list_a)
6 3
Brückenkurs Informatik: Algorithmik und Programmieren 40
![Page 47: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/47.jpg)
Theorie IVÜbungsblatt 2: Listen
https://iis.uibk.ac.at/public/piater/courses/703000/Algo+Prog/Übungsblatt-2.pdf
Brückenkurs Informatik: Algorithmik und Programmieren 41
![Page 48: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/48.jpg)
Theorie IVZeichenketten
• Strings (Zeichenketten) werden in Python zwischen einfachenoder doppelten Hochkommata eingeschlossen.
• Zwischen beiden Varianten gibt es keinen Unterschied.• Bei einfachen Hochkommata darf das doppelte Hochkomma im
String enthalten sein, und umgekehrt.• Viele Funktionen, die bei Listen besprochen wurden, können
auch auf Strings angewendet werden: for, +, *, n, . . .
1 >>> text = ' a ' + "b" + "c"
2 >>> for c in text:
3 ... print(c)
4 ...
5 a
6 b
7 c
8 >>> "abc" * 3
9 ' abcabcabc '10 >>> "test" in "this is a testtext!"
11 True
Brückenkurs Informatik: Algorithmik und Programmieren 42
![Page 49: Brückenkurs Informatik - Universität InnsbruckProg/... · Brückenkurs Informatik Algorithmik und Programmieren Justus Piater](https://reader033.vdocuments.site/reader033/viewer/2022052805/605a88d29d5ed6492e71f467/html5/thumbnails/49.jpg)
Theorie IVÜbungsblatt 3: Strings
https://iis.uibk.ac.at/public/piater/courses/703000/Algo+Prog/Übungsblatt-3.pdf
Brückenkurs Informatik: Algorithmik und Programmieren 43