Commit 1b04fa52 authored by Axel Dürkop's avatar Axel Dürkop
Browse files

Add loop

parent 37f3d313
......@@ -25,18 +25,33 @@ LastModifierEmail = "artur.erbes@tuhh.de"
Nun wollen wir einige Reihen von Smileys erstellen. Um uns die Arbeit zu ersparen, jede einzelne Instanz einer Variablen zuzuweisen, verwenden wir eine Liste. Zunächst erstellen wir die Liste `Smileys` und befüllen diese mit Hilfe einer for-Schleife.
```python
from Smiley import Smiley
schnee = []
for s in range(100):
schnee.append(Smiley('#f5f242'))
```
Hier passiert Folgendes: Zunächst wird eine Variable `schnee` als Liste initialisiert. Die Liste ist zunächst leer und wird durch eine Schleife mit Smiley-Objekten befüllt.
["Alles in Python ist ein Objekt."](https://de.wikipedia.org/wiki/Python_%28Programmiersprache%29#Datentypen_und_Strukturen), so auch die Liste. Das heißt: Wenn die Variable `schnee` initialisiert wird, wird ein Objekt der Klasse *list* erzeugt. Sie hat auch Eigenschaften und Methoden, genau wie die Klasse `Smiley`.
Eine dieser Methoden ist `append()`, was soviel heißt wie "dranhängen". Sie können diese und andere Methoden und Eigenschaften [in der Referenz zu *list* nachschlagen](https://de.wikipedia.org/wiki/Python_%28Programmiersprache%29#Datentypen_und_Strukturen).
Diese Art, eine Liste zu befüllen, ist nicht sehr *pythonic*. Eleganter geht es mit einer [list comprehension](https://www.w3schools.com/python/python_lists_comprehension.asp). Es passiert das gleiche, die Schreibweise ist aber komprimierter.
```python
from Smiley import Smiley
Smileys = [Smiley('#f5f242') for x in range (20)]
```
**Hinweis:** Die Art, wie diese Schleife geschrieben wird, nennt sich im Pythonkontext [list comprehension](https://www.w3schools.com/python/python_lists_comprehension.asp).
Nun ist es uns möglich, mittels einer weiteren Schleife auf die Methoden jeder einzelnen Instanz der Klasse zuzugreifen und diese auszuführen. In diesem Fall greifen wir auf die Methode `paint()` zu und übergeben jeder Instanz in der Liste `Smileys` andere Parameter.
```
```python
def draw():
for Smiley in Smileys:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment