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

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

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

Автор: Al Sweigart

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

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

Серия:

isbn: 9783960889571

isbn:

СКАЧАТЬ nicht, wie es damit umgehen soll, und gibt eine Fehlermeldung aus:

      >>> 'Alice' + 42

      Traceback (most recent call last):

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

      'Alice' + 42

      TypeError: can only concatenate str (not "int") to str

      Die Fehlermeldung can only concatenate str (not "int") to str bedeutet, dass Python glaubt, Sie wollten einen Integer mit dem String 'Alice' verketten. Dazu aber müssten Sie den Integerwert ausdrücklich in einen String umwandeln, da Python dies nicht automatisch tun kann. (Die Umwandlung von Datentypen werden wir im Abschnitt »Analyse des Programms« weiter hinten in diesem Kapitel erklären und uns dabei mit den Funktionen str(), int() und float() beschäftigen.)

      Zwischen zwei Integer- oder Fließkommawerten dient * als Multiplikationsoperator, doch zwischen einem String und einem Integerwert wird er zum Stringwiederholungsoperator. Um das auszuprobieren, geben Sie in die interaktive Shell Folgendes ein:

      >>> 'Alice' * 5

      'AliceAliceAliceAliceAlice'

      Der Ausdruck wird zu einem einzigen String ausgewertet, der den ursprünglichen String so oft enthält, wie der Integerwert angibt. Die Stringwiederholung ist zwar ein nützlicher Trick, wird aber längst nicht so häufig angewendet wie die Stringverkettung.

      Den Operator * können Sie nur zwischen zwei numerischen Werten (zur Multiplikation) oder zwischen einem String- und einem Integerwert einsetzen (zur Stringwiederholung). In allen anderen Fällen zeigt Python eine Fehlermeldung an:

      >>> 'Alice' * 'Bob'

      Traceback (most recent call last):

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

      'Alice' * 'Bob'

      TypeError: can't multiply sequence by non-int of type 'str'

      >>> 'Alice' * 5.0

      Traceback (most recent call last):

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

      'Alice' * 5.0

      TypeError: can't multiply sequence by non-int of type 'float'

      Es ist sinnvoll, dass Python solche Ausdrücke nicht auswertet. Schließlich ist es nicht möglich, zwei Wörter miteinander zu multiplizieren, und es dürfte auch ziemlich schwierig sein, einen willkürlichen String eine gebrochene Anzahl von Malen zu wiederholen.

       Werte in Variablen speichern

      Eine Variable können Sie sich wie eine Kiste im Arbeitsspeicher des Computers vorstellen, in der einzelne Werte abgelegt werden. Wenn Sie das Ergebnis eines ausgewerteten Ausdrucks an einer späteren Stelle in Ihrem Programm noch brauchen, können Sie es in einer Variablen festhalten.

       Zuweisungsanweisungen

      Um einen Wert in einer Variablen zu speichern, verwenden Sie eine Zuweisungsanweisung. Sie besteht aus einem Variablennamen, einem Gleichheitszeichen (das hier nicht als Gleichheitszeichen dient, sondern als Zuweisungsoperator) und dem zu speichernden Wert. Wenn Sie die Zuweisungsanweisung spam = 42 eingeben, wird der Wert 42 in der Variablen spam gespeichert.

      Sie können sich eine Variable als eine beschriftete Kiste vorstellen, in der der Wert abgelegt wird (siehe Abb. 1–1).

      Abb. 1–1Die Anweisung spam = 42 sagt dem Programm: »Die Variable spam enthält jetzt die Ganzzahl 42.«

      Geben Sie beispielsweise Folgendes in die interaktive Shell ein:

      >>> spam = 40 image

      >>> spam

      40

      >>> eggs = 2

      >>> spam + eggs image

      42

      >>> spam + eggs + spam

      82

      >>> spam = spam + 2 image

      >>> spam

      42

      Eine Variable wird initialisiert (erstellt), wenn zum ersten Mal ein Wert in ihr gespeichert wird (image). Danach können Sie sie zusammen mit anderen Variablen und Werten in Ausdrücken verwenden (image). Wenn Sie der Variablen einen neuen Wert zuweisen (image), geht der alte Wert verloren. Daher wird spam am Ende dieses Beispiels nicht mehr zu 40 ausgewertet, sondern zu 42. Die Variable ist also überschrieben worden. Versuchen Sie in der interaktiven Shell wie folgt einen String zu überschreiben:

      >>> spam = 'Hello'

      >>> spam

      'Hello'

      >>> spam = 'Goodbye'

      >>> spam

      'Goodbye'

      Wie die Kiste in Abb. 1–2 enthält die Variable spam in diesem Beispiel den Wert Hello, bis er durch Goodbye ersetzt wird.

      Abb. 1–2Wird einer Variablen ein neuer Wert zugewiesen, so wird der alte Wert vergessen.

       Variablennamen

      Ein СКАЧАТЬ