Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python...

58
Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende Einführung in Python Arne Hüffmeier 1 / 58

Transcript of Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python...

Page 1: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Einführung in Python

Arne Hüffmeier

1 / 58

Page 2: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

1 Ziele der Vorlesung

2 Einstieg in Python

3 Variablen

4 Blöcke

5 Abfragen

6 Schleifen

7 Listen

8 Ende

2 / 58

Page 3: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Was soll vermittelt werden?

Problemorientiertes Denken

3 / 58

Page 4: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Warum Python

Warum Python ?Vorteile

einfache Syntaxkein unnötiger Overheadrelativ einfache Konstrukteviele Funktionen gibt es schon

Nachteilelangsamere Ausführung

4 / 58

Page 5: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Geany und Hello World

Geany einrichten

5 / 58

Page 6: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Geany und Hello World

Geany einrichten

Abbildung: Neue Python Datei erstellen.

6 / 58

Page 7: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Geany und Hello World

Geany einrichten

Abbildung: Kommandos zum Erstellen konfigurieren.

7 / 58

Page 8: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Geany und Hello World

Geany einrichten

Abbildung: Aus python python3 machen8 / 58

Page 9: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Das Erste Programm

1 p r i n t ( "Hallo␣World" )

Das print gibt an, dass etwas ausgegeben werden soll.In den Anführungszeichen kann ein beliebiger Text stehen.

9 / 58

Page 10: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Operationen

Was können wir jetzt damit machen?

Wir können Text ausgeben ;-)Wir können rechnen.

10 / 58

Page 11: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Operationen

p r i n t (10 + 2)

p r i n t (10 − 2)

p r i n t (10 ∗ 2)

p r i n t (10 + 3 + 2)

p r i n t (10 % 3)

p r i n t (10 ∗∗ 3)

11 / 58

Page 12: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Infos über print

Ein paar Infos am Rande

Infos über print

p r i n t ( "Hallo" )p r i n t ( "Du␣Da" )

Der print Befehl gibt eine Zeile aus. Somit würde das

HalloDu Da

ergeben. Man kann aber den Zeilenumbruch am Endeunterdrücken oder durch etwas anderes ersetzen.p r i n t ( "hallo" , end="" )p r i n t ( "Du␣Da" )

Wie Python das macht und warum das end nicht in ” steht, klärenwir bei dem Thema Funktionen.

12 / 58

Page 13: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Infos über print

Noch ein paar Infos am Rande

Infos über printEs ist auch möglich mehrere Dinge in einem print auszugebenp r i n t ( "Hallo" , "Du" , "Da" )

AusgabeH a l l o Du Da

Wenn man keine Leerzeichen haben will, kann man das so machenp r i n t ( "Hallo"+"Du"+"Da" )

oder sop r i n t ( "Hallo" , "Du" , "Da" , sep=’’ )

13 / 58

Page 14: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Infos über print

Numerische Operationen

+ Addition- Subtraktion* Multiplikation/ Division% Modulo (Division mit Rest)** Potenz

14 / 58

Page 15: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Variablen

Aus der Schule kennt ihr

f (x) = . . .

Das x ist eine Variable, die für eine beliebige Zahl steht.

In der Informatik ist eine Variable ein Zwischenspeicher für einenWert.

15 / 58

Page 16: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Typen

Variablentypen

Beispiele für Typenboolean: True oder False

int: 42float: 3.141

16 / 58

Page 17: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Typen

Wie benutzt man Variablen?Da Python auch weiß welcher Datentyp wie aussieht, ist daseinfach

1 a = 12 b = True3 c = 3.48984

Wichtig !!!: Zum Trennen von Vor- und Nachkommastelle wirdkein Komma sondern ein Punkt verwendet.

17 / 58

Page 18: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Umgang mit Typen

a = 5b = 10p r i n t ( a + b )

p r i n t ( a − b )

p r i n t ( a + b )

p r i n t ( a % b )

c = Truep r i n t ( c )

18 / 58

Page 19: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Numerische Operatoren

Numerische Operationen

+ Addition- Subtraktion* Multiplikation/ Division% Modulo (Division mit Rest)

+= Addition mit Zuweisunga += b -> a = a + b

-= Subtraktion mit Zuweisunga -= b -> a = a - b

19 / 58

Page 20: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Numerische Operatoren

a = 10b = 20

a += bp r i n t ( a )

b −= ap r i n t ( b )

20 / 58

Page 21: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Numerische Operatoren

Noch ein paar Infos am Rande

Python kann auch die Rechnenregeln5+5*3 ist nicht das gleiche wie (5+5)*3

und es versucht den Typ zu raten

1 2 3 . 0 / 3 . 0 = 7.666666666666667

und1 23/3 = 7.666666666666667

aber1 21/7 = 3 .0

