Routineaufgaben mit Python automatisieren. Al Sweigart
Чтение книги онлайн.

Читать онлайн книгу Routineaufgaben mit Python automatisieren - Al Sweigart страница 50

Название: Routineaufgaben mit Python automatisieren

Автор: Al Sweigart

Издательство: Bookwire

Жанр: Математика

Серия:

isbn: 9783960889571

isbn:

СКАЧАТЬ 3 in supplies is: binders

      Die Verwendung von range(len(supplies)) in dieser for-Schleife ist sehr praktisch, da der Code in der Schleife auf den Index (die Variable i) zugreifen und den Wert an diesem Index (also supplies[i]) lesen kann. Das Beste aber ist, dass range(len(-supplies)) stets sämtliche Indizes von supplies durchläuft, wie viele Elemente die Liste auch immer enthält.

       Die Operatoren in und not in

      Mit den Operatoren in und not in können Sie feststellen, ob sich ein Wert in einer Liste befindet oder nicht. Wie die anderen Operatoren werden auch in und not in in Ausdrücken verwendet und verknüpfen zwei Werte: den Wert, nach dem in der Liste gesucht werden soll, und die betreffende Liste. Ausgewertet werden diese Ausdrücke zu einem booleschen Wert. Probieren Sie das wie folgt in der interaktiven Shell aus:

      >>> 'howdy' in ['hello', 'hi', 'howdy', 'heyas']

      True

      >>> spam = ['hello', 'hi', 'howdy', 'heyas']

      >>> 'cat' in spam

      False

      >>> 'howdy' not in spam

      False

      >>> 'cat' not in spam

      True

      In dem folgenden Beispielprogramm gibt der Benutzer den Namen eines Haustiers ein, woraufhin geprüft wird, ob dieser Name in einer Liste von Haustieren steht. Geben Sie den folgenden Code im Dateieditor ein und speichern Sie ihn als myPets.py:

      myPets = ['Zophie', 'Pooka', 'Fat-tail']

      print('Enter a pet name:')

      name = input()

      if name not in myPets:

      print('I do not have a pet named ' + name)

      else:

      print(name + ' is my pet.')

      Die Ausgabe sieht wie folgt aus:

      Enter a pet name:

       Footfoot

      I do not have a pet named Footfoot

       Der Trick mit der Mehrfachzuweisung

      Die Mehrfachzuweisung (technisch Tupel Unpacking genannt) ist eine Abkürzung, mit der Sie in einer einzigen Codezeile mehreren Variablen Werte aus einer Liste zuweisen können. Wenn Sie das einzeln tun wollten, müssten Sie wie folgt vorgehen:

      >>> cat = ['fat', gray, 'loud']

      >>> size = cat[0]

      >>> color = cat[1]

      >>> disposition = cat[2]

      Stattdessen aber können Sie einfach Folgendes schreiben:

      >>> cat = ['fat', gray, 'loud']

      >>> size, color, disposition = cat

      Dabei muss es jedoch genauso viele Variablen wie Elemente in der Liste geben. Anderenfalls meldet Python den Fehler ValueError:

      >>> cat = ['fat', gray, 'loud']

      >>> size, color, disposition, name = cat

      Traceback (most recent call last):

      File "<pyshell#84>", line 1, in <module>

      size, color, disposition, name = cat

      ValueError: not enough values to unpack (expected 4, got 3)

       Die Funktion enumerate() für Listen

      Um die Indizes der Listeneinträge abzurufen, können Sie in der for-Schleife statt range(len(eineListe)) auch die Funktion enumerate() verwenden. Bei jedem Schleifendurchlauf gibt enumerate() zwei Werte zurück, nämlich den Index eines Eintrags in der Liste und den Eintrag selbst. Der folgende Code führt zum selben Ergebnis wie der aus »Listen in for-Schleifen« weiter vorn in diesem Kapitel:

      >>> supplies = ['pens', 'staplers', 'flamethrowers', 'binders']

      >>> for index, item in enumerate(supplies):

       ... print('Index ' + str(index) + ' in supplies is: ' + item)

      Index 0 in supplies is: pens

      Index 1 in supplies is: staplers

      Index 2 in supplies is: flamethrowers

      Index 3 in supplies is: binders

      Die Funktion enumerate() ist praktisch, wenn Sie im Schleifenblock sowohl den Eintrag als auch seinen Index benötigen.

       Die Funktionen random.choice() und random.shuffle() für Listen

      Das Modul random enthält zwei Funktionen, die Listen als Argumente entgegennehmen. Die Funktion random.choice() gibt einen zufällig ausgewählten Listeneintrag zurück. Um das auszuprobieren, geben Sie Folgendes in die interaktive Shell ein:

      >>> import random

      >>> pets = ['Dog', 'Cat', 'Moose']

      >>> random.choice(pets)

      'Dog'

      >>> random.choice(pets)

      'Cat'

      >>> random.choice(pets)

      'Cat'

      Sie können sich random.choice(eineListe) als Kurzfassung von eineListe[random.randint(0, len(eineListe) - 1] vorstellen.

      Die Funktion random.shuffle() sortiert die Listeneinträge um. Dabei ändert sie unmittelbar die vorhandene Liste, anstatt eine neue zurückzugeben. Das können Sie wie folgt in der interaktiven Shell ausprobieren:

      >>> СКАЧАТЬ