informatik i: einführung in die programmierung...programme programme schreiben programme starten...

149
Informatik I: Einführung in die Programmierung 6. Python-Programme schreiben, kommentieren, starten und entwickeln Albert-Ludwigs-Universität Freiburg Peter Thiemann 06. November 2018

Upload: others

Post on 10-Mar-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Informatik I: Einführung in die Programmierung6. Python-Programme schreiben, kommentieren, starten undentwickeln

Albert-Ludwigs-Universität Freiburg

Peter Thiemann06. November 2018

Page 2: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

Iteration

Programme

06. November 2018 P. Thiemann – Info I 2 / 68

Page 3: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

Iteration

Programme

Programme = konkretisierte Algorithmen?→ Ja, aber nicht immer!

Folge von Anweisungen und Ausdrücken, die einenbestimmten Zweck erfüllen sollen.Interaktion mit der Umwelt (Benutzer, Sensoren, Dateien)Unter Umständen nicht terminierend (OS, Sensorknoten,. . . )Auf jeden Fall meistens länger als 4 Zeilen!

06. November 2018 P. Thiemann – Info I 4 / 68

Page 4: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

Iteration

Programme schreiben

06. November 2018 P. Thiemann – Info I 5 / 68

Page 5: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

Iteration

Zeilenumbruch

Umbrechen, wenn Zeilen zu lang.Implizite Fortsetzung mit öffnenden Klammern undEinrückung (siehe PEP8):

Lange Zeilenfoo = long_function_name(var_one, var_two,

var_three, var_four)def long_function_name(

var_one, var_two, var_three,var_four):

print(var_one)

06. November 2018 P. Thiemann – Info I 7 / 68

Page 6: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

Iteration

Kommentare im Programmtext

Kommentiere dein Programm!Programme werden öfter gelesen als geschrieben!Auch der Programmierer selbst vergisst. . .Nicht das Offensichtliche kommentieren, sondernHintergrundinformationen geben:Warum ist das Programm so geschrieben und nichtanders?Möglichst in Englisch kommentieren.

06. November 2018 P. Thiemann – Info I 8 / 68

Page 7: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

Iteration

Syntax von Kommentaren

Der Rest einer Zeile nach # ist Kommentar.Blockkommentare: Zeilen, die jeweils mit # beginnen undgenauso wie die restlichen Zeilen eingerückt sindbeziehen sich auf die folgenden Zeilen.

Block-Kommentaredef fib(n):

# this is a double recursive function# runtime is exponential in the argumentif n == 0:

Fließtext-Kommentare kommentieren einzelne Zeilen.Schlechte und gute Kommentare� �x = x + 1 # Increment x

y = y + 1 # Compensate for border� �06. November 2018 P. Thiemann – Info I 9 / 68

Page 8: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

Iteration

docstring-Kommentare

#-Kommentare sind nur für den Leser.docstring-Kommentare geben dem BenutzerInformationen.Ist der erste Ausdruck in einer Funktion oder einemProgramm (Modul) ein String, so wird dieser derdocstring, der beim Aufruf von help ausgegeben wird.Konvention: Benutze den mit drei "-Zeichen eingefasstenString, der über mehrere Zeilen gehen kann.

docstringdef fib(n):

"""Computes the n-th Fibonacci number.The argument must be a positive integer."""

...

06. November 2018 P. Thiemann – Info I 10 / 68

Page 9: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

Iteration

Programme speichern

Programme werden in Dateien abgelegt.Als Dateiname wähle Modulname.pyDie Dateierweiterung .py zeigt an, dass es sich um einPython-Programm handelt.Windows: Wähle immer Alle Dateien beim Sichern damitnicht .txt angehängt wird.

06. November 2018 P. Thiemann – Info I 11 / 68

Page 10: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

Iteration

Programme starten

06. November 2018 P. Thiemann – Info I 12 / 68

Page 11: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

Iteration

5 Wege ein Programm zu starten

Starten mit explizitem Aufruf von Python3Starten als SkriptStarten durch KlickenStarten durch ImportStarten in einer IDE

Beispielprogramm: example.pyprint("Hello world")

06. November 2018 P. Thiemann – Info I 14 / 68

Page 12: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

Iteration

Starten mit explizitem Aufruf von Python3

Shell# python3 example.pyHello world

Voraussetzungen:Die Datei example.py liegt im aktuellen Ordner.Die Pfad-Variable (PATH) wurde so gesetzt, dass derPython-Interpreter gefunden wird.

Wird normalerweise bei der Installation geleistet.Kann „per Hand“ nachgetragen werden:

Windows: Systemsteuerung→ System und Sicherheit→Erweiterte Systemeinstellungen→ Erweitert→UmgebungsvariablenUnix: Setzen der PATH-Variable im entsprechendenLogin-Skript oder in der Shell-Konfigurationsdatei (z.B.˜/.bash_profile)

06. November 2018 P. Thiemann – Info I 15 / 68

Page 13: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

Iteration

Starten als Skript

Shell# example.pyHello world

Voraussetzungen:Die Datei example.py liegt im aktuellen Ordner.Windows: .py wurde als Standard-Dateierweiterung fürPython registriert.Unix: Die erste Zeile in der Datei example.py ist:#!/usr/bin/env python3und die Datei hat das x-Bit (ausführbare Datei) gesetzt.

06. November 2018 P. Thiemann – Info I 16 / 68

Page 14: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

Iteration

Starten durch Klicken

Wenn .py als Standard-Dateierweiterung für Pythonregistriert ist (geht eigentlich bei allen Plattformen mitDesktop-Oberfläche), kann die Datei durch Klicken (oderDoppelklicken) gestartet werden.Leider wird nur kurz das Shell-Fenster geöffnet, mit Endedes Programms verschwindet es wieder.Abhilfe: Am Ende der Datei die Anweisung input() indas Programm schreiben.Allerdings:

Bei Fehlern verschwindet das FensterBeim Aufruf können keine Parameter übergeben werden.

Für fertig entwickelte Programme mit GUI geeignet.

06. November 2018 P. Thiemann – Info I 17 / 68

Page 15: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

Iteration

Starten durch Import

Nach dem Start von Python im Ordner, in demexample.py liegt:

Python-Interpreter>>> import exampleHello world

Beachte: Angabe ohne die Dateierweiterung!Die Anweisungen in der Datei werden nur beim erstenImport ausgeführt.

Python-Interpreter>>> import exampleHello world>>> import example>>>

06. November 2018 P. Thiemann – Info I 18 / 68

Page 16: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

ProgrammeentwickelnIDE

IDLE

Sequenzen

OperationenaufSequenzen

Iteration

Programme entwickeln

06. November 2018 P. Thiemann – Info I 19 / 68

Page 17: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

ProgrammeentwickelnIDE

IDLE

Sequenzen

OperationenaufSequenzen

Iteration

IDE = Integrated development environment

Editor aufrufen, Programm in der Shell starten, wieder Editorstarten, . . .IDEs sind einsetztbar für:

ProjektverwaltungProgramm editierenAusführenTesten und DebuggenDokumentation erzeugen. . .

Gibt es in den verschiedensten Komplexitäts- undQualitätsabstufungen.

06. November 2018 P. Thiemann – Info I 21 / 68

Page 18: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

ProgrammeentwickelnIDE

IDLE

Sequenzen

OperationenaufSequenzen

Iteration

Pythons IDE: IDLE

Wohlmöglich benannt nach Eric Idle.Ist 100% in Python geschrieben und benutzt die tkinterGUI (graphical user interface).Läuft auf allen Plattformen.Multi-Fenster-Texteditor mit Syntaxkennzeichnung,multipler Zurücknahme, smarter Einrückung.Enthält ein Fenster mit Python-Shell.Rudimentäre Debug-Möglichkeiten.Beschreibung siehe:http://docs.python.org/3/library/idle.html.

06. November 2018 P. Thiemann – Info I 22 / 68

Page 19: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

ProgrammeentwickelnIDE

IDLE

Sequenzen

OperationenaufSequenzen

Iteration

IDLE Demo

06. November 2018 P. Thiemann – Info I 23 / 68

Page 20: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Sequenzen

06. November 2018 P. Thiemann – Info I 24 / 68

Page 21: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Sequenzen

Pythons SequenztypenStrings: strTupel: tupleListen: list

Programmieren mit SequenzenGemeinsame OperationenIteration (for-Schleifen)

06. November 2018 P. Thiemann – Info I 26 / 68

Page 22: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Beispiel zu Sequenzen

Python-Interpreter>>> first_name = "Johann">>>

last_name = 'Gambolputty'>>> name = first_name + " " + last_name>>> print(name)Johann Gambolputty>>> print(name.split())['Johann', 'Gambolputty']>>> primes = [2, 3, 5, 7]>>> print(primes[1], sum(primes))3 17>>> squares = (1, 4, 9, 16, 25)>>> print(squares[1:4])(4, 9, 16)

06. November 2018 P. Thiemann – Info I 27 / 68

Page 23: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Beispiel zu Sequenzen

Python-Interpreter>>> first_name = "Johann">>> last_name = 'Gambolputty'>>>

name = first_name + " " + last_name>>> print(name)Johann Gambolputty>>> print(name.split())['Johann', 'Gambolputty']>>> primes = [2, 3, 5, 7]>>> print(primes[1], sum(primes))3 17>>> squares = (1, 4, 9, 16, 25)>>> print(squares[1:4])(4, 9, 16)

06. November 2018 P. Thiemann – Info I 27 / 68

Page 24: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Beispiel zu Sequenzen

Python-Interpreter>>> first_name = "Johann">>> last_name = 'Gambolputty'>>> name = first_name + " " + last_name>>>

print(name)Johann Gambolputty>>> print(name.split())['Johann', 'Gambolputty']>>> primes = [2, 3, 5, 7]>>> print(primes[1], sum(primes))3 17>>> squares = (1, 4, 9, 16, 25)>>> print(squares[1:4])(4, 9, 16)

06. November 2018 P. Thiemann – Info I 27 / 68

Page 25: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Beispiel zu Sequenzen

Python-Interpreter>>> first_name = "Johann">>> last_name = 'Gambolputty'>>> name = first_name + " " + last_name>>> print(name)

Johann Gambolputty>>> print(name.split())['Johann', 'Gambolputty']>>> primes = [2, 3, 5, 7]>>> print(primes[1], sum(primes))3 17>>> squares = (1, 4, 9, 16, 25)>>> print(squares[1:4])(4, 9, 16)

06. November 2018 P. Thiemann – Info I 27 / 68

Page 26: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Beispiel zu Sequenzen

Python-Interpreter>>> first_name = "Johann">>> last_name = 'Gambolputty'>>> name = first_name + " " + last_name>>> print(name)Johann Gambolputty>>>

print(name.split())['Johann', 'Gambolputty']>>> primes = [2, 3, 5, 7]>>> print(primes[1], sum(primes))3 17>>> squares = (1, 4, 9, 16, 25)>>> print(squares[1:4])(4, 9, 16)

06. November 2018 P. Thiemann – Info I 27 / 68

Page 27: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Beispiel zu Sequenzen

Python-Interpreter>>> first_name = "Johann">>> last_name = 'Gambolputty'>>> name = first_name + " " + last_name>>> print(name)Johann Gambolputty>>> print(name.split())

['Johann', 'Gambolputty']>>> primes = [2, 3, 5, 7]>>> print(primes[1], sum(primes))3 17>>> squares = (1, 4, 9, 16, 25)>>> print(squares[1:4])(4, 9, 16)

06. November 2018 P. Thiemann – Info I 27 / 68

Page 28: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Beispiel zu Sequenzen

Python-Interpreter>>> first_name = "Johann">>> last_name = 'Gambolputty'>>> name = first_name + " " + last_name>>> print(name)Johann Gambolputty>>> print(name.split())['Johann', 'Gambolputty']>>>

primes = [2, 3, 5, 7]>>> print(primes[1], sum(primes))3 17>>> squares = (1, 4, 9, 16, 25)>>> print(squares[1:4])(4, 9, 16)

06. November 2018 P. Thiemann – Info I 27 / 68

Page 29: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Beispiel zu Sequenzen

Python-Interpreter>>> first_name = "Johann">>> last_name = 'Gambolputty'>>> name = first_name + " " + last_name>>> print(name)Johann Gambolputty>>> print(name.split())['Johann', 'Gambolputty']>>> primes = [2, 3, 5, 7]>>>

print(primes[1], sum(primes))3 17>>> squares = (1, 4, 9, 16, 25)>>> print(squares[1:4])(4, 9, 16)

06. November 2018 P. Thiemann – Info I 27 / 68

Page 30: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Beispiel zu Sequenzen

Python-Interpreter>>> first_name = "Johann">>> last_name = 'Gambolputty'>>> name = first_name + " " + last_name>>> print(name)Johann Gambolputty>>> print(name.split())['Johann', 'Gambolputty']>>> primes = [2, 3, 5, 7]>>> print(primes[1], sum(primes))

3 17>>> squares = (1, 4, 9, 16, 25)>>> print(squares[1:4])(4, 9, 16)

06. November 2018 P. Thiemann – Info I 27 / 68

Page 31: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Beispiel zu Sequenzen

Python-Interpreter>>> first_name = "Johann">>> last_name = 'Gambolputty'>>> name = first_name + " " + last_name>>> print(name)Johann Gambolputty>>> print(name.split())['Johann', 'Gambolputty']>>> primes = [2, 3, 5, 7]>>> print(primes[1], sum(primes))3 17>>>

squares = (1, 4, 9, 16, 25)>>> print(squares[1:4])(4, 9, 16)

06. November 2018 P. Thiemann – Info I 27 / 68

Page 32: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Beispiel zu Sequenzen

Python-Interpreter>>> first_name = "Johann">>> last_name = 'Gambolputty'>>> name = first_name + " " + last_name>>> print(name)Johann Gambolputty>>> print(name.split())['Johann', 'Gambolputty']>>> primes = [2, 3, 5, 7]>>> print(primes[1], sum(primes))3 17>>> squares = (1, 4, 9, 16, 25)>>>

print(squares[1:4])(4, 9, 16)

06. November 2018 P. Thiemann – Info I 27 / 68

Page 33: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Beispiel zu Sequenzen

Python-Interpreter>>> first_name = "Johann">>> last_name = 'Gambolputty'>>> name = first_name + " " + last_name>>> print(name)Johann Gambolputty>>> print(name.split())['Johann', 'Gambolputty']>>> primes = [2, 3, 5, 7]>>> print(primes[1], sum(primes))3 17>>> squares = (1, 4, 9, 16, 25)>>> print(squares[1:4])

(4, 9, 16)

06. November 2018 P. Thiemann – Info I 27 / 68

Page 34: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Beispiel zu Sequenzen

Python-Interpreter>>> first_name = "Johann">>> last_name = 'Gambolputty'>>> name = first_name + " " + last_name>>> print(name)Johann Gambolputty>>> print(name.split())['Johann', 'Gambolputty']>>> primes = [2, 3, 5, 7]>>> print(primes[1], sum(primes))3 17>>> squares = (1, 4, 9, 16, 25)>>> print(squares[1:4])(4, 9, 16)

06. November 2018 P. Thiemann – Info I 27 / 68

Page 35: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Sequenzoperationen

+ Verkettung von Sequenzens[0] Indizierung ab 0 (Zugriff aufs erste Element)s[1:3] Teilsequenz (vom 2. bis 4. Element)

06. November 2018 P. Thiemann – Info I 28 / 68

Page 36: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Strings

Strings in Python enthalten Unicode-Zeichen.Strings werden meistens "auf diese Weise"angegeben, es gibt aber viele alternative Schreibweisen.

06. November 2018 P. Thiemann – Info I 29 / 68

Page 37: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Tupel und Listen

Ein Tupel bzw. eine Liste ist eine Sequenz von Objekten.Tupel werden in runden, Listen in eckigen Klammernnotiert:(2, 1, "Risiko") vs. ["red", "green", "blue"].Tupel und Listen können beliebige Objekte enthalten,natürlich auch andere Tupel und Listen:([18, 20, 22, "Null"], [("spam", [])])Der Hauptunterschied zwischen Tupeln und Listen:

Listen sind veränderlich (mutable).Elemente anhängen, einfügen oder entfernen.Tupel sind unveränderlich (immutable).Ein Tupel ändert sich nie, es enthält immer dieselbenObjekte in derselben Reihenfolge. (Allerdings können sichdie enthaltenen Objekte verändern, z.B. bei Tupeln vonListen.)

06. November 2018 P. Thiemann – Info I 30 / 68

Page 38: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Mehr zu Tupeln

Die Klammern um Tupel sind optional. Sie könnenweggelassen werden, sofern dadurch keineMehrdeutigkeit entsteht:

Python-Interpreter>>> mytuple = 2, 4, 5>>>

print(mytuple)(2, 4, 5)>>> mylist = [(1, 2), (3, 4)] # Klammern notwendig

Ausnahem: Einelementige Tupel schreiben sich ("so",).Bei a, b = 2, 3 werden Tupel komponentenweisezugewiesen (Tuple Unpacking).

06. November 2018 P. Thiemann – Info I 31 / 68

Page 39: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Mehr zu Tupeln

Die Klammern um Tupel sind optional. Sie könnenweggelassen werden, sofern dadurch keineMehrdeutigkeit entsteht:

Python-Interpreter>>> mytuple = 2, 4, 5>>> print(mytuple)

(2, 4, 5)>>> mylist = [(1, 2), (3, 4)] # Klammern notwendig

Ausnahem: Einelementige Tupel schreiben sich ("so",).Bei a, b = 2, 3 werden Tupel komponentenweisezugewiesen (Tuple Unpacking).

06. November 2018 P. Thiemann – Info I 31 / 68

Page 40: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Mehr zu Tupeln

Die Klammern um Tupel sind optional. Sie könnenweggelassen werden, sofern dadurch keineMehrdeutigkeit entsteht:

Python-Interpreter>>> mytuple = 2, 4, 5>>> print(mytuple)(2, 4, 5)>>>

mylist = [(1, 2), (3, 4)] # Klammern notwendig

Ausnahem: Einelementige Tupel schreiben sich ("so",).Bei a, b = 2, 3 werden Tupel komponentenweisezugewiesen (Tuple Unpacking).

06. November 2018 P. Thiemann – Info I 31 / 68

Page 41: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Mehr zu Tupeln

Die Klammern um Tupel sind optional. Sie könnenweggelassen werden, sofern dadurch keineMehrdeutigkeit entsteht:

Python-Interpreter>>> mytuple = 2, 4, 5>>> print(mytuple)(2, 4, 5)>>> mylist = [(1, 2), (3, 4)] # Klammern notwendig

Ausnahem: Einelementige Tupel schreiben sich ("so",).Bei a, b = 2, 3 werden Tupel komponentenweisezugewiesen (Tuple Unpacking).

06. November 2018 P. Thiemann – Info I 31 / 68

Page 42: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Tuple Unpacking

Tuple Unpacking funktioniert auch mit Listen und Stringsund lässt sich sogar schachteln:

Python-Interpreter>>> [a, (b, c), (d, e), f] = (42, (6, 9), "do", [1, 2,3])>>>

print(a, "*", b, "*", c, "*", d, "*", e, "*", f)42 * 6 * 9 * d * o * [1, 2, 3]

06. November 2018 P. Thiemann – Info I 32 / 68

Page 43: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Tuple Unpacking

Tuple Unpacking funktioniert auch mit Listen und Stringsund lässt sich sogar schachteln:

Python-Interpreter>>> [a, (b, c), (d, e), f] = (42, (6, 9), "do", [1, 2,3])>>> print(a, "*", b, "*", c, "*", d, "*", e, "*", f)

42 * 6 * 9 * d * o * [1, 2, 3]

06. November 2018 P. Thiemann – Info I 32 / 68

Page 44: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

SequenzenStrings

Tupel und Listen

Tupel Unpacking

OperationenaufSequenzen

Iteration

Tuple Unpacking

Tuple Unpacking funktioniert auch mit Listen und Stringsund lässt sich sogar schachteln:

Python-Interpreter>>> [a, (b, c), (d, e), f] = (42, (6, 9), "do", [1, 2,3])>>> print(a, "*", b, "*", c, "*", d, "*", e, "*", f)42 * 6 * 9 * d * o * [1, 2, 3]

06. November 2018 P. Thiemann – Info I 32 / 68

Page 45: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Operationen aufSequenzen

06. November 2018 P. Thiemann – Info I 33 / 68

Page 46: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Sequenzen

Strings, Tupel und Listen haben etwas gemeinsam: Sieenthalten andere Objekte in einer bestimmtenReihenfolge und erlauben direkten Zugriff auf dieeinzelnen Komponenten mittels Indizierung.Typen mit dieser Eigenschaft heißen Sequenztypen, ihreInstanzen Sequenzen.

Sequenztypen unterstützen die folgenden Operationen:Verkettung: "Gambol" + "putty" == "Gambolputty"Wiederholung: 2 * "spam" == "spamspam"Indizierung: "Python"[1] == "y"Mitgliedschaftstest: 17 in [11,13,17,19]Slicing: "Monty Python's Flying Circus"[6:12] =="Python"Iteration: for x in "egg"

06. November 2018 P. Thiemann – Info I 35 / 68

Page 47: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Sequenzen

Strings, Tupel und Listen haben etwas gemeinsam: Sieenthalten andere Objekte in einer bestimmtenReihenfolge und erlauben direkten Zugriff auf dieeinzelnen Komponenten mittels Indizierung.Typen mit dieser Eigenschaft heißen Sequenztypen, ihreInstanzen Sequenzen.

Sequenztypen unterstützen die folgenden Operationen:Verkettung: "Gambol" + "putty" == "Gambolputty"Wiederholung: 2 * "spam" == "spamspam"Indizierung: "Python"[1] == "y"Mitgliedschaftstest: 17 in [11,13,17,19]Slicing: "Monty Python's Flying Circus"[6:12] =="Python"Iteration: for x in "egg"

06. November 2018 P. Thiemann – Info I 35 / 68

Page 48: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Verkettung

Python-Interpreter>>> print("Gambol" + "putty")

Gambolputty>>> mylist = ["spam", "egg"]>>> print(["spam"] + mylist)['spam', 'spam', 'egg']>>> primes = (2, 3, 5, 7)>>> print(primes + primes)(2, 3, 5, 7, 2, 3, 5, 7)>>> print(mylist + primes)Traceback (most recent call last): ...TypeError: can only concatenate list (not "tuple") tolist>>> print(mylist + list(primes))['spam', 'egg', 2, 3, 5, 7]

06. November 2018 P. Thiemann – Info I 36 / 68

Page 49: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Verkettung

Python-Interpreter>>> print("Gambol" + "putty")Gambolputty>>>

mylist = ["spam", "egg"]>>> print(["spam"] + mylist)['spam', 'spam', 'egg']>>> primes = (2, 3, 5, 7)>>> print(primes + primes)(2, 3, 5, 7, 2, 3, 5, 7)>>> print(mylist + primes)Traceback (most recent call last): ...TypeError: can only concatenate list (not "tuple") tolist>>> print(mylist + list(primes))['spam', 'egg', 2, 3, 5, 7]

06. November 2018 P. Thiemann – Info I 36 / 68

Page 50: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Verkettung

Python-Interpreter>>> print("Gambol" + "putty")Gambolputty>>> mylist = ["spam", "egg"]>>>

print(["spam"] + mylist)['spam', 'spam', 'egg']>>> primes = (2, 3, 5, 7)>>> print(primes + primes)(2, 3, 5, 7, 2, 3, 5, 7)>>> print(mylist + primes)Traceback (most recent call last): ...TypeError: can only concatenate list (not "tuple") tolist>>> print(mylist + list(primes))['spam', 'egg', 2, 3, 5, 7]

06. November 2018 P. Thiemann – Info I 36 / 68

Page 51: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Verkettung

Python-Interpreter>>> print("Gambol" + "putty")Gambolputty>>> mylist = ["spam", "egg"]>>> print(["spam"] + mylist)

['spam', 'spam', 'egg']>>> primes = (2, 3, 5, 7)>>> print(primes + primes)(2, 3, 5, 7, 2, 3, 5, 7)>>> print(mylist + primes)Traceback (most recent call last): ...TypeError: can only concatenate list (not "tuple") tolist>>> print(mylist + list(primes))['spam', 'egg', 2, 3, 5, 7]

06. November 2018 P. Thiemann – Info I 36 / 68

Page 52: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Verkettung

Python-Interpreter>>> print("Gambol" + "putty")Gambolputty>>> mylist = ["spam", "egg"]>>> print(["spam"] + mylist)['spam', 'spam', 'egg']>>>

primes = (2, 3, 5, 7)>>> print(primes + primes)(2, 3, 5, 7, 2, 3, 5, 7)>>> print(mylist + primes)Traceback (most recent call last): ...TypeError: can only concatenate list (not "tuple") tolist>>> print(mylist + list(primes))['spam', 'egg', 2, 3, 5, 7]

06. November 2018 P. Thiemann – Info I 36 / 68

Page 53: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Verkettung

Python-Interpreter>>> print("Gambol" + "putty")Gambolputty>>> mylist = ["spam", "egg"]>>> print(["spam"] + mylist)['spam', 'spam', 'egg']>>> primes = (2, 3, 5, 7)>>>

print(primes + primes)(2, 3, 5, 7, 2, 3, 5, 7)>>> print(mylist + primes)Traceback (most recent call last): ...TypeError: can only concatenate list (not "tuple") tolist>>> print(mylist + list(primes))['spam', 'egg', 2, 3, 5, 7]

06. November 2018 P. Thiemann – Info I 36 / 68

Page 54: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Verkettung

Python-Interpreter>>> print("Gambol" + "putty")Gambolputty>>> mylist = ["spam", "egg"]>>> print(["spam"] + mylist)['spam', 'spam', 'egg']>>> primes = (2, 3, 5, 7)>>> print(primes + primes)

(2, 3, 5, 7, 2, 3, 5, 7)>>> print(mylist + primes)Traceback (most recent call last): ...TypeError: can only concatenate list (not "tuple") tolist>>> print(mylist + list(primes))['spam', 'egg', 2, 3, 5, 7]

06. November 2018 P. Thiemann – Info I 36 / 68

Page 55: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Verkettung

Python-Interpreter>>> print("Gambol" + "putty")Gambolputty>>> mylist = ["spam", "egg"]>>> print(["spam"] + mylist)['spam', 'spam', 'egg']>>> primes = (2, 3, 5, 7)>>> print(primes + primes)(2, 3, 5, 7, 2, 3, 5, 7)>>>

print(mylist + primes)Traceback (most recent call last): ...TypeError: can only concatenate list (not "tuple") tolist>>> print(mylist + list(primes))['spam', 'egg', 2, 3, 5, 7]

06. November 2018 P. Thiemann – Info I 36 / 68

Page 56: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Verkettung

