Instructions
44
Auch hier werden ineinander
g
eschachtelte Schlei
f
en
g
enutzt. Nach der ersten inneren Schlei
f
e, die dem zuvor
b
eschriebenen Pro
g
rammteil entspricht, also nachdem die LED mit der Nummer 3 leuchtet, be
g
innt eine wei-
tere Schlei
f
e
f
ür das Lau
fl
icht in entgegengesetzter Richtung. Listenelemente sind immer mit 0 begin nend num
-
me
ri
e
r
t
. Di
e
vi
e
r
te
LED
hat
de
mn
ach
d
i
e
N
u
mm
e
r
3.
U
m eine Schlei
f
e rückwärts lau
f
en zu lassen, verwenden wir die erweiterte S
y
ntax von for...range
()
.
Anstatt nur einen En
d
wert anzu
g
e
b
en,
k
önnen auc
h
d
rei Parameter verwen
d
et wer
d
en: Startwert, Sc
h
ritt weite
un
d
En
d
wert. In unserem Beispie
l
sin
d
d
as:
Startwer
t
z-1
D
ie Variable
z
enthält die Anzahl der LEDs. Da die Nummerierun
g
der Listenele-
m
ente mit
0
beginnt, hat die letzte LED die Nummer z-
1
.
Schrittweit
e
-
1
B
ei einer Schrittweite von -
1
zählt jeder Schlei
f
endurchlau
f
eine Zahl rückwärts
.
En
d
wer
t
-1
D
er Endwert in einer Schleife ist immer der erste Wert
,
der nicht erreicht wird. In der
e
rsten vorwärts zählenden Schleife be
g
innt der Schleifenzähler bei
0
u
n
d
e
rr
e
i
c
h
t
in
u
nserem Beis
p
ie
l
d
ie Werte
0
,
1
,
2
,
3
,
um
d
ie LEDs zu a
d
ressieren. Die
4
wir
d
b
ei
v
iermaligem Schlei
f
endurchlau
f
nicht erreicht. Die rückwärts zählende Schlei
f
e soll
m
i
t
de
r
0
e
n
de
n
u
n
d
so
de
n W
e
r
t
-
1
a
l
s
e
r
ste
n ni
c
h
t
e
rr
e
i
c
h
e
n.
Die beschriebene zweite Schlei
f
e lässt nacheinander die vier LEDs in um
g
ekehrter Richtun
g
blinken. Danach
startet die äu
ß
ere Schlei
f
e den
g
esamten Z
y
klus neu, der hier, da
j
ede LED zweimal blinkt, im Ver
g
leich zum
ersten Pro
g
rammtei
l
d
oppe
l
t so
l
an
g
e
d
auert.
Muste
r
3
H
at
de
r B
e
n
ut
z
e
r
e
in
e
3
ein
g
e
g
eben, startet eine ähnliche Schlei
f
e. Hier werden die LEDs auch in beide Rich
-
tun
g
en
d
urc
hg
ezä
hl
t, a
b
er nic
h
t
gl
eic
h
nac
h
d
em Einsc
h
a
l
ten wie
d
er aus
g
esc
h
a
l
tet.
el
if
e
== "
3
"
:
for i in range(w)
:
for j in range(z)
:
G
P
IO
.output(
LED
[j],
T
rue
)
time.s
l
eep(t
)
time.s
l
eep(2*t
)
for j in range(z-1, -1, -1)
:
G
P
IO
.output(
LED
[j], Fa
l
se
)
time.s
l
eep(t
)
time.sleep
(
2*t
)
Die erste innere Schlei
f
e schaltet die LEDs nacheinander mit einer Zeitverzögerung ein. Am Ende der Schlei
f
e,
d
as an
d
er Ausrüc
k
ung
d
er Zei
l
e
t
ime.sleep
(
2*t
)
zu er
k
ennen ist, wir
d
d
ie
d
oppe
l
te Verzögerungszeit
gewartet. So lange leuchten alle LEDs. Danach beginnt eine weitere Schlei
f
e, die rückwärts zählt und eine
LED nac
h
d
er an
d
eren wie
d
er aussc
h
a
l
tet. Auc
h
h
ier wir
d
am En
d
e, wenn a
ll
e LEDs aus sin
d
,
d
ie
d
oppe
l
te
Verzögerungszeit gewartet, bevor die äu
ß
ere Schlei
f
e den gesamten Zyklus noch einmal startet.
10145-5 Raspberry Pi verstehen und anwenden_01.indd 4410145-5 Raspberry Pi verstehen und anwenden_01.indd 44 30.06.2017 10:09:3330.06.2017 10:09:33