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

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

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

Автор: Al Sweigart

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

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

Серия:

isbn: 9783960889571

isbn:

СКАЧАТЬ = 'Fat-tail'

      catName6 = 'Miss Cleo'

      Das ist jedoch eine schlechte Vorgehensweise. (Außerdem möchte ich betonen, dass ich in Wirklichkeit nicht so viele Katzen habe!) Erstens kann das Programm niemals mehr Katzennamen speichern, als Variablen zur Verfügung stehen, was zu einem Problem führt, wenn sich die Anzahl der Katzen ändert. Bei Programmen, die auf diese Weise geschrieben sind, gibt es gewöhnlich auch eine Menge an doppeltem oder fast identischem Code. Schauen Sie sich einmal an, wie viel doppelten Code es in dem folgenden Programm namens allMyCats1.py gibt:

      print('Enter the name of cat 1:')

      catName1 = input()

      print('Enter the name of cat 2:')

      catName2 = input()

      print('Enter the name of cat 3:')

      catName3 = input()

      print('Enter the name of cat 4:')

      catName4 = input()

      print('Enter the name of cat 5:')

      catName5 = input()

      print('Enter the name of cat 6:')

      catName6 = input()

      print('The cat names are:')

      print(catName1 + ' ' + catName2 + ' ' + catName3 + ' ' + catName4 + ' ' +

      catName5 + ' ' + catName6)

      Anstatt mehrerer ähnlicher Variablen können Sie auch eine einzige Variable mit einem Listenwert verwenden. Die folgende verbesserte Version von allMyCats1.py nutzt eine einzige Liste und kann darin so viele Katzennamen speichern, wie der Benutzer eingibt. Geben Sie den folgenden Quellcode in ein Dateieditorfenster ein und speichern Sie ihn als allMyCats2.py:

      catNames = []

      while True:

      print('Enter the name of cat ' + str(len(catNames) + 1) +

      ' (Or enter nothing to stop.):')

      name = input()

      if name == '':

      break

      catNames = catNames + [name] # list concatenation

      print('The cat names are:')

      for name in catNames:

      print(' ' + name)

      Wenn Sie dieses Programm ausführen, erhalten Sie folgende Ausgabe:

      Enter the name of cat 1 (Or enter nothing to stop.):

       Zophie

      Enter the name of cat 2 (Or enter nothing to stop.):

       Pooka

      Enter the name of cat 3 (Or enter nothing to stop.):

       Simon

      Enter the name of cat 4 (Or enter nothing to stop.):

       Lady Macbeth

      Enter the name of cat 5 (Or enter nothing to stop.):

       Fat-tail

      Enter the name of cat 6 (Or enter nothing to stop.):

       Miss Cleo

      Enter the name of cat 7 (Or enter nothing to stop.):

      The cat names are:

      Zophie

      Pooka

      Simon

      Lady Macbeth

      Fat-tail

      Miss Cleo

      Die Ausführung dieser Programme können Sie sich auf https://autbor.com/allmycats1/ und https://autbor.com/allmycats2/ ansehen. Der Vorteil der Verwendung einer Liste besteht darin, dass sich die Daten jetzt in einer Struktur befinden, sodass das Programm sie auf viel flexiblere Art und Weise verarbeiten kann, als wenn sie in mehreren ähnlichen Variablen steckten.

       Listen in for-Schleifen

      In Kapitel 2 haben Sie gelernt, wie Sie einen Codeblock mithilfe einer for-Schleife eine gegebene Anzahl von Malen ausführen. Technisch gesehen wiederholt eine for-Schleife den Codeblock einmal für jedes Element in einem Listenwert. Nehmen wir an, Sie führen folgenden Code aus:

      for i in range(4):

      print(i)

      Die Ausgabe dieses Programms lautet wie folgt:

      0

      1

      2

      3

      Der Grund dafür ist, dass der Rückgabewert von range(4) ein sequenzieller Wert ist, den Python ähnlich wie [0, 1, 2, 3] auffasst. (Sequenzen werden weiter hinten in diesem Kapitel im Abschnitt »Sequenzielle Datentypen« behandelt.) Das folgende Programm führt zu der gleichen Ausgabe wie oben:

      for i in [0, 1, 2, 3]:

      print(i)

      Diese for-Schleife durchläuft seine Klausel, wobei die Variable i bei jeder Iteration auf den nächstfolgenden Wert der Liste [0, 1, 2, 3] gesetzt wird.

      Eine übliche Python-Technik besteht darin, range(len(eineListe)) in einer for-Schleife zu verwenden, um über die Indizes einer Liste zu iterieren. Geben Sie beispielsweise folgenden Code in die interaktive Shell ein:

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

      >>> for i in range(len(supplies)):

       ... print('Index ' + str(i) + ' in supplies is: ' + supplies[i])

      Index 0 in supplies is: pens

      Index 1 in supplies is: staplers

      Index 2 in supplies is: flamethrowers

СКАЧАТЬ