4 in 1 - Medieninformatik - Hochschule RheinMain
4 in 1 - Medieninformatik - Hochschule RheinMain
4 in 1 - Medieninformatik - Hochschule RheinMain
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Programmieren <strong>in</strong> Python<br />
Kontrollstrukturen<br />
Programmieren <strong>in</strong> Python<br />
Kontrollstrukturen<br />
Kontrollstrukturen – while-Schleife<br />
Kontrollstrukturen – for-Schleife<br />
while-Schleife<br />
• Schlüsselwörter: while, else, break,<br />
cont<strong>in</strong>ue, pass<br />
• else-Zweig nur, wenn Schleife ohne<br />
break verlassen wurde<br />
• pass, leere Anweisung, macht nichts,<br />
Ersatz für {}<br />
Syntax<br />
• Wieder E<strong>in</strong>rücken als <strong>in</strong>tegraler<br />
Bestandteil der Schleifensyntax<br />
while :<br />
<br />
[else:<br />
]<br />
1 lis = [1, 2, 3, 4]<br />
2 while lis:<br />
3 pr<strong>in</strong>t lis.pop()<br />
4 else:<br />
5 pr<strong>in</strong>t "Ende"<br />
for-Schleife<br />
• Schlüsselwörter: for, <strong>in</strong>, break,<br />
cont<strong>in</strong>ue, pass<br />
• Iterieren über Elemente <strong>in</strong> Sequenzen<br />
• <strong>in</strong> wählt Elemente aus Sequenz<br />
sukzessive aus und weist sie je<br />
Durchlauf der Variable zu<br />
• Klassische Schleife über Indexe nur<br />
nach als Nachbau mit range<br />
range<br />
for <strong>in</strong> :<br />
<br />
[else:<br />
]<br />
1 for ele <strong>in</strong> ["Hallo", "Welt"]:<br />
2 pr<strong>in</strong>t ele<br />
3 for idx <strong>in</strong> range(1, 4):<br />
4 pr<strong>in</strong>t idx<br />
5 for ch <strong>in</strong> "Hi":<br />
6 pr<strong>in</strong>t ch<br />
4<br />
3<br />
2<br />
1<br />
Ende<br />
• range(von, bis, step)<br />
• Erzeugt e<strong>in</strong>e Liste von Zahlen von<br />
<strong>in</strong>klusive, bis exklusive<br />
• von optional, default 0<br />
• step optional, default 1<br />
Hallo<br />
Welt<br />
1<br />
2<br />
3<br />
H<br />
i<br />
Prof. Dr. Peter Barth (HS-Rhe<strong>in</strong>Ma<strong>in</strong>) Programmieren 3 29. Januar 2013 165 / 326<br />
Prof. Dr. Peter Barth (HS-Rhe<strong>in</strong>Ma<strong>in</strong>) Programmieren 3 29. Januar 2013 166 / 326<br />
Programmieren <strong>in</strong> Python<br />
Kontrollstrukturen<br />
Programmieren <strong>in</strong> Python<br />
Kontrollstrukturen<br />
Kontrollstrukturen – for-Schleife, Dictionaries<br />
Kontrollstrukturen – for-Schleife, typischer E<strong>in</strong>satz<br />
for-Schleife und Dictionaries<br />
• Fragt Objekte, ob sie auch e<strong>in</strong>e<br />
Sequenz se<strong>in</strong> können<br />
• Das Dictionary sagt, ja, dann b<strong>in</strong> ich<br />
e<strong>in</strong>e Sequenz der Schlüssel<br />
• Dann wird über die Schlüssel iteriert<br />
Auch nett mit items und Tupelzuweisung<br />
1 dic = { 1: ’e<strong>in</strong>s’, 2: ’zwei’ }<br />
2 for key <strong>in</strong> dic: # wie dic.keys()<br />
3 pr<strong>in</strong>t key, dic[key]<br />
1 e<strong>in</strong>s<br />
2 zwei<br />
1 dic = { 1: ’e<strong>in</strong>s’, 2: ’zwei’ }<br />
2 pr<strong>in</strong>t dic.items()<br />
3 for key, value <strong>in</strong> dic.items():<br />
4 pr<strong>in</strong>t key, value<br />
[(1, ’e<strong>in</strong>s’), (2, ’zwei’)]<br />
1 e<strong>in</strong>s<br />
2 zwei<br />
Klassische for-Schleife<br />
• Durchlaufen von Index-Werten<br />
• Sequenz von Index-Werten, mit range<br />
erzeugt<br />
• Selten benötigt<br />
• Java/C Idiom, weniger Python<br />
Feldzugriff vermeiden<br />
• Ke<strong>in</strong>e expliziten Indexvariablen<br />
• Eleganter<br />
• Ke<strong>in</strong> Indexfehler möglich!<br />
• Funktioniert für alle Sequenzen<br />
1 for idx <strong>in</strong> range(100): # 0-99 <strong>in</strong> Python<br />
2 pr<strong>in</strong>t idx<br />
1 // 0-99 <strong>in</strong> Java<br />
2 for(<strong>in</strong>t i=0; i < 100; i+=1) {<br />
3 System.out.pr<strong>in</strong>tln(idx);<br />
4 }<br />
1 for ele <strong>in</strong> arr: # Feldzugriff <strong>in</strong> Python<br />
2 pr<strong>in</strong>t ele<br />
1 // Feldzugriff <strong>in</strong> Java<br />
2 for(<strong>in</strong>t i=0; i < arr.length; i+=1) {<br />
3 System.out.pr<strong>in</strong>tln(arr[i]);<br />
4 }<br />
1 for e <strong>in</strong> (0, 1, 2, 3): # alle Sequenzen<br />
2 pr<strong>in</strong>t e<br />
Prof. Dr. Peter Barth (HS-Rhe<strong>in</strong>Ma<strong>in</strong>) Programmieren 3 29. Januar 2013 167 / 326<br />
Prof. Dr. Peter Barth (HS-Rhe<strong>in</strong>Ma<strong>in</strong>) Programmieren 3 29. Januar 2013 168 / 326