21 / 58

Page 22: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Block 1

Block 2

Block 3

Block 2 weiter

Block 1 weiter

Damit der Code übersichtlicherist, kann und muss man ihn in Blö-cke unterteilen.

Die Einrückung besteht aus 4Leerzeichen oder einem Tab.

WICHTIG: Innerhalb einer Dateidarf nicht gewechselt werden.

22 / 58

Page 23: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Python Keywords

1 pas s

Mit pass kann man sagen, dass nichts passiert. Dies ist wichtig,wenn eine Einrückung erforderlich ist, aber dort nichts gemachtwerden soll.

1 # I c h b i n e i n kommentar

Alle Zeilen, die mit einer # anfangen, werden von Python ignoriert.

23 / 58

Page 24: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

AbfragenBis jetzt ist es so, dass jede Zeile, die ihr in die Datei schreibt,auch ausgeführt wird.Das ist aber nicht immer gewollt und somit gibt es bedingteBefehlsblöcke (if).

24 / 58

Page 25: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

if-Abfrage

Ist der Himmel Blau ? nein

ja

25 / 58

Page 26: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Frage?Wie sähe die Abfrage aus, wenn man überprüfen möchte, ob eineZahl größer 5 ist?

Antwort

i > 5 nein

ja

26 / 58

Page 27: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

In Python

if-Anweisung in Python

1 i f (5 < 6) :2 p r i n t ( "5␣ist␣kleiner␣6" )

Wenn 5 kleiner als 6 ist, wird der print Befehl ausgeführt sonstnicht.

27 / 58

Page 28: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Einrückung

Blockanweisungen in Python

1 i f (5 < 6) :2 p r i n t ( "5␣ist␣kleiner␣6" )34 i f (4 < 6) :5 p r i n t ( "4␣ist␣kleiner␣6" )67 i f (3 < 7) :8 p r i n t ( "3␣ist␣kleiner␣7" )

Nur wenn die if-Anweisung in Zeile 1 wahr ist, wird die in Zeile 4überprüft. Und nur wenn diese wahr ist, die in Zeile 7.

28 / 58

Page 29: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Auswertung

if-Anweisung in Python

1 i f (5 < 6) :2 p r i n t ( "5␣ist␣kleiner␣6" )

In den runden Klammern in Zeile 1 können unterschiedliche Dingestehen. Sie müssen aber überprüfbar sein, sodass der Computerbestimmen kann, ob sie wahr oder falsch sind.

Abstrakter Aufbau

1 i f ( <a u s w e r t b a r e Aussage> ) :2

29 / 58

Page 30: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Auswertung

strikt kleineri f (5 < 6) :

strikt größeri f (5 > 6) :

kleiner gleichi f (5 <= 6) :

größer gleichi f (5 >= 6) :

ungleichi f (5 != 6) :

ist gleichi f (5 == 6) :

30 / 58

Page 31: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Anmerkungen

Anmerkungen zur if-Abfrage

Aussagen negierenMit not kann eine Aussage negiert werden

1 i f ( not 5 > 6 ) :2 p r i n t ( "5␣ist␣nicht␣groesser␣6" )

Verbinden von AussdrückenMehrere logische Ausdrücke können in einer if-Abfrage überprüftwerden

1 i f ( <Aussage1> and <Aussage2> or <Aussage3 >) :

bei and müssen beide Aussagen wahr sein.bei or reicht es wenn eine der beiden Aussagen wahr ist.

31 / 58

Page 32: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Anmerkungen

and Verbindungand True FalseTrue True FalseFalse False False

or Verbindungor True FalseTrue True TrueFalse True False

32 / 58

Page 33: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Anmerkungen

Anmerkungen zur if-Abfrage

if und elseStellen wir uns vor, wir wollen wissen ob igrößer oder kleiner gleich 6 ist.Das könnte so aussehen:

1 i f ( i > 6 ) :2 p r i n t ( "i␣ist␣Groesser␣6" )3 i f ( i <= 6 ) :4 p r i n t ( "i␣ist␣kleiner␣als␣6␣oder␣6" )

Jedoch würden wir so zweimal prüfen. Mit einem else geht dasleichter und lesbarer.

1 i f ( i > 6 ) :2 p r i n t ( "i␣ist␣Groesser␣6" )3 e l s e :4 p r i n t ( "i␣ist␣kleiner␣als␣6␣oder␣6" )

33 / 58

Page 34: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Verschachtelung

Verschachtelung von ifManchmal möchte man sicherstellen, dass nur, wenn das eine nichtzutrifft, etwas anderes überprüft wird.Das könnte man so realisieren:

1 i f ( i % 2 == 0) :2 p r i n t ( "i␣ist␣gerade" )3 e l s e :4 i f ( i < 10) :5 p r i n t ( "i␣ist␣ungerade␣und␣kleiner␣10␣" )