Python-Interpreter>>> print("Gambol" + "putty")Gambolputty>>> mylist = ["spam", "egg"]>>> print(["spam"] + mylist)['spam', 'spam', 'egg']>>> primes = (2, 3, 5, 7)>>> print(primes + primes)(2, 3, 5, 7, 2, 3, 5, 7)>>> print(mylist + primes)

Traceback (most recent call last): ...TypeError: can only concatenate list (not "tuple") tolist>>> print(mylist + list(primes))['spam', 'egg', 2, 3, 5, 7]

06. November 2018 P. Thiemann – Info I 36 / 68

Page 57: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Verkettung

Python-Interpreter>>> print("Gambol" + "putty")Gambolputty>>> mylist = ["spam", "egg"]>>> print(["spam"] + mylist)['spam', 'spam', 'egg']>>> primes = (2, 3, 5, 7)>>> print(primes + primes)(2, 3, 5, 7, 2, 3, 5, 7)>>> print(mylist + primes)Traceback (most recent call last): ...TypeError: can only concatenate list (not "tuple") tolist>>>

print(mylist + list(primes))['spam', 'egg', 2, 3, 5, 7]

06. November 2018 P. Thiemann – Info I 36 / 68

Page 58: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Verkettung

Python-Interpreter>>> print("Gambol" + "putty")Gambolputty>>> mylist = ["spam", "egg"]>>> print(["spam"] + mylist)['spam', 'spam', 'egg']>>> primes = (2, 3, 5, 7)>>> print(primes + primes)(2, 3, 5, 7, 2, 3, 5, 7)>>> print(mylist + primes)Traceback (most recent call last): ...TypeError: can only concatenate list (not "tuple") tolist>>> print(mylist + list(primes))

['spam', 'egg', 2, 3, 5, 7]

06. November 2018 P. Thiemann – Info I 36 / 68

Page 59: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Verkettung

Python-Interpreter>>> print("Gambol" + "putty")Gambolputty>>> mylist = ["spam", "egg"]>>> print(["spam"] + mylist)['spam', 'spam', 'egg']>>> primes = (2, 3, 5, 7)>>> print(primes + primes)(2, 3, 5, 7, 2, 3, 5, 7)>>> print(mylist + primes)Traceback (most recent call last): ...TypeError: can only concatenate list (not "tuple") tolist>>> print(mylist + list(primes))['spam', 'egg', 2, 3, 5, 7]

06. November 2018 P. Thiemann – Info I 36 / 68

Page 60: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Wiederholung

Python-Interpreter>>> print("*" * 20)

********************>>> print([None, 2, 3] * 3)[None, 2, 3, None, 2, 3, None, 2, 3]>>> print(2 * ("parrot", ["is", "dead"]))('parrot', ['is', 'dead'], 'parrot', ['is', 'dead'])

06. November 2018 P. Thiemann – Info I 37 / 68

Page 61: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Wiederholung

Python-Interpreter>>> print("*" * 20)********************>>>

print([None, 2, 3] * 3)[None, 2, 3, None, 2, 3, None, 2, 3]>>> print(2 * ("parrot", ["is", "dead"]))('parrot', ['is', 'dead'], 'parrot', ['is', 'dead'])

06. November 2018 P. Thiemann – Info I 37 / 68

Page 62: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Wiederholung

Python-Interpreter>>> print("*" * 20)********************>>> print([None, 2, 3] * 3)

[None, 2, 3, None, 2, 3, None, 2, 3]>>> print(2 * ("parrot", ["is", "dead"]))('parrot', ['is', 'dead'], 'parrot', ['is', 'dead'])

06. November 2018 P. Thiemann – Info I 37 / 68

Page 63: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Wiederholung

Python-Interpreter>>> print("*" * 20)********************>>> print([None, 2, 3] * 3)[None, 2, 3, None, 2, 3, None, 2, 3]>>>

print(2 * ("parrot", ["is", "dead"]))('parrot', ['is', 'dead'], 'parrot', ['is', 'dead'])

06. November 2018 P. Thiemann – Info I 37 / 68

Page 64: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Wiederholung

Python-Interpreter>>> print("*" * 20)********************>>> print([None, 2, 3] * 3)[None, 2, 3, None, 2, 3, None, 2, 3]>>> print(2 * ("parrot", ["is", "dead"]))

('parrot', ['is', 'dead'], 'parrot', ['is', 'dead'])

06. November 2018 P. Thiemann – Info I 37 / 68

Page 65: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Wiederholung

Python-Interpreter>>> print("*" * 20)********************>>> print([None, 2, 3] * 3)[None, 2, 3, None, 2, 3, None, 2, 3]>>> print(2 * ("parrot", ["is", "dead"]))('parrot', ['is', 'dead'], 'parrot', ['is', 'dead'])

06. November 2018 P. Thiemann – Info I 37 / 68

Page 66: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Indizierung

Sequenzen können von vorne und von hinten indiziertwerden.Bei Indizierung von vorne hat das erste Element Index 0.Zur Indizierung von hinten dienen negative Indizes. Dabeihat das hinterste Element den Index −1.

Python-Interpreter>>> primes = (2, 3, 5, 7, 11, 13)>>>

print(primes[1], primes[-1])3 13>>> animal = "parrot">>> animal[-2]'o'>>> animal[10]Traceback (most recent call last): ...IndexError: string index out of range

06. November 2018 P. Thiemann – Info I 38 / 68

Page 67: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Indizierung

Sequenzen können von vorne und von hinten indiziertwerden.Bei Indizierung von vorne hat das erste Element Index 0.Zur Indizierung von hinten dienen negative Indizes. Dabeihat das hinterste Element den Index −1.

Python-Interpreter>>> primes = (2, 3, 5, 7, 11, 13)>>> print(primes[1], primes[-1])

3 13>>> animal = "parrot">>> animal[-2]'o'>>> animal[10]Traceback (most recent call last): ...IndexError: string index out of range

06. November 2018 P. Thiemann – Info I 38 / 68

Page 68: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Indizierung

Sequenzen können von vorne und von hinten indiziertwerden.Bei Indizierung von vorne hat das erste Element Index 0.Zur Indizierung von hinten dienen negative Indizes. Dabeihat das hinterste Element den Index −1.

Python-Interpreter>>> primes = (2, 3, 5, 7, 11, 13)>>> print(primes[1], primes[-1])3 13>>>

animal = "parrot">>> animal[-2]'o'>>> animal[10]Traceback (most recent call last): ...IndexError: string index out of range

06. November 2018 P. Thiemann – Info I 38 / 68

Page 69: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Indizierung

Sequenzen können von vorne und von hinten indiziertwerden.Bei Indizierung von vorne hat das erste Element Index 0.Zur Indizierung von hinten dienen negative Indizes. Dabeihat das hinterste Element den Index −1.

Python-Interpreter>>> primes = (2, 3, 5, 7, 11, 13)>>> print(primes[1], primes[-1])3 13>>> animal = "parrot">>>

animal[-2]'o'>>> animal[10]Traceback (most recent call last): ...IndexError: string index out of range

06. November 2018 P. Thiemann – Info I 38 / 68

Page 70: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Indizierung

Sequenzen können von vorne und von hinten indiziertwerden.Bei Indizierung von vorne hat das erste Element Index 0.Zur Indizierung von hinten dienen negative Indizes. Dabeihat das hinterste Element den Index −1.

Python-Interpreter>>> primes = (2, 3, 5, 7, 11, 13)>>> print(primes[1], primes[-1])3 13>>> animal = "parrot">>> animal[-2]

'o'>>> animal[10]Traceback (most recent call last): ...IndexError: string index out of range

06. November 2018 P. Thiemann – Info I 38 / 68

Page 71: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Indizierung

Sequenzen können von vorne und von hinten indiziertwerden.Bei Indizierung von vorne hat das erste Element Index 0.Zur Indizierung von hinten dienen negative Indizes. Dabeihat das hinterste Element den Index −1.

Python-Interpreter>>> primes = (2, 3, 5, 7, 11, 13)>>> print(primes[1], primes[-1])3 13>>> animal = "parrot">>> animal[-2]'o'>>>

animal[10]Traceback (most recent call last): ...IndexError: string index out of range

06. November 2018 P. Thiemann – Info I 38 / 68

Page 72: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Indizierung

Sequenzen können von vorne und von hinten indiziertwerden.Bei Indizierung von vorne hat das erste Element Index 0.Zur Indizierung von hinten dienen negative Indizes. Dabeihat das hinterste Element den Index −1.

Python-Interpreter>>> primes = (2, 3, 5, 7, 11, 13)>>> print(primes[1], primes[-1])3 13>>> animal = "parrot">>> animal[-2]'o'>>> animal[10]

Traceback (most recent call last): ...IndexError: string index out of range

06. November 2018 P. Thiemann – Info I 38 / 68

Page 73: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Indizierung

Sequenzen können von vorne und von hinten indiziertwerden.Bei Indizierung von vorne hat das erste Element Index 0.Zur Indizierung von hinten dienen negative Indizes. Dabeihat das hinterste Element den Index −1.

