Название: Routineaufgaben mit Python automatisieren
Автор: Al Sweigart
Издательство: Bookwire
Жанр: Математика
isbn: 9783960889571
isbn:
>>> '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
>>> spam
40
>>> eggs = 2
>>> spam + eggs
42
>>> spam + eggs + spam
82
>>> spam = spam + 2
>>> spam
42
Eine Variable wird initialisiert (erstellt), wenn zum ersten Mal ein Wert in ihr gespeichert wird (
>>> 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 СКАЧАТЬ