Oder so:1 i f ( i % 2 == 0) :2 p r i n t ( "i␣ist␣gerade" )34 i f ( ( i < 10) and not ( i % 2 == 0) ) :5 p r i n t ( "i␣ist␣ungerade␣und␣kleiner␣10␣" )

34 / 58

Page 35: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Verschachtelung

Verschachtelung von ifDa man so etwas aber sehr häufig braucht, gibt es in Python eineKurzschreibweise.

1 i f ( i % 2 == 0) :2 p r i n t ( "i␣ist␣gerade" )3 e l i f ( i < 10) :4 p r i n t ( "i␣ist␣ungerade␣und␣kleiner␣10␣" )5 e l s e :6 p r i n t ( "i␣ist␣nicht␣gerade␣und␣auch␣nicht␣kleiner␣10" )

35 / 58

Page 36: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Bis jetzt können wir mit Python nicht viel mehr als mit einemhandelsüblichen Taschenrechner. Denn eine wichtige Sache fehltuns noch.

Schleifen

36 / 58

Page 37: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

i < 5 ?Nein

Ja

i = i + 1

Ende

i = 0

37 / 58

Page 38: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

while-Schleife in Python

1 i = 02 w h i l e ( i < 5) :3 i += i

Der eingerückte Teil i += i nach dem while wird so langeausgeführt bis die Aussage in den runden Klammern falsch wird.

38 / 58

Page 39: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Zählschleife

Bis 10 Zählen

1 i = 02 w h i l e ( i < 10) :3 p r i n t ( i )

39 / 58

Page 40: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Aufbau

Abstrakter Aufbau

1 w h i l e (< a u s w e r t b a r e Aussage >) :

Natürlich kann man (wie beim if) mehrere while’s verschachteln1 i = 02 w h i l e ( i < 10) :3 j = 04 w h i l e ( j < 10) ;5 p r i n t ( j )6 j += j7 i += 1

40 / 58

Page 41: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Aufbau

Verbindung von while und ifNatürlich kann man if und while beliebig verschachteln

1 i = 02 w h i l e ( i < 100) :3 i f ( i % 2 == 0) :4 p r i n t ( i , "ist␣gerade" )5 e l s e :6 p r i n t ( i , "ist␣ungerade" )7 i += 1

41 / 58

Page 42: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

ListenWenn man viele Werte speichern möchte, ist es sehr umständlichfür jeden Wert eine Variable anzulegen. Und wenn man nicht weiß,wie viele Werte der Benutzer angibt, ist es sogar unmöglich.

Stellt euch vor, ihr möchtet für eine Formel wie

f (x) = x2 + x ∗ 100

die Werte im Bereich zwischen -100 und +100 berechnen.Das wären 201 Variablen.Als Lösung haben wir Listen (Array).

42 / 58

Page 43: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

ListenAm einfachsten stellt man sich eine Liste als Zug vor.

0 1 2 3

15 30 45 80

Die Waggonnummer gibt die Position in der Liste an (mit 0anfangend durchnummeriert) und in dem Waggon ist die Zahl(oder etwas anderes), die wir speichern wollen.

43 / 58

Page 44: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Listen in PythonEine Liste in Python zu erzeugen geht so:

1 a = [ 4 , 6 , 1 2 , 4 , 7 6 , 8 , 1 2 ]

Die Kommas trennen die Einträge.

WICHTIG: benutzt die eckigen Klammern [] und nicht die runden() oder die geschwungenen {}.

44 / 58

Page 45: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Besonderheiten von ListenDie erste Zahl in der Informatik ist immer die 0, bis auf wenigeAusnahmen. Also hat das erste Element einer Liste den Index 0.

45 / 58

Page 46: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Umgang mit Listen

1 l i s t e = [ 1 2 , 1 6 , 1 8 , 2 0 , 2 2 ]2 #Z u g r i f f au f e i n Element3 p r i n t ( l i s t e [ 0 ] )4 p r i n t ( l i s t e [ 1 ] )5 p r i n t ( l i s t e [ 2 ] )6 p r i n t ( l i s t e [ 3 ] )

1 l i s t e = [ 1 2 , 1 6 , 1 8 , 2 0 , 2 2 ]2 p r i n t ( l i s t e [ 0 ] )3 #u e b e r s c h r e i b e n von einem Element4 l i s t e [ 0 ] = 115 p r i n t ( l i s t e [ 0 ] )

46 / 58

Page 47: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Umgang mit Listen (Fehlerzustand)Was passiert, wenn man als Index ein Element angibt, das es nichtgibt?

1 l i s t e = [ 1 2 , 1 6 , 1 8 ]2 #Z u g r i f f au f e i n Element das noch n i c h t e x i s t i e r t3 p r i n t ( l i s t e [ 3 ] )