Python-Interpreter>>> primes = (2, 3, 5, 7, 11, 13)>>> print(primes[1], primes[-1])3 13>>> animal = "parrot">>> animal[-2]'o'>>> animal[10]Traceback (most recent call last): ...IndexError: string index out of range

06. November 2018 P. Thiemann – Info I 38 / 68

Page 74: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Wo sind die Zeichen?

Python hat keinen eigenen Datentyp für Zeichen (chars).Für Python ist ein Zeichen ein String der Länge 1.

Python-Interpreter>>> food = "spam">>>

food'spam'>>> food[0]'s'>>> type(food)<class 'str'>>>> type(food[0])<class 'str'>>>> food[0][0][0][0][0]'s'

06. November 2018 P. Thiemann – Info I 39 / 68

Page 75: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Wo sind die Zeichen?

Python hat keinen eigenen Datentyp für Zeichen (chars).Für Python ist ein Zeichen ein String der Länge 1.

Python-Interpreter>>> food = "spam">>> food

'spam'>>> food[0]'s'>>> type(food)<class 'str'>>>> type(food[0])<class 'str'>>>> food[0][0][0][0][0]'s'

06. November 2018 P. Thiemann – Info I 39 / 68

Page 76: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Wo sind die Zeichen?

Python hat keinen eigenen Datentyp für Zeichen (chars).Für Python ist ein Zeichen ein String der Länge 1.

Python-Interpreter>>> food = "spam">>> food'spam'>>>

food[0]'s'>>> type(food)<class 'str'>>>> type(food[0])<class 'str'>>>> food[0][0][0][0][0]'s'

06. November 2018 P. Thiemann – Info I 39 / 68

Page 77: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Wo sind die Zeichen?

Python hat keinen eigenen Datentyp für Zeichen (chars).Für Python ist ein Zeichen ein String der Länge 1.

Python-Interpreter>>> food = "spam">>> food'spam'>>> food[0]

's'>>> type(food)<class 'str'>>>> type(food[0])<class 'str'>>>> food[0][0][0][0][0]'s'

06. November 2018 P. Thiemann – Info I 39 / 68

Page 78: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Wo sind die Zeichen?

Python hat keinen eigenen Datentyp für Zeichen (chars).Für Python ist ein Zeichen ein String der Länge 1.

Python-Interpreter>>> food = "spam">>> food'spam'>>> food[0]'s'>>>

type(food)<class 'str'>>>> type(food[0])<class 'str'>>>> food[0][0][0][0][0]'s'

06. November 2018 P. Thiemann – Info I 39 / 68

Page 79: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Wo sind die Zeichen?

Python hat keinen eigenen Datentyp für Zeichen (chars).Für Python ist ein Zeichen ein String der Länge 1.

Python-Interpreter>>> food = "spam">>> food'spam'>>> food[0]'s'>>> type(food)

<class 'str'>>>> type(food[0])<class 'str'>>>> food[0][0][0][0][0]'s'

06. November 2018 P. Thiemann – Info I 39 / 68

Page 80: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Wo sind die Zeichen?

Python hat keinen eigenen Datentyp für Zeichen (chars).Für Python ist ein Zeichen ein String der Länge 1.

Python-Interpreter>>> food = "spam">>> food'spam'>>> food[0]'s'>>> type(food)<class 'str'>>>>

type(food[0])<class 'str'>>>> food[0][0][0][0][0]'s'

06. November 2018 P. Thiemann – Info I 39 / 68

Page 81: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Wo sind die Zeichen?

Python hat keinen eigenen Datentyp für Zeichen (chars).Für Python ist ein Zeichen ein String der Länge 1.

Python-Interpreter>>> food = "spam">>> food'spam'>>> food[0]'s'>>> type(food)<class 'str'>>>> type(food[0])

<class 'str'>>>> food[0][0][0][0][0]'s'

06. November 2018 P. Thiemann – Info I 39 / 68

Page 82: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Wo sind die Zeichen?

Python hat keinen eigenen Datentyp für Zeichen (chars).Für Python ist ein Zeichen ein String der Länge 1.

Python-Interpreter>>> food = "spam">>> food'spam'>>> food[0]'s'>>> type(food)<class 'str'>>>> type(food[0])<class 'str'>>>>

food[0][0][0][0][0]'s'

06. November 2018 P. Thiemann – Info I 39 / 68

Page 83: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Wo sind die Zeichen?

Python hat keinen eigenen Datentyp für Zeichen (chars).Für Python ist ein Zeichen ein String der Länge 1.

Python-Interpreter>>> food = "spam">>> food'spam'>>> food[0]'s'>>> type(food)<class 'str'>>>> type(food[0])<class 'str'>>>> food[0][0][0][0][0]

's'

06. November 2018 P. Thiemann – Info I 39 / 68

Page 84: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Wo sind die Zeichen?

Python hat keinen eigenen Datentyp für Zeichen (chars).Für Python ist ein Zeichen ein String der Länge 1.

Python-Interpreter>>> food = "spam">>> food'spam'>>> food[0]'s'>>> type(food)<class 'str'>>>> type(food[0])<class 'str'>>>> food[0][0][0][0][0]'s'

06. November 2018 P. Thiemann – Info I 39 / 68

Page 85: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Mitgliedschaftstest: Der in-Operator

item in seq (seq ist ein Tupel oder eine Liste):True, wenn seq das Element item enthält.substring in string (string ist ein String):True, wenn string den Teilstring substring enthält.

Python-Interpreter>>> print(2 in [1, 4, 2])

True>>> if "spam" in ("ham", "eggs", "sausage"):... print("tasty")...>>> print("m" in "spam", "ham" in "spam", "pam" in"spam")True False True

06. November 2018 P. Thiemann – Info I 40 / 68

Page 86: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Mitgliedschaftstest: Der in-Operator

item in seq (seq ist ein Tupel oder eine Liste):True, wenn seq das Element item enthält.substring in string (string ist ein String):True, wenn string den Teilstring substring enthält.

Python-Interpreter>>> print(2 in [1, 4, 2])True>>>

if "spam" in ("ham", "eggs", "sausage"):... print("tasty")...>>> print("m" in "spam", "ham" in "spam", "pam" in"spam")True False True

06. November 2018 P. Thiemann – Info I 40 / 68

Page 87: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Mitgliedschaftstest: Der in-Operator

item in seq (seq ist ein Tupel oder eine Liste):True, wenn seq das Element item enthält.substring in string (string ist ein String):True, wenn string den Teilstring substring enthält.

Python-Interpreter>>> print(2 in [1, 4, 2])True>>> if "spam" in ("ham", "eggs", "sausage"):... print("tasty")...

>>> print("m" in "spam", "ham" in "spam", "pam" in"spam")True False True

06. November 2018 P. Thiemann – Info I 40 / 68

Page 88: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Mitgliedschaftstest: Der in-Operator

item in seq (seq ist ein Tupel oder eine Liste):True, wenn seq das Element item enthält.substring in string (string ist ein String):True, wenn string den Teilstring substring enthält.

Python-Interpreter>>> print(2 in [1, 4, 2])True>>> if "spam" in ("ham", "eggs", "sausage"):... print("tasty")...>>>

print("m" in "spam", "ham" in "spam", "pam" in"spam")True False True

06. November 2018 P. Thiemann – Info I 40 / 68

Page 89: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Mitgliedschaftstest: Der in-Operator

item in seq (seq ist ein Tupel oder eine Liste):True, wenn seq das Element item enthält.substring in string (string ist ein String):True, wenn string den Teilstring substring enthält.

Python-Interpreter>>> print(2 in [1, 4, 2])True>>> if "spam" in ("ham", "eggs", "sausage"):... print("tasty")...>>> print("m" in "spam", "ham" in "spam", "pam" in"spam")

True False True

06. November 2018 P. Thiemann – Info I 40 / 68

Page 90: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Mitgliedschaftstest: Der in-Operator

item in seq (seq ist ein Tupel oder eine Liste):True, wenn seq das Element item enthält.substring in string (string ist ein String):True, wenn string den Teilstring substring enthält.

Python-Interpreter>>> print(2 in [1, 4, 2])True>>> if "spam" in ("ham", "eggs", "sausage"):... print("tasty")...>>> print("m" in "spam", "ham" in "spam", "pam" in"spam")True False True

06. November 2018 P. Thiemann – Info I 40 / 68

Page 91: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing

Slicing: Ausschneiden von ‚Scheiben‘ aus einer Sequenz:

Python-Interpreter>>> primes = [2, 3, 5, 7, 11, 13]>>>

print(primes[1:4])[3, 5, 7]>>> print(primes[:2])[2, 3]>>> print("egg, sausage and bacon"[-5:])bacon

06. November 2018 P. Thiemann – Info I 41 / 68

Page 92: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing

Slicing: Ausschneiden von ‚Scheiben‘ aus einer Sequenz:

Python-Interpreter>>> primes = [2, 3, 5, 7, 11, 13]>>> print(primes[1:4])

[3, 5, 7]>>> print(primes[:2])[2, 3]>>> print("egg, sausage and bacon"[-5:])bacon

06. November 2018 P. Thiemann – Info I 41 / 68

Page 93: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing

