Название: Routineaufgaben mit Python automatisieren
Автор: Al Sweigart
Издательство: Bookwire
Жанр: Математика
isbn: 9783960889571
isbn:
Tab. 1–1 Arithmetische Operatoren, geordnet vom höchsten zum niedrigsten Rang
Die Auswertungsreihenfolge oder Rangfolge der arithmetischen Operatoren in Python entspricht ihrer gewöhnlichen Rangfolge in der Mathematik: Als Erstes wird der Operator ** ausgewertet, dann die Operatoren *, /, // und % von links nach rechts, und schließlich die Operatoren + und - (ebenfalls von links nach rechts). Um die Auswertungsreihenfolge zu ändern, können Sie bei Bedarf Klammern setzen. Der Weißraum zwischen den Operatoren und Werten spielt in Python keine Rolle (außer bei den Einrückungen am Zeilenanfang). Ein Abstand von einem Leerzeichen ist jedoch üblich. Zur Übung geben Sie die folgenden Ausdrücke in die interaktive Shell ein:
>>> 2 + 3 * 6
20
>>> (2 + 3) * 6
30
>>> 48565878 * 578453
28093077826734
>>> 2 ** 8
256
>>> 23 / 7
3.2857142857142856
>>> 23 // 7
3
>>> 23 % 7
2
>>> 2 + 2
4
>>> (5 - 1) * ((7 + 1) / (3 - 1))
16.0
Die Ausdrücke müssen Sie jeweils selbst eingeben, aber Python nimmt Ihnen die Arbeit ab, sie auf einen einzelnen Wert zu reduzieren. Wie die folgende Grafik zeigt, wertet es dabei die einzelnen Teile eines Ausdrucks nacheinander aus, bis ein einziger Wert übrig ist:
Die Regeln, nach denen Operatoren und Werte zu Ausdrücken zusammengestellt werden, bilden einen grundlegenden Bestandteil der Programmiersprache Python, vergleichbar mit den Grammatikregeln einer natürlichen Sprache. Betrachten Sie das folgende Beispiel:
Dies ist ein grammatikalisch korrekter deutscher Satz.
Dies grammatikalisch ist Satz kein deutscher korrekter.
Der zweite Satz lässt sich nur schwer verstehen (»parsen«, wie es bei einer Programmiersprache heißt), da er nicht den Regeln der deutschen Grammatik folgt. Genauso ist es, wenn Sie eine schlecht formulierte Python-Anweisung eingeben. Python versteht sie nicht und zeigt die Fehlermeldung SyntaxError an, wie die folgenden Beispiele zeigen:
>>> 5 +
File "<stdin>", line 1
5 +
^
SyntaxError: invalid syntax
>>> 42 + 5 + * 2
File "<stdin>", line 1
42 + 5 + * 2
^
SyntaxError: invalid syntax
Um herauszufinden, ob eine Anweisung funktioniert oder nicht, können Sie sie einfach in die interaktive Shell eingeben. Keine Angst, dadurch können Sie nichts kaputt machen. Schlimmstenfalls zeigt Python eine Fehlermeldung an. Für professionelle Softwareentwickler gehören Fehlermeldungen zum Alltag.
Die Datentypen für ganze Zahlen, Fließkommazahlen und Strings
Ein Datentyp ist eine Kategorie für Werte, wobei jeder Wert zu genau einem Datentyp gehört. Die gebräuchlichsten Datentypen in Python finden Sie in Tabelle 1–2. Werte wie -2 und -30 sind beispielsweise Integerwerte. Dieser Datentyp (int) steht für ganze Zahlen. Zahlen mit Dezimalpunkt, z. B. 3.14, sind dagegen Fließkommazahlen und weisen den Typ float auf. Beachten Sie, dass ein Wert wie 42 ein Integer ist, 42.0 dagegen eine Fließkommazahl.
Datentyp | Beispiele |
Integer | -2, -1, 0, 1, 2, 3, 4, 5 |
Fließkommazahlen | -1.25, -1.0, -0.5, 0.0, 0.5, 1.0, 1.25 |
Strings | 'a', 'aa', 'aaa', 'Hello!', '11 cats' |
Tab. 1–2 Häufig verwendete Datentypen
In Python-Programmen können auch Textwerte vorkommen, sogenannte Strings (str). Schließen Sie Strings immer in einfache Anführungszeichen ein (z. B. 'Hello' oder 'Goodbye cruel world!'), damit Python weiß, wo der String anfängt und wo er endet. Sie können sogar einen String erstellen, der gar keine Zeichen enthält, nämlich den leeren String ''. In Kapitel 4 werden Strings ausführlicher behandelt.
Wenn Sie die Fehlermeldung SyntaxError: EOL while scanning string literal erhalten, haben Sie wahrscheinlich wie im folgenden Beispiel das schließende einfache Anführungszeichen am Ende eines Strings vergessen:
>>> 'Hello world!
SyntaxError: EOL while scanning string literal
Stringverkettung und -wiederholung
Die Bedeutung eines Operators kann sich in Abhängigkeit von den Datentypen der Werte ändern, die rechts und links von ihm stehen. Beispielsweise fungiert + zwischen zwei Integer- oder Fließkommawerten als Additionsoperator, zwischen zwei Strings aber als Stringverkettungsoperator. Probieren Sie Folgendes in der interaktiven Shell aus:
>>> 'Alice' + 'Bob'
'AliceBob'
Dieser Ausdruck wird zu einem einzigen neuen String ausgewertet, der den Text der beiden Originalstrings enthält. Wenn Sie jedoch versuchen, den Operator + zwischen einem String und einem СКАЧАТЬ