1 Traceback ( most r e c e n t c a l l l a s t ) :2 F i l e "<stdin >" , l i n e 1 , i n <module>3 I n d e x E r r o r : l i s t i n d e x out o f range

Python sagt: "list index out of range"

47 / 58

Page 48: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Umgang mit Listen (Element anhängen)Jetzt könnte man sich fragen, was es nützt, wenn man alleElemente einer Liste vorab mit einem Wert belegen muss, damitdie Liste lang genug ist. Man kann auch zur Laufzeit eine Listeverlängern.

1 l i s t e = [ 1 2 , 1 6 , 1 8 ]2 p r i n t ( l i s t e )3 l i s t e . append (20)4 #j e t z t i s t das e l ement mit dem Index 3 da .5 p r i n t ( l i s t e )

Ausgabe:1 [ 1 2 , 16 , 18 ]2 [ 1 2 , 1 6 , 1 8 , 2 0 ]

48 / 58

Page 49: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Umgang mit Listen (Element entfernen)Und natürlich kann man auch ein Element löschen.

1 l i s t e = [ 1 2 , 1 6 , 1 8 ]2 d e l ( l i s t e [ 2 ] )

Ausgabe:1 [ 1 2 , 16 ]

49 / 58

Page 50: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Umgang mit Listen (Länge der Liste)Um zu wissen, wie lang eine Liste ist, gibt es in Python den len()Befehl

1 l i s t e = [ 1 2 , 1 6 , 1 8 ]2 p r i n t ( l e n ( l i s t e ) )3 l i s t e . append (20)4 p r i n t ( l e n ( l i s t e ) )

Ausgabe:1 32 4

50 / 58

Page 51: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Listen von ListenManchmal benötigt man eine Liste von Listen; auch dies istnatürlich möglich.

1 temp = [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ]2 p r i n t ( temp [ 0 ] [ 0 ] )3 p r i n t ( temp [ 1 ] [ 0 ] )

Wie man sich vorstellen kann, ist es möglich dieses weiter zuverschachteln.

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

Jedoch wird dieses dann sehr schnell unübersichtlich.

51 / 58

Page 52: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Eine kleine AufgabeWie sähe es aus, wenn man mit einer while-Schleife alle Elementeeiner Liste ausgeben möchte?

52 / 58

Page 53: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

i <len(liste) Nein

Ja

i = i + 1

Ende

i = 0

liste=[1,2,3,4]

print(liste[i])

1 l i s t e = [ 1 , 2 , 3 , 4 ]23 i =045 w h i l e ( i < l e n ( l i s t e ) ) :6 p r i n t ( l i s t e [ i ] )7 i = i + 1

53 / 58

Page 54: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

For

forDa man sehr häufig über Listen iteriert, gibt es dafür eineKurzschreibweise.

54 / 58

Page 55: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

For

while

1 l i s t e = [ 1 , 2 , 3 , 4 ]23 i =045 w h i l e ( i < l e n ( l i s t e ) ) :6 p r i n t ( l i s t e [ i ] )7 i = i + 1

for

1 l i s t e = [ 1 , 2 , 3 , 4 ]2345 f o r i i n l i s t e :6 p r i n t ( i )

55 / 58

Page 56: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

For

Der Befehl rangeWie wir gesehen haben, kann man mit for sehr gut über eine Listeiterieren. Aber for kann noch mehr.Allgemein wird die ’for-Schleife’ auch als Zählschleife bezeichnet.Da es aber sehr mühsam ist für eine Schleife, die z. B. 10Iterationen durchlaufen soll, die Liste

1 l a u f = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ]2 f o r i i n l a u f :3 p r i n t ( i )

zu erstellen, gibt es in Python den Befehl range.1 f o r i i n range (0 , 10 ) :2 p r i n t ( i )

56 / 58

Page 57: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

For

range

1 range ( n ,m)

erstellt eine Liste, die von n bis m geht. Es geht auch1 range (10 ,20)

Wichtig ist, das n ≤ m ist.range kann aber noch mehr als nur +1 zu rechnen.Mit einer dritten Zahl kann die Schrittweite angegeben werden.

1 f o r i i n range ( 0 , 1 0 , 2 ) :2 p r i n t ( i )

57 / 58

Page 58: Einführung in Python - uni-bielefeld.de€¦ · Ziele der Vorlesung Einstieg in Python VariablenBlöcke Abfragen Schleifen ListenEnde Anmerkungen Anmerkungenzurif-Abfrage ifundelse

Ziele der Vorlesung Einstieg in Python Variablen Blöcke Abfragen Schleifen Listen Ende

Geschafft

Nun habt ihr einen Einstieg in Python

Viel Spaß im Tutorium

58 / 58