Slicing: Ausschneiden von ‚Scheiben‘ aus einer Sequenz:

Python-Interpreter>>> primes = [2, 3, 5, 7, 11, 13]>>> print(primes[1:4])[3, 5, 7]>>>

print(primes[:2])[2, 3]>>> print("egg, sausage and bacon"[-5:])bacon

06. November 2018 P. Thiemann – Info I 41 / 68

Page 94: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing

Slicing: Ausschneiden von ‚Scheiben‘ aus einer Sequenz:

Python-Interpreter>>> primes = [2, 3, 5, 7, 11, 13]>>> print(primes[1:4])[3, 5, 7]>>> print(primes[:2])

[2, 3]>>> print("egg, sausage and bacon"[-5:])bacon

06. November 2018 P. Thiemann – Info I 41 / 68

Page 95: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing

Slicing: Ausschneiden von ‚Scheiben‘ aus einer Sequenz:

Python-Interpreter>>> primes = [2, 3, 5, 7, 11, 13]>>> print(primes[1:4])[3, 5, 7]>>> print(primes[:2])[2, 3]>>>

print("egg, sausage and bacon"[-5:])bacon

06. November 2018 P. Thiemann – Info I 41 / 68

Page 96: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing

Slicing: Ausschneiden von ‚Scheiben‘ aus einer Sequenz:

Python-Interpreter>>> primes = [2, 3, 5, 7, 11, 13]>>> print(primes[1:4])[3, 5, 7]>>> print(primes[:2])[2, 3]>>> print("egg, sausage and bacon"[-5:])

bacon

06. November 2018 P. Thiemann – Info I 41 / 68

Page 97: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing

Slicing: Ausschneiden von ‚Scheiben‘ aus einer Sequenz:

Python-Interpreter>>> primes = [2, 3, 5, 7, 11, 13]>>> print(primes[1:4])[3, 5, 7]>>> print(primes[:2])[2, 3]>>> print("egg, sausage and bacon"[-5:])bacon

06. November 2018 P. Thiemann – Info I 41 / 68

Page 98: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing: Erklärung

seq[i:j] liefert den Bereich [i, j), also die Elemente anden Positionen i, i +1, . . . , j−1:("do", "re", 5, 7)[1:3] == ("re", 5)Ohne i beginnt der Bereich an Position 0:("do", "re", 5, 7)[:3] == ("do", "re", 5)Ohne j endet der Bereich am Ende der Folge:("do", "re", 5, 7)[1:] == ("re", 5, 7)Der slice Operator [:] liefert eine Kopie der Folge:("do", "re", 5, 7)[:] == ("do", "re", 5, 7)

06. November 2018 P. Thiemann – Info I 42 / 68

Page 99: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing: Erklärung (2)

Beim Slicing gibt es keine Indexfehler. Bereiche jenseitsdes Endes der Folge sind leer.

Python-Interpreter>>> "spam"[2:10]

'am'>>> "spam"[-6:3]'spa'>>> "spam"[7:]''

Auch Slicing kann ‚von hinten zählen‘.Z.B. liefert seq[-3:] die drei letzten Elemente.

06. November 2018 P. Thiemann – Info I 43 / 68

Page 100: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing: Erklärung (2)

Beim Slicing gibt es keine Indexfehler. Bereiche jenseitsdes Endes der Folge sind leer.

Python-Interpreter>>> "spam"[2:10]'am'>>>

"spam"[-6:3]'spa'>>> "spam"[7:]''

Auch Slicing kann ‚von hinten zählen‘.Z.B. liefert seq[-3:] die drei letzten Elemente.

06. November 2018 P. Thiemann – Info I 43 / 68

Page 101: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing: Erklärung (2)

Beim Slicing gibt es keine Indexfehler. Bereiche jenseitsdes Endes der Folge sind leer.

Python-Interpreter>>> "spam"[2:10]'am'>>> "spam"[-6:3]

'spa'>>> "spam"[7:]''

Auch Slicing kann ‚von hinten zählen‘.Z.B. liefert seq[-3:] die drei letzten Elemente.

06. November 2018 P. Thiemann – Info I 43 / 68

Page 102: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing: Erklärung (2)

Beim Slicing gibt es keine Indexfehler. Bereiche jenseitsdes Endes der Folge sind leer.

Python-Interpreter>>> "spam"[2:10]'am'>>> "spam"[-6:3]'spa'>>>

"spam"[7:]''

Auch Slicing kann ‚von hinten zählen‘.Z.B. liefert seq[-3:] die drei letzten Elemente.

06. November 2018 P. Thiemann – Info I 43 / 68

Page 103: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing: Erklärung (2)

Beim Slicing gibt es keine Indexfehler. Bereiche jenseitsdes Endes der Folge sind leer.

Python-Interpreter>>> "spam"[2:10]'am'>>> "spam"[-6:3]'spa'>>> "spam"[7:]

''

Auch Slicing kann ‚von hinten zählen‘.Z.B. liefert seq[-3:] die drei letzten Elemente.

06. November 2018 P. Thiemann – Info I 43 / 68

Page 104: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing: Erklärung (2)

Beim Slicing gibt es keine Indexfehler. Bereiche jenseitsdes Endes der Folge sind leer.

Python-Interpreter>>> "spam"[2:10]'am'>>> "spam"[-6:3]'spa'>>> "spam"[7:]''

Auch Slicing kann ‚von hinten zählen‘.Z.B. liefert seq[-3:] die drei letzten Elemente.

06. November 2018 P. Thiemann – Info I 43 / 68

Page 105: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing: Schrittweite

Beim erweiterten Slicing gibt es zusätzlich noch eineSchrittweite:

Python-Interpreter>>> zahlen = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>>

