1. Erste Schritte mit Python
Willkommen auf Ihrer Reise in die Python-Programmierung! Dieses Kapitel führt Sie durch die wesentlichen ersten Schritte: Sie verstehen, was Python ist, wie Sie es auf Ihrem Computer installieren und wie Sie Ihren ersten Python-Code ausführen. Am Ende dieses Kapitels werden Sie sich damit wohlfühlen, die interaktive Shell von Python zu benutzen, Skriptdateien zu erstellen und auszuführen und die grundlegenden Fehlermeldungen zu verstehen, die Python Ihnen gibt.
1.1) Was ist ein Programm und was macht Python?
Bevor wir speziell in Python einsteigen, lassen Sie uns verstehen, was ein Programm ist und welche Rolle Python beim Erstellen von Programmen spielt.
1.1.1) Programme verstehen
Ein Programm ist eine Folge von Anweisungen, die einem Computer sagen, was er tun soll. So wie ein Rezept Ihnen Schritt für Schritt erklärt, wie Sie einen Kuchen backen, sagt ein Programm einem Computer Schritt für Schritt, wie er eine Aufgabe ausführen soll. Diese Aufgaben können von einfachen Berechnungen bis hin zu komplexen Operationen reichen, wie das Anzeigen von Webseiten, die Verarbeitung von Bildern oder die Steuerung von Robotern.
Computer verstehen menschliche Sprachen wie Englisch oder Spanisch nicht direkt. Sie verstehen nur Maschinencode – Folgen von Binärzahlen (0 und 1), die sehr grundlegende Operationen repräsentieren. Programme direkt in Maschinencode zu schreiben, wäre für Menschen extrem schwierig und fehleranfällig.
Hier kommen Programmiersprachen ins Spiel. Eine Programmiersprache ist eine für Menschen lesbare Art, Anweisungen zu schreiben, die in Maschinencode übersetzt werden können. Python ist eine solche Programmiersprache, die besonders leicht lesbar und schreibbar für Menschen entworfen wurde.
1.1.2) Was macht Python besonders
Python ist eine höhere Programmiersprache (high-level programming language), das heißt, sie abstrahiert viele der komplexen Details weg, die Sie in niedrigeren Sprachen selbst handhaben müssten. Das macht Python sowohl für Einsteiger als auch für Profis besonders attraktiv:
Lesbare Syntax: Python-Code liest sich fast wie Englisch. Um zum Beispiel "Hello, World!" in Python auszugeben, schreiben Sie:
# hello_simple.py
print("Hello, World!")Ausgabe:
Hello, World!Vergleichen Sie das mit Sprachen wie C oder Java, die für dieselbe Aufgabe deutlich mehr Boilerplate-Code benötigen.
Interpretierte Sprache: Python ist eine interpretierte Sprache (interpreted language). Das bedeutet, Sie müssen Ihren Code nicht erst in Maschinencode kompilieren, bevor Sie ihn ausführen. Stattdessen liest ein Programm namens Python-Interpreter Ihren Code und führt ihn Zeile für Zeile aus. Das beschleunigt die Entwicklung, weil Sie die Ergebnisse Ihrer Codeänderungen sofort sehen können.
Vielseitig und leistungsfähig: Trotz seiner Einsteigerfreundlichkeit wird Python in professionellen Umgebungen eingesetzt für:
- Webentwicklung (Webseiten und Webanwendungen)
- Datenanalyse und -visualisierung
- Maschinelles Lernen und künstliche Intelligenz
- Wissenschaftliches Rechnen
- Automatisierung und Scripting
- Spieleentwicklung
- Und vieles mehr
Große Community und Bibliotheken: Python hat eine enorme Community von Nutzern und tausende vorgefertigte Code-Bibliotheken, die seine Fähigkeiten erweitern. Das bedeutet, Lösungen für gängige Probleme sind oft nur einen import einer Bibliothek entfernt.
1.1.3) Wie Python Ihren Code ausführt
Wenn Sie Python-Code schreiben und ausführen, passiert hinter den Kulissen Folgendes:
-
You write code: You create a file containing Python instructions or type them directly into the Python interactive shell.
-
The interpreter reads your code: The Python interpreter checks your code for syntax errors (mistakes in how you've written the code).
-
Translation to bytecode: If there are no syntax errors, Python translates your code into an intermediate form called bytecode. Bytecode is an intermediate form of your code – a translation into a language, die ungefähr auf halbem Weg zwischen Python und Maschinencode liegt. Er ist für den Computer einfacher auszuführen als Python, aber abstrakter als reiner Maschinencode.
-
Execution: The Python Virtual Machine (PVM) executes the bytecode, performing the operations you specified.
-
Output: You see the results of your program – whether that's text printed to the screen, a file created, or any other action.
Das Schöne an diesem Prozess ist, dass Sie sich um die meisten dieser Schritte nicht kümmern müssen. Sie schreiben Code, führen ihn aus und sehen Ergebnisse. Den Rest übernimmt der Interpreter.
1.2) Python installieren und den Interpreter ausführen
Um mit Python zu programmieren, müssen Sie Python zunächst auf Ihrem Computer installieren. In diesem Abschnitt werden Sie durch den Installationsprozess geführt und überprüfen, ob alles korrekt funktioniert.
1.2.1) Prüfen, ob Python bereits installiert ist
Einige Betriebssysteme werden mit vorinstalliertem Python ausgeliefert. Bevor Sie etwas herunterladen, prüfen wir, ob Python bereits auf Ihrem System vorhanden ist.
Unter Windows:
-
Öffnen Sie die Eingabeaufforderung (Command Prompt):
- Drücken Sie
Windows + R, um den Ausführen-Dialog zu öffnen - Tippen Sie
cmdund drücken Sie Enter
- Drücken Sie
-
Geben Sie folgenden Befehl ein und drücken Sie Enter:
python --versionWenn Python installiert ist, sehen Sie eine Ausgabe wie:
Python 3.11.5Wenn Sie eine Fehlermeldung sehen wie 'python' is not recognized as an internal or external command, ist Python nicht installiert oder nicht in Ihrer Systemumgebungsvariablen PATH eingetragen.
Unter macOS:
-
Öffnen Sie die Terminal-Anwendung:
- Drücken Sie
Command + Space, um Spotlight zu öffnen - Tippen Sie
Terminalund drücken Sie Enter
- Drücken Sie
-
Geben Sie folgenden Befehl ein und drücken Sie Enter:
python3 --versionHinweis: Unter macOS verwenden Sie in der Regel python3 statt python, weil python eventuell auf Python 2 verweist, das veraltet ist.
Wenn Python 3 installiert ist, sehen Sie eine Ausgabe wie:
Python 3.11.5Unter Linux:
-
Öffnen Sie Ihr Terminalprogramm (abhängig von der Distribution)
-
Geben Sie folgenden Befehl ein und drücken Sie Enter:
python3 --versionDie meisten modernen Linux-Distributionen werden mit vorinstalliertem Python 3 ausgeliefert.
1.2.2) Python herunterladen und installieren
Wenn Python nicht installiert ist oder Sie eine ältere Version haben, folgen Sie diesen Schritten, um die aktuelle Version zu installieren.
Installation unter Windows:
-
Besuchen Sie die offizielle Python-Webseite: https://www.python.org/downloads/
-
Klicken Sie auf die Schaltfläche „Download Python“ (sie zeigt die neueste Version, etwa „Download Python 3.11.5“)
-
Führen Sie das heruntergeladene Installationsprogramm (.exe-Datei) aus
-
Wichtig: Aktivieren Sie auf dem ersten Bildschirm des Installationsprogramms das Kontrollkästchen „Add Python to PATH“. Das ist entscheidend – dadurch können Sie Python von jeder Eingabeaufforderung aus ausführen.
Was passiert, wenn Sie es vergessen: Wenn Sie „Add Python to PATH“ nicht aktivieren, können Sie Python nicht von der Kommandozeile aus ausführen und erhalten eine Fehlermeldung wie
'python' is not recognized as an internal or external command. In diesem Fall müssen Sie entweder Python neu installieren (diesmal mit gesetztem Häkchen) oder Python manuell zu Ihrer PATH-Variable hinzufügen, was für Einsteiger deutlich komplizierter ist. -
Klicken Sie auf „Install Now“ und warten Sie, bis die Installation abgeschlossen ist
-
Überprüfen Sie die Installation, indem Sie eine neue Eingabeaufforderung öffnen und Folgendes eingeben:
python --versionSie sollten die Versionnummer sehen, die Sie gerade installiert haben.
Installation unter macOS:
-
Besuchen Sie https://www.python.org/downloads/
-
Klicken Sie auf die Schaltfläche „Download Python“ für die neueste Version
-
Öffnen Sie die heruntergeladene .pkg-Datei und folgen Sie dem Installationsassistenten
-
Überprüfen Sie die Installation, indem Sie das Terminal öffnen und Folgendes eingeben:
python3 --versionInstallation unter Linux:
Die meisten Linux-Distributionen enthalten bereits Python 3, aber falls Sie es installieren oder aktualisieren müssen:
Für Ubuntu/Debian-basierte Systeme:
sudo apt update
sudo apt install python3Für Fedora/Red-Hat-basierte Systeme:
sudo dnf install python3Überprüfen mit:
python3 --version1.2.3) Den Python-Interpreter ausführen
Sobald Python installiert ist, können Sie den Python-Interpreter direkt von der Kommandozeile oder dem Terminal aus starten. Der Interpreter ist das Programm, das Python-Code ausführt. Wenn Sie den Interpreter direkt starten, öffnet sich die interaktive Shell (REPL), die wir im nächsten Abschnitt ausführlich erkunden. Das unterscheidet sich vom Ausführen einer Skriptdatei, was wir in Abschnitt 1.4 behandeln.
Unter Windows:
Öffnen Sie die Eingabeaufforderung und tippen Sie:
pythonUnter macOS und Linux:
Öffnen Sie das Terminal und tippen Sie:
python3Sie sollten etwas in dieser Art sehen:
Python 3.11.5 (main, Sep 11 2023, 13:54:46) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>Die Eingabeaufforderung >>> zeigt an, dass Python bereit ist, Ihre Befehle entgegenzunehmen. Das nennt man die Python-interaktive Shell oder REPL (Read-Eval-Print Loop), die wir im nächsten Abschnitt ausführlich erkunden werden.
Um den Interpreter zu verlassen, können Sie:
exit()eingeben und Enter drückenquit()eingeben und Enter drückenCtrl + Ddrücken (unter macOS/Linux) oderCtrl + Zund dann Enter (unter Windows)
Herzlichen Glückwunsch! Sie haben Python erfolgreich installiert und überprüft, dass der Interpreter funktioniert. Sie sind nun bereit, mit dem Schreiben von Python-Code zu beginnen.
1.3) Die Python-interaktive Shell (REPL) verwenden
Die Python-interaktive Shell, meist REPL (Read-Eval-Print Loop) genannt, ist eine der nützlichsten Funktionen von Python für Lernen und Experimente. Sie ermöglicht es Ihnen, Python-Code einzugeben und sofort das Ergebnis zu sehen, was sie ideal macht, um neue Konzepte auszuprobieren, kleine Codeausschnitte zu testen und die Möglichkeiten von Python zu erkunden.
1.3.1) Was ist die REPL?
Die Python-interaktive Shell, meist REPL (Read-Eval-Print Loop) genannt, ist eine der nützlichsten Funktionen von Python für Lernen und Experimente. Die REPL wird auch Python-interaktive Shell oder einfach der interaktive Interpreter genannt – all diese Begriffe beziehen sich auf dasselbe: die >>>-Eingabeaufforderung, an der Sie Python-Code eingeben und sofortige Ergebnisse sehen können.
REPL steht für:
- Read (Lesen): Python liest den Code, den Sie eingeben
- Eval (Auswerten): Python wertet diesen Code aus (führt ihn aus)
- Print (Ausgeben): Python gibt das Ergebnis aus
- Loop (Schleife): Python kehrt zurück, um weiteren Code zu lesen
Dieser Zyklus läuft weiter, bis Sie die REPL verlassen. Es ist wie ein Gespräch mit Python – Sie geben eine Anweisung, Python antwortet, und Sie können direkt danach die nächste Anweisung geben, basierend auf der Antwort.
1.3.2) Die REPL starten und verwenden
Um die REPL zu starten, öffnen Sie Ihre Kommandozeile oder Ihr Terminal und tippen Sie python (Windows) oder python3 (macOS/Linux), wie wir es im vorherigen Abschnitt getan haben.
Sobald Sie die Eingabeaufforderung >>> sehen, können Sie beginnen, Python-Code einzugeben. Probieren wir einige einfache Beispiele:
Einfache Arithmetik:
>>> 5 + 3
8
>>> 10 * 2
20
>>> 15 / 3
5.0Beachten Sie, dass Sie in der REPL kein print() verwenden müssen – Python zeigt das Ergebnis jedes Ausdrucks automatisch an. Das ist eine der Bequemlichkeiten der REPL.
Mit Text arbeiten:
>>> "Hello, World!"
'Hello, World!'
>>> "Python" + " is " + "great"
'Python is great'Wenn Sie nur eine Zeichenkette (Text in Anführungszeichen) eintippen, zeigt Python diese mit Anführungszeichen an – das ist die Art, wie Python die Zeichenkette darstellt. Wenn Sie Text ohne Anführungszeichen anzeigen möchten, verwenden Sie die Funktion print():
>>> print("Hello, World!")
Hello, World!Beachten Sie den Unterschied: Wenn Sie nur die Zeichenkette eingeben, wird sie mit Anführungszeichen angezeigt (die Darstellung durch Python), aber print() gibt sie ohne Anführungszeichen aus (den tatsächlichen Text).
Werte in Variablen speichern:
Während das direkte Eintippen von Werten für schnelle Tests nützlich ist, möchten Sie Werte oft in Variablen speichern – benannte Behälter, die Daten enthalten, die Sie in Ihrem Programm wiederverwenden können.
>>> name = "Alice"
>>> name
'Alice'
>>> age = 25
>>> age
25Wenn Sie einer Variablen einen Wert zuweisen (wie name = "Alice"), gibt Python nichts aus. Wenn Sie jedoch nur den Variablennamen eintippen, zeigt Python Ihnen ihren Wert.
Python als Taschenrechner verwenden:
>>> 2 + 2
4
>>> (10 + 5) * 2
30
>>> 100 / 4
25.0
>>> 7 % 3
1Die REPL ist hervorragend für schnelle Berechnungen und zum Testen mathematischer Ausdrücke geeignet.
1.3.3) Mehrzeilige Eingaben in der REPL
Manchmal müssen Sie Code schreiben, der sich über mehrere Zeilen erstreckt, zum Beispiel Funktionsdefinitionen. Die REPL kommt damit gut zurecht, indem sie ihre Eingabeaufforderung ändert. Wenn Sie eine mehrzeilige Anweisung beginnen, wechselt die Eingabeaufforderung von >>> zu ..., um anzuzeigen, dass Python darauf wartet, dass Sie die Anweisung vervollständigen.
Hier ein einfaches Beispiel mit einer Funktion (Hinweis: Wir lernen Funktionen (functions) im Detail in Kapitel 19 kennen. Dieses Beispiel zeigt nur, wie die REPL mehrzeilige Eingaben mit der ...-Fortsetzungsaufforderung handhabt):
>>> def greet():
... print("Hello!")
...
>>> greet()
Hello!Nachdem Sie die erste Zeile eingegeben und Enter gedrückt haben, wird die Eingabeaufforderung zu .... Sie geben die eingerückte Zeile ein, drücken Enter und drücken dann noch einmal Enter in einer leeren Zeile, um den Code auszuführen.
1.3.4) Auf vorherige Befehle zugreifen
Die REPL führt eine Historie der Befehle, die Sie eingegeben haben. Sie können mit den Pfeiltasten nach oben und unten durch Ihren Verlauf navigieren:
- Pfeil nach oben: Zeigt den vorherigen Befehl
- Pfeil nach unten: Zeigt den nächsten Befehl (wenn Sie zurückgegangen sind)
Das ist äußerst nützlich, wenn Sie einen Befehl ändern und erneut ausführen möchten oder wenn Sie sich erinnern wollen, was Sie zuvor eingegeben haben.
1.3.5) Hilfe in der REPL abrufen
Die REPL von Python hat eingebaute Hilfefunktionen. Sie können Informationen über Python-Objekte, Funktionen (functions) und Module direkt abrufen.
Diese Hilfefunktionen sind besonders nützlich, wenn Sie Python erkunden und erfahren möchten, was verfügbar ist. Wenn Sie zum Beispiel mit Zeichenketten arbeiten und sich fragen, welche Methoden verfügbar sind, zeigt dir(str) Ihnen alle Optionen. Im Verlauf dieses Buches werden Sie diese Werkzeuge zunehmend wertvoll finden, um eigenständig zu experimentieren.
>>> help()Dies startet das Hilfesystem. Sie können dann den Namen von etwas eingeben, zu dem Sie Hilfe möchten, oder quit eingeben, um das Hilfesystem zu verlassen.
Sie können auch direkt Hilfe zu bestimmten Dingen abrufen:
>>> help(print)Das zeigt die Dokumentation zur Funktion print(). Drücken Sie q, um die Hilfeanzeige zu verlassen.
Eine weitere nützliche Funktion ist dir(), die die Attribute und Methoden auflistet, die für ein Objekt verfügbar sind. (Hinweis: Attribute und Methoden sind Eigenschaften und Aktionen, die einem Objekt zur Verfügung stehen – wir werden in Kapitel 43 mehr darüber lernen. Wir werden auch in Kapitel 22 lernen, wie man Module importiert. Dieses Beispiel zeigt, wie die REPL hilft, die Fähigkeiten von Python zu erkunden.)
>>> dir(str)Das zeigt alle Methoden, die für Zeichenkettenobjekte verfügbar sind.
1.3.6) Wann die REPL am nützlichsten ist
Die REPL ist besonders gut geeignet für:
-
Lernen und Entdecken: Wenn Sie ein neues Konzept lernen, erlaubt Ihnen die REPL, sofort zu experimentieren, ohne Dateien zu erstellen.
-
Testen kleiner Codeausschnitte: Bevor Sie Code in Ihr Programm einfügen, können Sie ihn in der REPL testen, um sicherzustellen, dass er wie erwartet funktioniert.
-
Schnelle Berechnungen: Die REPL ist ein leistungsfähiger Taschenrechner, der immer zur Verfügung steht.
-
Debugging: Wenn Ihr Programm nicht funktioniert, können Sie die REPL verwenden, um einzelne Teile Ihres Codes isoliert zu testen.
-
Erkunden von Bibliotheken: Wenn Sie eine neue Bibliothek kennenlernen, können Sie sie in der REPL importieren und ihre Funktionen interaktiv ausprobieren.
Die REPL hat jedoch auch Einschränkungen. Code, den Sie in der REPL schreiben, verschwindet, wenn Sie sie schließen – es gibt keine Möglichkeit, Ihre REPL-Sitzung als Programm zu speichern. Für jeden Code, den Sie behalten und wiederholt ausführen möchten, benötigen Sie Skriptdateien, die wir im nächsten Abschnitt behandeln.
1.3.7) Die REPL beenden
Wenn Sie mit der REPL fertig sind, können Sie sie auf verschiedene Arten beenden:
>>> exit()Oder:
>>> quit()Oder verwenden Sie Tastenkombinationen:
- Windows: Drücken Sie
Ctrl + Zund dann Enter - macOS/Linux: Drücken Sie
Ctrl + D
Nach dem Beenden kehren Sie zu Ihrer normalen Kommandozeile oder Ihrem Terminal zurück.
1.4) Python-Skriptdateien erstellen und ausführen
Die REPL ist hervorragend für Experimente und schnelle Tests, aber was ist, wenn Sie Ihren Code speichern und später erneut ausführen möchten? Was ist, wenn Sie ein längeres Programm mit Dutzenden oder Hunderten von Zeilen schreiben möchten? Für solche Situationen benötigen Sie Skriptdateien – dauerhafte Dateien, die Python-Code enthalten und die Sie bearbeiten, speichern und wiederholt ausführen können.
Während die REPL hervorragend für Experimente geeignet ist, besteht der Großteil der Python-Programmierung aus dem Schreiben von Skriptdateien – Textdateien mit Python-Code, die gespeichert, bearbeitet und wiederholt ausgeführt werden können. In diesem Abschnitt lernen Sie, wie Sie Ihr erstes Python-Skript erstellen und es von der Kommandozeile ausführen.
1.4.1) Was ist ein Python-Skript?
Ein Python-Skript ist einfach eine Textdatei mit Python-Code, die mit der Endung .py gespeichert wird. Im Gegensatz zu Code, den Sie in die REPL eingeben, haben Skriptdateien folgende Eigenschaften:
- Sie sind dauerhaft – Sie können sie speichern und später ausführen
- Sie können leicht bearbeitet und verändert werden
- Sie können so viel Code enthalten, wie Sie benötigen
- Sie können mit anderen geteilt werden
- Sie können automatisch oder nach Zeitplan ausgeführt werden
Denken Sie an eine Skriptdatei wie an ein Rezept, das Sie aufschreiben, während die REPL eher dem Kochen gleicht, während Sie das Rezept spontan erfinden. Beides hat seinen Platz, aber für alles, was umfangreicher ist, werden Sie eine Skriptdatei verwenden wollen.
1.4.2) Einen Texteditor auswählen
Um Python-Skripte zu erstellen, benötigen Sie einen Texteditor. Verwenden Sie keine Textverarbeitungsprogramme wie Microsoft Word oder Google Docs – diese fügen Formatierungen hinzu, die Python nicht versteht.
Gute Optionen für Einsteiger:
-
IDLE: Wird mit Python gebündelt. Einfach und zum Lernen gedacht.
- Unter Windows: Suchen Sie im Startmenü nach „IDLE“
- Unter macOS/Linux: Tippen Sie
idle3im Terminal
-
Visual Studio Code (VS Code): Kostenlos, leistungsfähig und von Profis weit verbreitet. Hervorragende Python-Unterstützung durch Erweiterungen.
- Download: https://code.visualstudio.com/
-
PyCharm Community Edition: Eine voll ausgestattete IDE (Integrated Development Environment) speziell für Python.
- Download: https://www.jetbrains.com/pycharm/
-
Notepad++ (nur Windows): Leichtgewichtig und einfach.
- Download: https://notepad-plus-plus.org/
-
Sublime Text: Schnell und elegant, mit guter Python-Unterstützung.
- Download: https://www.sublimetext.com/
Für dieses Buch verwenden wir einfache Beispiele, die mit jedem Texteditor funktionieren. Wählen Sie den Editor, der sich für Sie am angenehmsten anfühlt.
1.4.3) Ihr erstes Python-Skript erstellen
Erstellen wir ein einfaches Python-Skript, das Begrüßungsnachrichten ausgibt.
Schritt 1: Neue Datei erstellen
Öffnen Sie Ihren gewählten Texteditor und erstellen Sie eine neue Datei. Speichern Sie sie als hello.py an einem Ort, den Sie sich gut merken (z. B. auf Ihrem Desktop oder in einem eigenen Ordner für Python-Projekte).
Wichtig: Die Endung .py ist entscheidend. Sie zeigt Ihrem Betriebssystem und Ihrem Editor, dass es sich um eine Python-Datei handelt.
Schritt 2: Code schreiben
Tippen Sie folgenden Code in Ihre Datei:
# hello.py
# My first Python script
print("Hello, World!")
print("Welcome to Python programming!")Zeilen, die mit # beginnen, sind Kommentare – Notizen für Menschen, die den Code lesen. Python ignoriert sie vollständig. Kommentare helfen Ihnen, sich daran zu erinnern, was Ihr Code tut, und helfen anderen, Ihre Arbeit zu verstehen. Wir werden Kommentare in Kapitel 2 ausführlicher behandeln.
Schritt 3: Datei speichern
Speichern Sie die Datei. Achten Sie darauf, dass sie als hello.py gespeichert ist, nicht als hello.py.txt oder mit einer anderen Endung.
Schauen wir uns an, was dieser Code macht:
print("Hello, World!")weist Python an, den Text „Hello, World!“ auf dem Bildschirm anzuzeigen.print("Welcome to Python programming!")zeigt eine weitere Nachricht an.
Lassen Sie uns ein weiteres Beispiel hinzufügen, um die Lücke zu überbrücken, bevor wir zu komplexeren Skripten übergehen:
# greetings.py
# A script with multiple print statements
print("Python is fun!")
print("Let's learn together.")
print("This is exciting!")Speichern Sie dies als greetings.py. Dieses Beispiel verwendet drei print-Anweisungen, aber noch keine Variablen, damit Sie sich mit der Grundstruktur vertraut machen können, bevor wir zu komplexeren Konzepten übergehen.
1.4.4) Ihr Skript von der Kommandozeile ausführen
Nun, da Sie Ihr Skript erstellt haben, führen wir es aus.
Schritt 1: Kommandozeile/Terminal öffnen
- Windows: Öffnen Sie die Eingabeaufforderung
- macOS/Linux: Öffnen Sie das Terminal
Schritt 2: In das Verzeichnis Ihres Skripts wechseln
Verwenden Sie den Befehl cd (change directory), um in das Verzeichnis zu wechseln, in dem Sie hello.py gespeichert haben. Wenn Sie es zum Beispiel auf Ihrem Desktop gespeichert haben:
Windows:
cd DesktopmacOS/Linux:
cd ~/DesktopWenn Sie beim Versuch, Ihr Skript auszuführen, eine Fehlermeldung wie „No such file or directory“ erhalten, befinden Sie sich wahrscheinlich im falschen Ordner. Verwenden Sie den Befehl cd, um in das Verzeichnis zu wechseln, in dem Sie Ihr Skript gespeichert haben.
Um zu überprüfen, ob Sie am richtigen Ort sind, können Sie sich die Dateien auflisten lassen:
Windows:
dirmacOS/Linux:
lsSie sollten hello.py in der Liste sehen.
Schritt 3: Ihr Skript ausführen
Windows:
python hello.pymacOS/Linux:
python3 hello.pySie sollten folgende Ausgabe sehen:
Hello, World!
Welcome to Python programming!Herzlichen Glückwunsch! Sie haben gerade Ihr erstes Python-Skript erstellt und ausgeführt.
1.4.5) Ausführung eines Skripts verstehen
Wenn Sie ein Python-Skript ausführen, passiert Folgendes:
- Sie tippen den Befehl zum Ausführen Ihres Skripts
- Ihr Betriebssystem startet den Python-Interpreter
- Der Interpreter liest Ihre gesamte Skriptdatei
- Er prüft auf Syntaxfehler (Fehler in der Art, wie Sie den Code geschrieben haben)
- Wenn Fehler vorliegen, zeigt er eine Fehlermeldung an und stoppt
- Wenn keine Fehler vorliegen, führt er Ihren Code Zeile für Zeile von oben nach unten aus
- Jede Ausgabe (von
print()-Anweisungen) wird angezeigt - Wenn das Skript fertig ist, kehren Sie zur Kommandozeile zurück
1.4.6) Ein etwas komplexeres Beispiel
Erstellen wir ein etwas komplexeres Skript, das mehrere Konzepte demonstriert. Zuerst fügen wir ein Zwischenbeispiel hinzu, das Variablen sanfter einführt:
# simple_variable.py
# Using a variable for the first time
message = "Hello, Python!"
print(message)Ausgabe:
Hello, Python!Das schlägt die Brücke zwischen reinen print-Anweisungen und komplexeren Beispielen. Schauen wir uns jetzt ein Skript mit mehreren Variablen an:
# student_info.py
# A script that uses variables and multiple print statements
name = "Alice"
age = 25
city = "New York"
print("Student Information")
print("-------------------")
print("Name:", name)
print("Age:", age)
print("City:", city)Speichern Sie dies als student_info.py und führen Sie es aus:
Windows:
python student_info.pymacOS/Linux:
python3 student_info.pyAusgabe:
Student Information
-------------------
Name: Alice
Age: 25
City: New YorkDieses Skript demonstriert:
- Das Erstellen von Variablen (wir werden in Kapitel 3 mehr über Variablen lernen)
- Die Verwendung mehrerer
print()-Anweisungen - Das Ausgeben von festem Text und Variablenwerten
1.4.7) Best Practices für Skriptdateien
Schon in dieser frühen Phase ist es gut, einige Gewohnheiten zu entwickeln:
-
Verwenden Sie aussagekräftige Dateinamen: Benennen Sie Ihre Dateien nach ihrer Aufgabe.
student_info.pyist besser alstest.pyoderprogram1.py, weil Sie sich auch noch in sechs Monaten daran erinnern, was die Datei macht, wenn Sie sie in einer Dateiliste sehen. -
Halten Sie Skripte organisiert: Erstellen Sie einen eigenen Ordner für Ihre Python-Projekte. Verteilen Sie Skripte nicht überall auf Ihrem Computer. Das macht es leichter, Ihre Arbeit zu finden und hält Ihre Dateien übersichtlich.
-
Fügen Sie Kommentare hinzu: Beginnen Sie jedes Skript mit einem Kommentar, der erklärt, was es macht. Das hilft Ihnen später und hilft anderen, Ihren Code zu verstehen.
-
Ein Skript, ein Zweck: Jedes Skript sollte eine Hauptaufgabe haben. Versuchen Sie nicht, mehrere voneinander unabhängige Aufgaben in eine Datei zu packen. Das macht Ihren Code leichter verständlich und wartbar.
-
Häufig testen: Führen Sie Ihr Skript oft aus, während Sie es schreiben. Warten Sie nicht, bis Sie 100 Zeilen geschrieben haben – testen Sie nach jeweils ein paar Zeilen. Das hilft Ihnen, Fehler früh zu finden, wenn sie leichter zu beheben sind.
1.5) Ein erster Blick auf Fehler und Tracebacks
Fehler sind ein natürlicher Teil des Programmierens. Jeder Programmierer, vom Einsteiger bis zum Experten, stößt regelmäßig auf Fehler. Zu lernen, Fehlermeldungen zu lesen und zu verstehen, ist eine entscheidende Fähigkeit, die Ihnen hilft, Probleme schnell zu beheben und ein selbstbewussterer Programmierer zu werden.
1.5.1) Arten von Fehlern
Python unterscheidet zwischen zwei Hauptkategorien von Fehlern:
Syntaxfehler (Syntax Errors): Fehler in der Art, wie Sie den Code geschrieben haben – Verstöße gegen die Grammatikregeln von Python. Python entdeckt diese, bevor Ihr Code ausgeführt wird. Denken Sie an Syntaxfehler wie Grammatikfehler beim Schreiben – Python kann nicht einmal verstehen, was Sie sagen wollen.
Ausnahmen (Exceptions): Fehler, die auftreten, während Ihr Code läuft. Die Syntax ist korrekt, aber während der Ausführung geht etwas schief. Ausnahmen sind eher Laufzeitprobleme – Python versteht Ihre Anweisungen, kann sie aber nicht ausführen.
Sehen wir uns beide Arten anhand von Beispielen an.
1.5.2) Syntaxfehler
Ein Syntaxfehler tritt auf, wenn Sie Code schreiben, der nicht den Regeln von Python entspricht. Python kann Ihren Code dann nicht einmal zu laufen beginnen, weil es nicht versteht, was Sie geschrieben haben.
Beispiel 1: Fehlender Doppelpunkt
Erstellen Sie eine Datei namens syntax_error1.py:
# syntax_error1.py
# This code has a syntax error
if 5 > 3
print("Five is greater than three")Wenn Sie versuchen, dies auszuführen:
python syntax_error1.pysehen Sie:
File "syntax_error1.py", line 4
if 5 > 3
^
SyntaxError: expected ':'Python teilt Ihnen mehrere Dinge mit:
- Welche Datei das Problem hat:
syntax_error1.py - Welche Zeile das Problem hat: Zeile 4
- Wo in dieser Zeile das Problem liegt: das
^zeigt auf die Stelle - Welche Art von Fehler:
SyntaxError - Eine hilfreiche Beschreibung:
expected ':'
Das Problem ist, dass if-Anweisungen in Python mit einem Doppelpunkt (:) enden müssen. Der korrekte Code ist:
# syntax_error1_fixed.py
# Fixed version
if 5 > 3:
print("Five is greater than three")Ausgabe:
Five is greater than threeBeispiel 2: Nicht zueinander passende Anführungszeichen
# syntax_error2.py
# Another syntax error example
message = "Hello, World!'
print(message)Wenn Sie dies ausführen, erhalten Sie:
File "syntax_error2.py", line 4
message = "Hello, World!'
^
SyntaxError: unterminated string literal (detected at line 4)Das Problem ist, dass die Zeichenkette mit einem doppelten Anführungszeichen (") beginnt, aber mit einem einfachen (') endet. Python verlangt passende Anführungszeichen. Beheben Sie dies, indem Sie passende Anführungszeichen verwenden:
# syntax_error2_fixed.py
# Fixed version
message = "Hello, World!"
print(message)Ausgabe:
Hello, World!1.5.3) Laufzeit-Ausnahmen (Runtime Exceptions)
Laufzeit-Ausnahmen (oder kurz „Exceptions“) treten auf, wenn Ihr Code syntaktisch korrekt ist, aber während der Ausführung etwas schiefgeht.
Beispiel 1: NameError
# name_error.py
# This code will cause a NameError
print(greeting)Wenn Sie dies ausführen:
python name_error.pysehen Sie:
Traceback (most recent call last):
File "name_error.py", line 4, in <module>
print(greeting)
^^^^^^^^
NameError: name 'greeting' is not definedDies nennt man einen Traceback. Zerlegen wir ihn:
- „Traceback (most recent call last):“ zeigt an, dass nun ein Traceback folgt, der zeigt, wo der Fehler aufgetreten ist.
- Datei- und Zeileninformation:
File "name_error.py", line 4, in <module>sagt Ihnen, in welcher Datei und in welcher Zeile der Fehler aufgetreten ist. - Der problematische Code:
print(greeting)zeigt genau die Zeile, die fehlgeschlagen ist. - Fehlertyp:
NameErrorsagt Ihnen, welche Art von Fehler aufgetreten ist. - Fehlerbeschreibung:
name 'greeting' is not definederklärt das Problem – Sie versuchen, eine Variable zu verwenden, die nicht existiert.
Um dies zu beheben, müssen Sie die Variable definieren, bevor Sie sie verwenden:
# name_error_fixed.py
# Fixed version
greeting = "Hello!"
print(greeting)Ausgabe:
Hello!Beispiel 2: TypeError
# type_error.py
# This code will cause a TypeError
number = 5
text = "The number is "
result = text + number
print(result)Wenn Sie dies ausführen, erhalten Sie:
Traceback (most recent call last):
File "type_error.py", line 6, in <module>
result = text + number
~~~~~^~~~~~~~
TypeError: can only concatenate str (not "int") to strDie Fehlermeldung sagt Ihnen, dass Sie nicht direkt eine Zeichenkette und eine ganze Zahl addieren (konkatenieren) können. Python weiß nicht, ob Sie eine mathematische Addition oder eine Zeichenkettenverknüpfung wollen.
Um dies zu beheben, wandeln Sie die Zahl in eine Zeichenkette um:
# type_error_fixed.py
# Fixed version
number = 5
text = "The number is "
result = text + str(number)
print(result)Ausgabe:
The number is 5Beispiel 3: ZeroDivisionError
Was passiert, wenn Sie versuchen, durch Null zu teilen?
# zero_division.py
# This code will cause a ZeroDivisionError
result = 10 / 0
print(result)Wenn Sie dies ausführen, erhalten Sie:
Traceback (most recent call last):
File "zero_division.py", line 4, in <module>
result = 10 / 0
~~~^~~
ZeroDivisionError: division by zeroDieser Fehler erklärt sich selbst: Sie können nicht durch Null teilen. Das ist mathematisch undefiniert, daher löst Python einen Fehler aus.
1.5.4) Tracebacks effektiv lesen
Wenn Sie auf einen Traceback stoßen, lesen Sie ihn von unten nach oben. Wir lesen von unten nach oben, weil die unterste Zeile zeigt, was schiefgegangen ist (der Fehlertyp und die Meldung), während die Zeilen darüber die Sequenz von Funktionsaufrufen (functions) zeigen, die zum Fehler geführt haben. Für einfache Programme wie unsere sagt Ihnen die unterste Zeile alles, was Sie wissen müssen.
- Unten beginnen: Schauen Sie sich zuerst den Fehlertyp und die Fehlermeldung an.
- Den Fehler verstehen: Was sagt Ihnen Python, was schiefgegangen ist?
- Die Stelle finden: Schauen Sie auf die Datei und die Zeilennummer, wo der Fehler auftrat.
- Den Code untersuchen: Schauen Sie sich diese Zeile in Ihrer Datei an.
- Falls nötig zurückverfolgen: Manchmal liegt das eigentliche Problem in der Zeile vor derjenigen, auf die Python zeigt.
1.5.5) Häufige Anfängerfehler
Hier sind einige Fehler, auf die Sie beim Lernen von Python wahrscheinlich stoßen werden:
Einrückungsfehler (Indentation Errors):
Python verwendet Einrückungen (Leerzeichen oder Tabs am Zeilenanfang), um Codeblöcke zu definieren. Falsche Einrückungen verursachen Fehler:
# indentation_error.py
# Incorrect indentation
print("First line")
print("Second line") # This line is incorrectly indentedFehler:
File "indentation_error.py", line 5
print("Second line")
^
IndentationError: unexpected indentRechtschreibfehler:
Python unterscheidet Groß- und Kleinschreibung. Print ist nicht dasselbe wie print:
# spelling_error.py
# Incorrect capitalization
Print("Hello") # Should be print, not PrintFehler:
Traceback (most recent call last):
File "spelling_error.py", line 4, in <module>
Print("Hello")
^^^^^
NameError: name 'Print' is not definedFehlende Klammern:
In Python 3 benötigt print Klammern:
# missing_parentheses.py
# Missing parentheses
print "Hello" # Should be print("Hello")Fehler:
File "missing_parentheses.py", line 4
print "Hello"
^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?Beachten Sie, wie hilfreich die Fehlermeldung von Python hier ist – sie schlägt sogar die Korrektur vor!
1.5.6) Strategien zum Umgang mit Fehlern
Wenn Sie auf einen Fehler stoßen:
-
Keine Panik: Fehler sind normal. Jeder Programmierer sieht sie ständig.
-
Lesen Sie die Fehlermeldung sorgfältig: Die Fehlermeldungen von Python sind in der Regel hilfreich. Sie sagen Ihnen, was schiefgegangen ist und wo.
-
Überprüfen Sie die Zeilennummer: Gehen Sie zu der Zeile, die Python angibt, und suchen Sie nach dem Problem.
-
Schauen Sie auf benachbarte Zeilen: Manchmal liegt der Fehler tatsächlich in der Zeile vor derjenigen, auf die Python zeigt.
-
Prüfen Sie auf häufige Fehler: Fehlende Doppelpunkte, nicht passende Anführungszeichen, falsche Einrückungen und Tippfehler sind sehr häufig.
-
Kleine Änderungen testen: Beheben Sie jeweils eine Sache und testen Sie nach jeder Änderung.
-
Verwenden Sie die REPL: Wenn Sie sich bei etwas unsicher sind, testen Sie es zuerst in der REPL.
-
Suchen Sie nach der Fehlermeldung: Wenn Sie eine Fehlermeldung nicht verstehen, suchen Sie online danach. Häufig finden Sie Erklärungen und Lösungen.
1.5.7) Ein vollständiges Beispiel mit Fehlern und Korrekturen
Schauen wir uns ein Skript mit mehreren Fehlern an und beheben wir diese Schritt für Schritt. Dieses Programm soll Informationen über einen Studenten anzeigen und sein Alter in 10 Jahren berechnen:
Original (mit Fehlern):
# buggy_student.py
# This program has several errors
student_name = "Alice
student_age = 25
print("Name:", student_name)
print("Age:" student_age)
print("In 10 years, you will be", student_age + "10")Wenn wir dies ausführen, entstehen mehrere Fehler. Beheben wir sie nacheinander:
Fehler 1: Nicht abgeschlossene Zeichenkette
File "buggy_student.py", line 4
student_name = "Alice
^
SyntaxError: unterminated string literal (detected at line 4)Korrektur: Das schließende Anführungszeichen hinzufügen:
student_name = "Alice"Nach Beheben von Fehler 1 erhalten wir Fehler 2: Fehlendes Komma
File "buggy_student.py", line 8
print("Age:" student_age)
^^^^^^^^^^^
SyntaxError: invalid syntax. Perhaps you forgot a comma?Korrektur: Ein Komma zwischen Zeichenkette und Variable hinzufügen:
print("Age:", student_age)Nach Beheben von Fehler 2 erhalten wir Fehler 3: Typfehler
Traceback (most recent call last):
File "buggy_student.py", line 9, in <module>
print("In 10 years, you will be", student_age + "10")
~~~~~~~~~~~~^~~~~~
TypeError: unsupported operand type(s) for +: 'int' and 'str'Korrektur: „10“ in eine Ganzzahl umwandeln:
print("In 10 years, you will be", student_age + 10)Endgültige korrigierte Version:
# buggy_student_fixed.py
# Fixed version of the program
student_name = "Alice"
student_age = 25
print("Name:", student_name)
print("Age:", student_age)
print("In 10 years, you will be", student_age + 10)Ausgabe:
Name: Alice
Age: 25
In 10 years, you will be 35Dieses Beispiel zeigt, dass das Beheben von Fehlern oft ein iterativer Prozess ist. Sie beheben einen Fehler, führen den Code erneut aus und entdecken den nächsten Fehler. Das ist völlig normal.
1.6) Wann die interaktive Shell und wann Skriptdateien verwenden
Nachdem Sie nun sowohl die REPL als auch Skriptdateien kennengelernt haben, fragen Sie sich vielleicht, wann Sie was verwenden sollten. Beide sind wertvolle Werkzeuge, und erfahrene Python-Programmierer verwenden beide regelmäßig. Zu verstehen, wann welches Werkzeug sinnvoll ist, macht Sie effizienter.
1.6.1) Verwenden Sie die interaktive Shell (REPL), wenn:
1. Sie neue Konzepte lernen
Wenn Sie etwas Neues lernen, liefert Ihnen die REPL sofort Rückmeldungen:
>>> # Testing string methods
>>> text = "hello world"
>>> text.upper()
'HELLO WORLD'
>>> text.title()
'Hello World'
>>> text.capitalize()
'Hello world'Sie können mit verschiedenen Methoden experimentieren und sofort Ergebnisse sehen, ohne Dateien zu erstellen.
2. Sie kleine Codeausschnitte testen
Bevor Sie Code zu Ihrem Programm hinzufügen, testen Sie ihn in der REPL:
>>> # Testing a calculation
>>> price = 19.99
>>> quantity = 3
>>> total = price * quantity
>>> total
59.97
>>> # Looks good, now I can add this to my script3. Sie schnelle Berechnungen durchführen
Die REPL ist jederzeit als Taschenrechner verfügbar:
>>> # How many seconds in a day?
>>> 24 * 60 * 60
86400
>>> # What's 15% of 250?
>>> 250 * 0.15
37.54. Sie debuggen
Wenn Ihr Skript nicht funktioniert, verwenden Sie die REPL, um einzelne Teile zu testen:
>>> # My script isn't working. Let me test this part:
>>> numbers = [1, 2, 3, 4, 5]
>>> sum(numbers) / len(numbers)
3.0
>>> # This works, so the problem must be elsewhereHinweis: Wir lernen Listen (lists) in Kapitel 13 kennen. Dieses Beispiel zeigt, wie die REPL hilft, Codeausschnitte zu testen.
1.6.2) Verwenden Sie Skriptdateien, wenn:
1. Sie Programme schreiben, die Sie behalten möchten
Alles, was Sie speichern und erneut ausführen möchten, sollte in einer Skriptdatei stehen:
# temperature_converter.py
# A program to convert Fahrenheit to Celsius
fahrenheit = 98.6
celsius = (fahrenheit - 32) * 5/9
print("Temperature:", fahrenheit, "°F is", round(celsius, 1), "°C")Ausgabe:
Temperature: 98.6 °F is 37.0 °CSie können dieses Skript ausführen, wann immer Sie es brauchen, und Sie können es später ändern.
2. Sie mehrzeilige Programme schreiben
Obwohl Sie auch mehrzeiligen Code in der REPL schreiben können, ist das für umfangreicheren Code unhandlich. Verwenden Sie eine Skriptdatei:
# grade_calculator.py
# Calculate final grade from multiple scores
homework = 85
midterm = 78
final = 92
# Calculate weighted average
final_grade = (homework * 0.3) + (midterm * 0.3) + (final * 0.4)
print("Final Grade:", final_grade)Ausgabe:
Final Grade: 85.33. Sie Code mit anderen teilen
Skriptdateien können leicht geteilt werden, REPL-Sitzungen dagegen nicht:
# greeting.py
# A simple greeting program
name = input("What is your name? ")
print("Hello,", name + "! Welcome to Python.")Hinweis: Wir lernen die Funktion input() in Kapitel 2 kennen. Dieses Beispiel zeigt, wie Skripte geteilt werden können.
Sie können diese Datei an jemand anderen schicken, und er kann sie auf seinem Computer ausführen.
4. Sie wiederverwendbare Werkzeuge erstellen
Wenn Sie etwas erstellen, das Sie wiederholt verwenden werden, machen Sie daraus ein Skript:
# file_counter.py
# Count files in a directory
import os
directory = "." # Current directory
files = [f for f in os.listdir(directory) if os.path.isfile(f)]
print("Number of files:", len(files))Hinweis: Wir lernen das Importieren von Modulen in Kapitel 22 und List Comprehensions in Kapitel 34 kennen. Dieses Beispiel zeigt, wie Skripte wiederverwendbare Werkzeuge sein können.
5. Sie komplexe Logik entwickeln
Für alles mit mehreren Funktionen (functions), Klassen oder komplexer Logik verwenden Sie Skriptdateien:
# password_checker.py
# Check password strength
def check_password_strength(password):
"""Check if a password meets basic requirements."""
if len(password) < 8:
return "Too short"
if not any(c.isupper() for c in password):
return "Needs uppercase letter"
if not any(c.isdigit() for c in password):
return "Needs number"
return "Strong password"
# Test the function
test_password = "MyPass123"
result = check_password_strength(test_password)
print("Password '" + test_password + "':", result)Ausgabe:
Password 'MyPass123': Strong passwordHinweis: Wir lernen Funktionen (functions) in Kapitel 19 kennen. Dieses Beispiel zeigt, wie Skripte komplexe Logik handhaben.
6. Sie Aufgaben automatisieren
Skripte eignen sich hervorragend zur Automatisierung:
# backup_reminder.py
# Remind user to backup files
import datetime
today = datetime.date.today()
day_of_week = today.strftime("%A")
if day_of_week == "Friday":
print("Don't forget to backup your files!")
else:
print("Backup reminder: Next backup on Friday")Hinweis: Wir lernen das Modul datetime in Kapitel 39 kennen. Dieses Beispiel zeigt, wie Skripte Aufgaben automatisieren können.
1.6.3) Ein praktischer Workflow
Professionelle Python-Programmierer verwenden REPL und Skriptdateien typischerweise auf komplementäre Weise:
Beispiel-Workflow:
- In der REPL erkunden: Ein neues Konzept ausprobieren oder eine Berechnung testen
- In der REPL prototypisieren: Eine kleine funktionierende Version erstellen
- In ein Skript überführen: Sobald es funktioniert, in eine Skriptdatei übernehmen
- Im Skript erweitern: Weitere Funktionen, Fehlerbehandlung usw. hinzufügen
- Mit der REPL debuggen: Wenn etwas kaputtgeht, Teile in der REPL testen
- Skript fertigstellen: Programm abschließen, testen und speichern
1.6.4) Ein konkretes Beispiel
Sehen wir uns diesen Workflow in Aktion an. Angenommen, Sie möchten ein Programm schreiben, das die Fläche eines Kreises berechnet.
Schritt 1: In der REPL erkunden
>>> # What's the formula? Area = π * r²
>>> # Let me use a simple approximation for π
>>> 3.14159 * 5 * 5
78.53975
>>> # Looks right!Schritt 2: Ein Skript erstellen
Jetzt, da Sie wissen, dass es funktioniert, erstellen Sie circle_area.py:
# circle_area.py
# Calculate the area of a circle
radius = 5
pi = 3.14159
area = pi * radius * radius
print("Radius:", radius)
print("Area:", area)Ausgabe:
Radius: 5
Area: 78.53975Schritt 3: Das Skript erweitern
Machen Sie es so, dass es mit verschiedenen Radien funktioniert:
# circle_area_enhanced.py
# Calculate area for multiple circles
radii = [3, 5, 7, 10]
pi = 3.14159
for radius in radii:
area = pi * radius * radius
print("Circle with radius", radius, "has area", round(area, 2))Ausgabe:
Circle with radius 3 has area 28.27
Circle with radius 5 has area 78.54
Circle with radius 7 has area 153.94
Circle with radius 10 has area 314.16Hinweis: Wir lernen for-Schleifen (for loops) in Kapitel 11 kennen. In Kapitel 2 lernen wir, wie man das interaktiv macht, indem man Eingaben vom Benutzer entgegennimmt.
Dieser Workflow – in der REPL experimentieren und dann in einem Skript formalisieren – ist die Art, wie viele Python-Programme entwickelt werden.
1.6.5) Wichtige Erkenntnisse
Stärken der REPL:
- Sofortige Rückmeldung
- Hervorragend zum Lernen
- Ideal für schnelle Tests
- Sehr gut zur Exploration
- Kein Dateimanagement nötig
Einschränkungen der REPL:
- Code wird nicht gespeichert
- Unhandlich für mehrzeiligen Code
- Schwer zu teilen
- Nicht geeignet für komplexe Programme
Stärken von Skriptdateien:
- Code wird dauerhaft gespeichert
- Leicht zu bearbeiten und zu verändern
- Kann mit anderen geteilt werden
- Geeignet für komplexe Programme
- Kann wiederholt ausgeführt werden
- Kann automatisiert werden
Einschränkungen von Skriptdateien:
- Erfordert das Erstellen und Verwalten von Dateien
- Sie müssen sie ausführen, um Ergebnisse zu sehen
- Mehr Aufwand für schnelle Tests
Der beste Ansatz ist, beides zu verwenden: die REPL für Lernen, Testen und Exploration und Skriptdateien für alles, was Sie behalten, teilen oder wiederholt ausführen möchten.
1.7) Welche Python-Version dieses Buch verwendet (und warum das wichtig ist)
Python hat sich im Laufe der Jahre erheblich weiterentwickelt, und verschiedene Versionen können sich unterschiedlich verhalten. Das Verständnis von Python-Versionen hilft Ihnen, Verwirrung zu vermeiden und sicherzustellen, dass Ihr Code wie erwartet funktioniert.
Sie fragen sich vielleicht, warum wir Zeit auf Python-Versionen verwenden. Der Grund ist einfach: Sie werden Python-Code online, in Tutorials und in der Dokumentation sehen. Das Verständnis von Versionen hilft Ihnen zu erkennen, wann Code veraltet ist, und Verwirrung zu vermeiden, wenn etwas nicht wie erwartet funktioniert.
1.7.1) Python 2 vs. Python 3
Die bedeutendste Trennung in der Geschichte von Python ist die zwischen Python 2 und Python 3.
Python 2 wurde im Jahr 2000 veröffentlicht und war viele Jahre lang die dominierende Version. Es hatte jedoch einige Designprobleme, die nicht behoben werden konnten, ohne bestehenden Code zu zerstören.
Python 3 wurde 2008 als große Neugestaltung veröffentlicht, die diese Probleme behob. Es war jedoch nicht abwärtskompatibel mit Python 2, was bedeutet, dass für Python 2 geschriebener Code in Python 3 oft nicht ohne Anpassungen läuft.
Viele Jahre existierten beide Versionen nebeneinander. Allerdings hat Python 2 am 1. Januar 2020 sein Lebensende (End-of-Life) erreicht. Das bedeutet:
- Keine Updates oder Sicherheits-Patches mehr für Python 2
- Alle neue Python-Entwicklung nutzt Python 3
- Alle wichtigen Bibliotheken sind auf Python 3 umgestiegen
- Heute Python 2 zu lernen, wird nicht empfohlen
Dieses Buch verwendet ausschließlich Python 3. Alle Codebeispiele sind für Python 3 geschrieben und funktionieren möglicherweise nicht in Python 2.
1.7.2) Python-3-Minor-Versionen
Innerhalb von Python 3 gibt es Minor-Versionen (3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, usw.). Jede Minor-Version fügt neue Funktionen und Verbesserungen hinzu, während sie die Abwärtskompatibilität zu früheren Python-3-Versionen beibehält.
Dieses Buch ist für Python 3.11 und höher geschrieben, aber die meisten Beispiele funktionieren mit Python 3.8 und höher.
Um Ihre Python-Version zu prüfen:
python --version # Windows
python3 --version # macOS/LinuxSie sollten etwas sehen wie:
Python 3.11.5Wenn Sie sehen:
Python 2.7.18verwenden Sie Python 2, was veraltet ist. Installieren Sie Python 3 gemäß den Anweisungen in Abschnitt 1.2.
1.7.3) Wichtige Unterschiede, auf die Sie stoßen könnten
Wenn Sie ältere Python-Tutorials oder Code online lesen (insbesondere ältere Tutorials und Stack-Overflow-Antworten von vor 2020), könnten Sie Syntax sehen, die in Python 3 nicht funktioniert. Hier sind die häufigsten Unterschiede:
1. Die print-Anweisung vs. Funktion
Python 2:
print "Hello, World!" # No parenthesesPython 3:
print("Hello, World!") # Parentheses requiredIn Python 3 ist print eine Funktion (function) und erfordert Klammern. Dies ist der sichtbarste Unterschied.
2. Verhalten bei Division
Diese Änderungen wurden vorgenommen, um Python konsistenter und sicherer zu machen. Zum Beispiel ermöglicht es, print als Funktion zu haben, diese wie jede andere Funktion zu verwenden, und die Änderung, dass / immer Gleitkommadivision durchführt, eliminiert eine häufige Fehlerquelle.
Python 2:
>>> 5 / 2
2 # Integer division
>>> 5.0 / 2
2.5 # Float divisionPython 3:
>>> 5 / 2
2.5 # Always float division
>>> 5 // 2
2 # Integer division (floor division)In Python 3 führt / immer eine Gleitkommadivision durch. Verwenden Sie // für ganzzahlige Division.
3. Funktion input()
Python 2:
name = raw_input("Enter your name: ") # Returns string
age = input("Enter your age: ") # Evaluates input as Python code (dangerous!)Python 3:
name = input("Enter your name: ") # Always returns string
age = int(input("Enter your age: ")) # Convert to int if neededIn Python 3 gibt input() immer eine Zeichenkette zurück, was sicherer und konsistenter ist.
4. Zeichenketten und Unicode
Python 3 geht wesentlich besser mit Text (Unicode) um als Python 2. Alle Zeichenketten in Python 3 sind standardmäßig Unicode, was den Umgang mit internationalem Text erheblich erleichtert.
1.7.4) Funktionen je nach Python-3-Version
Verschiedene Python-3-Versionen haben verschiedene Funktionen eingeführt. Hier ist, was Sie wissen müssen:
Python 3.6 (Dezember 2016):
- f-Strings für Zeichenkettenformatierung (wir werden sie intensiv verwenden)
# f_string_example.py
name = "Alice"
print("Hello, " + name + "!")Ausgabe:
Hello, Alice!Hinweis: Wir lernen f-Strings in Kapitel 6 kennen. Für den Moment verwenden wir einfache Zeichenkettenverkettung mit +.
Python 3.8 (Oktober 2019):
- Der Walrus-Operator (
:=) für Zuweisungsausdrücke (wir behandeln ihn in Kapitel 40)
Python 3.10 (Oktober 2021):
- Strukturelles Pattern Matching mit
matchundcase(wir behandeln dies in Kapitel 12)
Python 3.11 (Oktober 2022):
- Deutlich verbesserte Fehlermeldungen
- Bessere Performance
- Verbesserte Ausnahmebehandlung
Python 3.12 (Oktober 2023):
- Weitere Performanceverbesserungen
- Neue Funktionen für Typannotationen
- Verbesserte f-String-Syntax
1.7.5) Welche Version sollten Sie verwenden?
Empfehlung: Verwenden Sie nach Möglichkeit Python 3.11 oder höher. Gründe:
-
Bessere Fehlermeldungen: Python 3.11 bietet deutlich verbesserte Fehlermeldungen, die für Einsteiger hilfreicher sind.
-
Bessere Performance: Python 3.11 ist schneller als frühere Versionen.
-
Moderne Funktionen: Sie haben Zugriff auf alle aktuellen Python-Funktionen.
-
Zukunftssicherheit: Code, der für Python 3.11 geschrieben wurde, wird in zukünftigen Versionen funktionieren.
Allerdings gilt: Jede Python-Version ab 3.8 ist für das Lernen mit diesem Buch ausreichend. Die grundlegenden Konzepte bleiben dieselben.
1.7.6) Verfügbarkeit von Funktionen prüfen
Wenn Sie eine ältere Python-Version verwenden und auf Code stoßen, der nicht funktioniert, können Sie prüfen, in welcher Version eine Funktion eingeführt wurde.
Wenn Sie zum Beispiel Python 3.5 oder älter verwenden, müssen Sie möglicherweise eine ältere Zeichenkettenformatierung verwenden:
# format_example.py
# Works in all Python 3 versions
name = "Alice"
print("Hello, {}!".format(name))Ausgabe:
Hello, Alice!1.7.7) Auf dem Laufenden bleiben
Python veröffentlicht etwa einmal im Jahr eine neue Minor-Version. Auch wenn Sie nicht sofort aktualisieren müssen, ist es gut, einigermaßen aktuell zu bleiben:
- Prüfen Sie alle paar Monate auf Updates
- Lesen Sie die Release Notes, um neue Funktionen kennenzulernen
- Aktualisieren Sie bei Gelegenheit, insbesondere für Sicherheitsupdates
- Testen Sie Ihren Code nach einem Upgrade, um die Kompatibilität sicherzustellen
Sie finden Python-Releases und Dokumentation unter https://www.python.org/.
1.7.8) Versionskompatibilität in diesem Buch
In diesem Buch gilt:
- Alle Codebeispiele funktionieren mit Python 3.11+
- Die meisten Beispiele funktionieren mit Python 3.8+
- Versionsspezifische Funktionen sind klar gekennzeichnet (z. B. „Erfordert Python 3.10+“)
- Alternative Ansätze werden bei Bedarf für ältere Versionen angegeben
Wenn Sie Code in diesem Buch sehen, können Sie ihn mit Python 3.11 oder höher bedenkenlos eingeben und erwarten, dass er genau wie gezeigt funktioniert.
1.7.9) Ein Hinweis zu Python-2-Code, den Sie online finden könnten
Wenn Sie online nach Python-Hilfe suchen, könnten Sie auf Python-2-Code stoßen. So erkennen Sie ihn:
Merkmale von Python-2-Code:
printohne Klammern:print "Hello"- Funktion
raw_input() - Division, die Ganzzahlen liefert:
5 / 2ergibt2 - Ältere Zeichenkettenformatierung:
"Hello %s" % name - Kommentare mit „Python 2“ oder Hinweisen auf Version 2.x
Was Sie tun sollten:
- Suchen Sie nach Alternativen für Python 3
- Fügen Sie „python 3“ zu Ihren Suchbegriffen hinzu
- Prüfen Sie das Datum – alles vor 2020 könnte Python 2 sein
- Verwenden Sie die offizielle Python-3-Dokumentation: https://docs.python.org/3/
Herzlichen Glückwunsch! Sie haben Kapitel 1 abgeschlossen und Ihre ersten Schritte mit Python gemacht. Sie wissen nun:
- Was Python ist und wie es funktioniert
- Wie Sie Python installieren und den Interpreter ausführen
- Wie Sie die Python-interaktive Shell (REPL) für Experimente nutzen
- Wie Sie Python-Skriptdateien erstellen und ausführen
- Wie Sie Fehlermeldungen und Tracebacks lesen und verstehen
- Wann Sie die REPL und wann Skriptdateien verwenden sollten
- Welche Python-Version Sie verwenden sollten und warum das wichtig ist
Sie sind nun bereit für Kapitel 2, in dem Sie Ihre ersten vollständigen Python-Programme schreiben, die Funktion print() im Detail kennenlernen und mit Benutzereingaben arbeiten werden. Das Fundament, das Sie in diesem Kapitel gelegt haben, wird alles unterstützen, was Sie im weiteren Verlauf lernen.