zahlen[1:7:2][1, 3, 5]>>> zahlen[1:8:2][1, 3, 5, 7]>>> zahlen[7:2:-1][7, 6, 5, 4, 3]>>> zahlen[::-1][9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

06. November 2018 P. Thiemann – Info I 44 / 68

Page 106: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing: Schrittweite

Beim erweiterten Slicing gibt es zusätzlich noch eineSchrittweite:

Python-Interpreter>>> zahlen = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> zahlen[1:7:2]

[1, 3, 5]>>> zahlen[1:8:2][1, 3, 5, 7]>>> zahlen[7:2:-1][7, 6, 5, 4, 3]>>> zahlen[::-1][9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

06. November 2018 P. Thiemann – Info I 44 / 68

Page 107: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing: Schrittweite

Beim erweiterten Slicing gibt es zusätzlich noch eineSchrittweite:

Python-Interpreter>>> zahlen = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> zahlen[1:7:2][1, 3, 5]>>>

zahlen[1:8:2][1, 3, 5, 7]>>> zahlen[7:2:-1][7, 6, 5, 4, 3]>>> zahlen[::-1][9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

06. November 2018 P. Thiemann – Info I 44 / 68

Page 108: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing: Schrittweite

Beim erweiterten Slicing gibt es zusätzlich noch eineSchrittweite:

Python-Interpreter>>> zahlen = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> zahlen[1:7:2][1, 3, 5]>>> zahlen[1:8:2]

[1, 3, 5, 7]>>> zahlen[7:2:-1][7, 6, 5, 4, 3]>>> zahlen[::-1][9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

06. November 2018 P. Thiemann – Info I 44 / 68

Page 109: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing: Schrittweite

Beim erweiterten Slicing gibt es zusätzlich noch eineSchrittweite:

Python-Interpreter>>> zahlen = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> zahlen[1:7:2][1, 3, 5]>>> zahlen[1:8:2][1, 3, 5, 7]>>>

zahlen[7:2:-1][7, 6, 5, 4, 3]>>> zahlen[::-1][9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

06. November 2018 P. Thiemann – Info I 44 / 68

Page 110: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing: Schrittweite

Beim erweiterten Slicing gibt es zusätzlich noch eineSchrittweite:

Python-Interpreter>>> zahlen = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> zahlen[1:7:2][1, 3, 5]>>> zahlen[1:8:2][1, 3, 5, 7]>>> zahlen[7:2:-1]

[7, 6, 5, 4, 3]>>> zahlen[::-1][9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

06. November 2018 P. Thiemann – Info I 44 / 68

Page 111: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing: Schrittweite

Beim erweiterten Slicing gibt es zusätzlich noch eineSchrittweite:

Python-Interpreter>>> zahlen = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> zahlen[1:7:2][1, 3, 5]>>> zahlen[1:8:2][1, 3, 5, 7]>>> zahlen[7:2:-1][7, 6, 5, 4, 3]>>>

zahlen[::-1][9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

06. November 2018 P. Thiemann – Info I 44 / 68

Page 112: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing: Schrittweite

Beim erweiterten Slicing gibt es zusätzlich noch eineSchrittweite:

Python-Interpreter>>> zahlen = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> zahlen[1:7:2][1, 3, 5]>>> zahlen[1:8:2][1, 3, 5, 7]>>> zahlen[7:2:-1][7, 6, 5, 4, 3]>>> zahlen[::-1]

[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

06. November 2018 P. Thiemann – Info I 44 / 68

Page 113: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Slicing: Schrittweite

Beim erweiterten Slicing gibt es zusätzlich noch eineSchrittweite:

Python-Interpreter>>> zahlen = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> zahlen[1:7:2][1, 3, 5]>>> zahlen[1:8:2][1, 3, 5, 7]>>> zahlen[7:2:-1][7, 6, 5, 4, 3]>>> zahlen[::-1][9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

06. November 2018 P. Thiemann – Info I 44 / 68

Page 114: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Typkonversion

list, tuple, und str konvertieren zwischen den Sequenztypen(aber manchmal unerwartet).

Python-Interpreter>>>

tuple([0, 1, 2])(0, 1, 2)>>> list(('spam', 'egg'))['spam', 'egg']>>> list('spam')['s', 'p', 'a', 'm']>>> tuple('spam')('s', 'p', 'a', 'm')>>> str(['a', 'b', 'c'])"['a', 'b', 'c']"

06. November 2018 P. Thiemann – Info I 45 / 68

Page 115: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Typkonversion

list, tuple, und str konvertieren zwischen den Sequenztypen(aber manchmal unerwartet).

Python-Interpreter>>> tuple([0, 1, 2])

(0, 1, 2)>>> list(('spam', 'egg'))['spam', 'egg']>>> list('spam')['s', 'p', 'a', 'm']>>> tuple('spam')('s', 'p', 'a', 'm')>>> str(['a', 'b', 'c'])"['a', 'b', 'c']"

06. November 2018 P. Thiemann – Info I 45 / 68

Page 116: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Typkonversion

list, tuple, und str konvertieren zwischen den Sequenztypen(aber manchmal unerwartet).

Python-Interpreter>>> tuple([0, 1, 2])(0, 1, 2)>>>

list(('spam', 'egg'))['spam', 'egg']>>> list('spam')['s', 'p', 'a', 'm']>>> tuple('spam')('s', 'p', 'a', 'm')>>> str(['a', 'b', 'c'])"['a', 'b', 'c']"

06. November 2018 P. Thiemann – Info I 45 / 68

Page 117: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Typkonversion

list, tuple, und str konvertieren zwischen den Sequenztypen(aber manchmal unerwartet).

Python-Interpreter>>> tuple([0, 1, 2])(0, 1, 2)>>> list(('spam', 'egg'))

['spam', 'egg']>>> list('spam')['s', 'p', 'a', 'm']>>> tuple('spam')('s', 'p', 'a', 'm')>>> str(['a', 'b', 'c'])"['a', 'b', 'c']"

06. November 2018 P. Thiemann – Info I 45 / 68

Page 118: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Typkonversion

list, tuple, und str konvertieren zwischen den Sequenztypen(aber manchmal unerwartet).

Python-Interpreter>>> tuple([0, 1, 2])(0, 1, 2)>>> list(('spam', 'egg'))['spam', 'egg']>>>

list('spam')['s', 'p', 'a', 'm']>>> tuple('spam')('s', 'p', 'a', 'm')>>> str(['a', 'b', 'c'])"['a', 'b', 'c']"

06. November 2018 P. Thiemann – Info I 45 / 68

Page 119: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Typkonversion

list, tuple, und str konvertieren zwischen den Sequenztypen(aber manchmal unerwartet).

Python-Interpreter>>> tuple([0, 1, 2])(0, 1, 2)>>> list(('spam', 'egg'))['spam', 'egg']>>> list('spam')

['s', 'p', 'a', 'm']>>> tuple('spam')('s', 'p', 'a', 'm')>>> str(['a', 'b', 'c'])"['a', 'b', 'c']"

06. November 2018 P. Thiemann – Info I 45 / 68

Page 120: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Typkonversion

list, tuple, und str konvertieren zwischen den Sequenztypen(aber manchmal unerwartet).

Python-Interpreter>>> tuple([0, 1, 2])(0, 1, 2)>>> list(('spam', 'egg'))['spam', 'egg']>>> list('spam')['s', 'p', 'a', 'm']>>>

tuple('spam')('s', 'p', 'a', 'm')>>> str(['a', 'b', 'c'])"['a', 'b', 'c']"

06. November 2018 P. Thiemann – Info I 45 / 68

Page 121: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Typkonversion

list, tuple, und str konvertieren zwischen den Sequenztypen(aber manchmal unerwartet).

Python-Interpreter>>> tuple([0, 1, 2])(0, 1, 2)>>> list(('spam', 'egg'))['spam', 'egg']>>> list('spam')['s', 'p', 'a', 'm']>>> tuple('spam')

('s', 'p', 'a', 'm')>>> str(['a', 'b', 'c'])"['a', 'b', 'c']"

06. November 2018 P. Thiemann – Info I 45 / 68

Page 122: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Typkonversion

list, tuple, und str konvertieren zwischen den Sequenztypen(aber manchmal unerwartet).

Python-Interpreter>>> tuple([0, 1, 2])(0, 1, 2)>>> list(('spam', 'egg'))['spam', 'egg']>>> list('spam')['s', 'p', 'a', 'm']>>> tuple('spam')('s', 'p', 'a', 'm')>>>

str(['a', 'b', 'c'])"['a', 'b', 'c']"

06. November 2018 P. Thiemann – Info I 45 / 68

Page 123: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Typkonversion

list, tuple, und str konvertieren zwischen den Sequenztypen(aber manchmal unerwartet).

Python-Interpreter>>> tuple([0, 1, 2])(0, 1, 2)>>> list(('spam', 'egg'))['spam', 'egg']>>> list('spam')['s', 'p', 'a', 'm']>>> tuple('spam')('s', 'p', 'a', 'm')>>> str(['a', 'b', 'c'])

"['a', 'b', 'c']"

06. November 2018 P. Thiemann – Info I 45 / 68

Page 124: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Typkonversion

list, tuple, und str konvertieren zwischen den Sequenztypen(aber manchmal unerwartet).

Python-Interpreter>>> tuple([0, 1, 2])(0, 1, 2)>>> list(('spam', 'egg'))['spam', 'egg']>>> list('spam')['s', 'p', 'a', 'm']>>> tuple('spam')('s', 'p', 'a', 'm')>>> str(['a', 'b', 'c'])"['a', 'b', 'c']"

06. November 2018 P. Thiemann – Info I 45 / 68

Page 125: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Weitere Sequenzoperationen 1

sum(seq):Berechnet die Summe einer Zahlensequenz.min(seq), min(x, y, ...):Berechnet das Minimum einer Sequenz (erste Form)bzw. der Argumente (zweite Form).

Sequenzen werden lexikographisch verglichen.Der Versuch, das Minimum konzeptuell unvergleichbarerTypen (etwa Zahlen und Listen) zu bilden, führt zu einemTypeError.

max(seq), max(x, y, ...): analog zu min

Python-Interpreter>>> max([1, 23, 42, 5])

42>>> sum([1, 23, 42, 5])71

06. November 2018 P. Thiemann – Info I 46 / 68

Page 126: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Weitere Sequenzoperationen 1

sum(seq):Berechnet die Summe einer Zahlensequenz.min(seq), min(x, y, ...):Berechnet das Minimum einer Sequenz (erste Form)bzw. der Argumente (zweite Form).

Sequenzen werden lexikographisch verglichen.Der Versuch, das Minimum konzeptuell unvergleichbarerTypen (etwa Zahlen und Listen) zu bilden, führt zu einemTypeError.

max(seq), max(x, y, ...): analog zu min

Python-Interpreter>>> max([1, 23, 42, 5])42>>>

sum([1, 23, 42, 5])71

06. November 2018 P. Thiemann – Info I 46 / 68

Page 127: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Weitere Sequenzoperationen 1

sum(seq):Berechnet die Summe einer Zahlensequenz.min(seq), min(x, y, ...):Berechnet das Minimum einer Sequenz (erste Form)bzw. der Argumente (zweite Form).

Sequenzen werden lexikographisch verglichen.Der Versuch, das Minimum konzeptuell unvergleichbarerTypen (etwa Zahlen und Listen) zu bilden, führt zu einemTypeError.

max(seq), max(x, y, ...): analog zu min

Python-Interpreter>>> max([1, 23, 42, 5])42>>> sum([1, 23, 42, 5])

71

06. November 2018 P. Thiemann – Info I 46 / 68

Page 128: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Weitere Sequenzoperationen 1

sum(seq):Berechnet die Summe einer Zahlensequenz.min(seq), min(x, y, ...):Berechnet das Minimum einer Sequenz (erste Form)bzw. der Argumente (zweite Form).

Sequenzen werden lexikographisch verglichen.Der Versuch, das Minimum konzeptuell unvergleichbarerTypen (etwa Zahlen und Listen) zu bilden, führt zu einemTypeError.

max(seq), max(x, y, ...): analog zu min

Python-Interpreter>>> max([1, 23, 42, 5])42>>> sum([1, 23, 42, 5])7106. November 2018 P. Thiemann – Info I 46 / 68

Page 129: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Weitere Sequenzoperationen 2

any(seq):Äquivalent zu elem1 or elem2 or elem3 or ...,wobei elemi die Elemente von seq sind und nur Trueoder False zurück geliefert wird.all(seq): analog zu any, aber mitelem1 and elem2 and elem3 and ...

06. November 2018 P. Thiemann – Info I 47 / 68

Page 130: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzenVerkettung

Wiederholung

Indizierung

Mitgliedschaftstest

Slicing

Typkonversion

Weitere Sequenz-Funktionen

Iteration

Weitere Sequenzoperationen 3

len(seq):Berechnet die Länge einer Sequenz.sorted(seq):Liefert eine Liste, die dieselben Elemente hat wie seq,aber (stabil) sortiert ist.

06. November 2018 P. Thiemann – Info I 48 / 68

Page 131: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

IterationNützlicheFunktionen

Iteration

06. November 2018 P. Thiemann – Info I 49 / 68

Page 132: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

IterationNützlicheFunktionen

Iteration

Durchlaufen von Sequenzen mit for-Schleifen:

Python-Interpreter>>> primes = [2, 3, 5, 7]>>> product = 1>>> for number in primes:... product *= number...>>> print(product)210

Visualisierung

06. November 2018 P. Thiemann – Info I 51 / 68

Page 133: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

IterationNützlicheFunktionen

Iteration (2)

for funktioniert mit allen Sequenztypen:

Python-Interpreter>>> for character in "spam":... print(character * 2)...ssppaamm>>> for ingredient in ("spam", "spam", "egg"):... if ingredient == "spam":... print("tasty!")...tasty!tasty!

06. November 2018 P. Thiemann – Info I 52 / 68

Page 134: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

IterationNützlicheFunktionen

break, continue, else

Im Zusammenhang mit Schleifen sind die folgenden dreiAnweisungen interessant:

break beendet eine Schleife vorzeitig.continue beendet die aktuelle Schleifeniterationvorzeitig, d.h. springt zum Schleifenkopf und setzt dieSchleifenvariable auf den nächsten Wert.Schleifen können einen else-Zweig haben. Dieser wirdnach Beendigung der Schleife ausgeführt, und zwargenau dann, wenn die Schleife nicht mit break verlassenwurde.

06. November 2018 P. Thiemann – Info I 53 / 68

Page 135: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

IterationNützlicheFunktionen

break, continue und else: Beispiel

foods_and_amounts = [("sausage", 2), ("eggs", 0),("spam", 2), ("ham", 1)]

for fa in foods_and_amounts:food, amount = faif amount == 0:continue

if food == "spam":print(amount, "tasty piece(s) of spam.")break

else:print("No spam!")

# Ausgabe:# 2 tasty piece(s) of spam.

06. November 2018 P. Thiemann – Info I 54 / 68

Page 136: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

IterationNützlicheFunktionen

Nützliche Funktionen im Zusammenhang mitfor-Schleifen

Einige Funktionen tauchen häufig im Zusammenhang mitfor-Schleifen auf:

rangezipreversed

06. November 2018 P. Thiemann – Info I 55 / 68

Page 137: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

IterationNützlicheFunktionen

range

Konzeptuell erzeugt range eine Liste von Indexen fürSchleifendurchläufe:

range(stop) ergibt0, 1, . . ., stop-1range(start, stop) ergibtstart, start+1, . . ., stop-1range(start, stop, step) ergibtstart, start + step, start + 2 * step, . . .,stop-1

range spart gegenüber einer ‚echten‘ Liste Speicherplatz,da gerade keine Liste angelegt werden muss.

06. November 2018 P. Thiemann – Info I 56 / 68

Page 138: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

IterationNützlicheFunktionen

range: Beispiele

Python-Interpreter>>> range(5)range(0, 5)>>> range(3, 30, 10)range(3, 30, 10)>>> list(range(3, 30, 10))[3, 13, 23]>>> for i in range(3, 6):... print(i, "** 3 =", i ** 3)...3 ** 3 = 274 ** 3 = 645 ** 3 = 125

06. November 2018 P. Thiemann – Info I 57 / 68

Page 139: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

IterationNützlicheFunktionen

zip (1)

Die Funktion zip nimmt eine oder mehrere Sequenzenund liefert eine Liste von Tupeln mit korrespondierendenElementen.Auch zip erzeugt keine ‚richtige‘ Liste, sondern einenIterator; der Listen-Konstruktor erzeugt daraus einerichtige Liste.

Python-Interpreter>>> meat = ["spam", "ham", "beacon"]>>> sidedish = ["spam", "pasta", "chips"]>>> print(list(zip(meat,sidedish)))[('spam', 'spam'), ('ham', 'pasta'), ('beacon','chips')]

06. November 2018 P. Thiemann – Info I 58 / 68

Page 140: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

IterationNützlicheFunktionen

zip (2)

Besonders nützlich ist zip, um mehrere Sequenzenparallel zu durchlaufen:

Python-Interpreter>>> for xyz in zip("ham", "spam", range(5, 10)):... x, y, z = xyz... print(x, y, z)...h s 5a p 6m a 7

Sind die Eingabesequenzen unterschiedlich lang, ist dasErgebnis so lang wie die kürzeste Eingabe.

06. November 2018 P. Thiemann – Info I 59 / 68

Page 141: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

IterationNützlicheFunktionen

reversed

Die Funktion reversed ermöglicht das Durchlaufen einerSequenz in umgekehrter Richtung.

Python-Interpreter>>> for x in reversed("ham"): ... print(x)...mah

06. November 2018 P. Thiemann – Info I 60 / 68

Page 142: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

IterationNützlicheFunktionen

Beispiel Iteration (I)

FakultätsfunktionZu einer positiven ganzen Zahl soll die Fakultät berechnetwerden.

0! = 1 (n +1)! = (n +1) ·n! (1)

Schritt 1: Bezeichner und DatentypenEntwickle eine Funktion fac, die die Fakultät einer positivenganzen Zahl berechnet. Eingabe ist

n : int (mit n >= 0)Ausgabe ist ein int.

06. November 2018 P. Thiemann – Info I 61 / 68

Page 143: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

IterationNützlicheFunktionen

Nächste Schritte

Schritt 2: Funktionsgerüst� �def fac(

n : int # assume n >= 0) -> int

# fill inreturn� �

Schritt 3: Beispiele� �fac(0) == 1fac(1) == 1fac(3) == 6� �06. November 2018 P. Thiemann – Info I 62 / 68

Page 144: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

IterationNützlicheFunktionen

Ergebnis

� �def fac(

n : int) -> int:

result = 1for i in range(1, n+1):

result = result * ireturn result� �

06. November 2018 P. Thiemann – Info I 63 / 68

Page 145: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

IterationNützlicheFunktionen

Beispiel Iteration (II)

Produkt einer SequenzAus einer Sequenz von Zahlen soll das Produkt der Zahlenberechnet werden.

Schritt 1: Bezeichner und DatentypenEntwickle eine Funktion product, die das Produkt einer Listevon Zahlen berechnet. Eingabe ist

xs # sequence (dafür gibt es keinen Typ)Ausgabe ist eine Zahl (dafür auch kein Typ), das Produkt derElemente der Eingabe.

06. November 2018 P. Thiemann – Info I 64 / 68

Page 146: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

IterationNützlicheFunktionen

Nächste Schritte

Schritt 2: Funktionsgerüst� �def product(

xs # sequence): # number

# fill inreturn� �

Schritt 3: Beispiele� �product ([]) == 1product ([42]) == 42product ([3 ,2,1]) == 3 * product ([2 ,1]) == 6product ([1,-1,1]) == -1� �06. November 2018 P. Thiemann – Info I 65 / 68

Page 147: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

IterationNützlicheFunktionen

Neuer Schritt: Gerüst zur Verarbeitung vonSequenzen

Falls ein Argument eine Sequenz (Liste, Tupel, String, . . . ) ist,dann ist es naheliegend, dass diese Sequenz durchlaufenwird.� �def product(

xs # sequence): # number

# fill infor x in xs:

# fill in action for each elementreturn� �

06. November 2018 P. Thiemann – Info I 66 / 68

Page 148: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

IterationNützlicheFunktionen

Ergebnis

� �def product(

xs # sequence): # number

result = 1 # product ([])for x in xs:

result = result * xreturn result� �

06. November 2018 P. Thiemann – Info I 67 / 68

Page 149: Informatik I: Einführung in die Programmierung...Programme Programme schreiben Programme starten Programme entwickeln Sequenzen Strings TupelundListen TupelUnpacking Operationen auf

Programme

Programmeschreiben

Programmestarten

Programmeentwickeln

Sequenzen

OperationenaufSequenzen

IterationNützlicheFunktionen

Zusammenfassung

Wollen wir richtige Programme schreiben, brauchen wirWerkzeuge (Tools).Texteditor (nicht Word!), möglichst mit integriertemSyntaxchecker.Werden Zeilen zu lang, müssen sie umgebrochenwerden.Kommentare sind hilfreich, um das Programm zuverstehen.Block-, Fließtext und doctsring-KommentarePython-Programme können auf viele verschiedene Artengestartet werden.IDLE ist eine einfache Python IDE (IntegratedDevelopment Environment).

06. November 2018 P. Thiemann – Info I 68 / 68