Python Grundlagen meistern: Syntax & Fundamentale Konzepte
Erstes Python-Programm
Die Python-Sprache weist viele Ähnlichkeiten zu Perl, C und Java auf. Es gibt jedoch einige deutliche Unterschiede zwischen den Sprachen.
Interaktiver Modus
Der Aufruf des Interpreters ohne Übergeben einer Skriptdatei als Parameter zeigt folgenden Prompt an:
$ python Python 2.4.3 (#1, Nov 11 2010, 13:34:43) [GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
Geben Sie folgenden Text an der Python-Eingabeaufforderung ein und drücken Sie Enter:
>>> print "Hello, Python!"
Falls Sie eine neuere Python-Version verwenden, müssen Sie die print-Anweisung mit Klammern verwenden: print ("Hello, Python!");. In Python 2.4.3 erzeugt dies folgendes Ergebnis:
Hello, Python!
Skript-Modus
Der Aufruf des Interpreters mit einem Skriptparameter beginnt die Ausführung des Skripts und läuft fort, bis das Skript beendet ist. Wenn das Skript fertig ist, ist der Interpreter nicht mehr aktiv.
Schreiben wir ein einfaches Python-Programm in ein Skript. Python-Dateien haben die Endung .py. Geben Sie folgenden Quellcode in eine Datei test.py ein:
print "Hello, Python!"
Wir gehen davon aus, dass der Python-Interpreter in der PATH-Variable gesetzt ist. Führen Sie das Programm nun wie folgt aus:
$ python test.py
Dies erzeugt folgendes Ergebnis:
Hello, Python!
Lassen Sie uns einen weiteren Weg ausprobieren, ein Python-Skript auszuführen. Hier ist die modifizierte test.py-Datei:
#!/usr/bin/python print "Hello, Python!"
Wir gehen davon aus, dass der Python-Interpreter im Verzeichnis /usr/bin verfügbar ist. Führen Sie das Programm nun wie folgt aus:
$ chmod +x test.py # Datei ausführbar machen $ ./test.py
Dies erzeugt folgendes Ergebnis:
Hello, Python!
Python-Bezeichner (Identifiers)
Ein Python-Bezeichner ist ein Name, der eine Variable, Funktion, Klasse, Modul oder ein anderes Objekt identifiziert. Ein Bezeichner beginnt mit einem Buchstaben A–Z oder a–z oder einem Unterstrich (_), gefolgt von null oder mehr Buchstaben, Unterstrichen und Ziffern (0–9).
Python erlaubt keine Satzzeichen wie @, $ und % in Bezeichnern. Python unterscheidet Groß- und Kleinschreibung. Daher sind Manpower und manpower zwei unterschiedliche Bezeichner in Python.
Namenskonventionen für Python-Bezeichner:
Klassennamen beginnen mit einem Großbuchstaben. Alle anderen Bezeichner beginnen mit einem Kleinbuchstaben.
Ein einzelner führender Unterstrich deutet darauf hin, dass der Bezeichner privat ist.
Zwei führende Unterstriche deuten auf einen stark privaten Bezeichner hin.
Wenn der Bezeichner auch mit zwei nachgestellten Unterstrichen endet, handelt es sich um einen sprachdefinierten speziellen Namen.
Reservierte Wörter (Keywords)
Die folgende Liste zeigt die Python-Schlüsselwörter. Dies sind reservierte Wörter, die Sie nicht als Konstanten, Variablen oder andere Bezeichnernamen verwenden können. Alle Python-Schlüsselwörter enthalten nur Kleinbuchstaben.
| and | exec | not |
| assert | finally | or |
| break | for | pass |
| class | from | |
| continue | global | raise |
| def | if | return |
| del | import | try |
| elif | in | while |
| else | is | with |
| except | lambda | yield |
Zeilen und Einrückung
Python verwendet keine Klammern, um Codeblöcke für Klassen- und Funktionsdefinitionen oder Flusssteuerung anzuzeigen. Codeblöcke werden durch Zeileneinrückung gekennzeichnet, die strikt durchgesetzt wird.
Die Anzahl der Leerzeichen in der Einrückung ist variabel, aber alle Anweisungen innerhalb des Blocks müssen gleich stark eingerückt sein. Zum Beispiel:
if True:
print "True"
else:
print "False"
Der folgende Block erzeugt jedoch einen Fehler:
if True:
print "Answer"
print "True"
else:
print "Answer"
print "False"
In Python bilden also alle aufeinanderfolgenden Zeilen, die mit derselben Anzahl Leerzeichen eingerückt sind, einen Block. Das folgende Beispiel zeigt verschiedene Anweisungsblöcke:
Hinweis – Versuchen Sie an dieser Stelle nicht, die Logik zu verstehen. Stellen Sie nur sicher, dass Sie die verschiedenen Blöcke verstanden haben, auch wenn sie ohne Klammern auskommen.
#!/usr/bin/python
import sys
try:
# Dateistream öffnen
file = open(file_name, "w")
except IOError:
print "There was an error writing to", file_name
sys.exit()
print "Enter '", file_finish,
print "' When finished"
while file_text != file_finish:
file_text = raw_input("Enter text: ")
if file_text == file_finish:
# Datei schließen
file.close()
break
file.write(file_text)
file.write("\n")
file.close()
file_name = raw_input("Enter filename: ")
if len(file_name) == 0:
print "Next time please enter something"
sys.exit()
try:
file = open(file_name, "r")
except IOError:
print "There was an error reading file"
sys.exit()
file_text = file.read()
file.close()
print file_text
Mehrzeilige Anweisungen
Anweisungen in Python enden typischerweise mit einer neuen Zeile. Python erlaubt jedoch die Verwendung des Zeilenfortsetzungszeichens (\) um anzugeben, dass die Zeile fortgesetzt werden soll. Zum Beispiel:
total = item_one + \
item_two + \
item_three
Anweisungen, die in [], {} oder () Klammern enthalten sind, benötigen das Zeilenfortsetzungszeichen nicht. Zum Beispiel:
days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
Anführungszeichen in Python
Python akzeptiert einfache ('), doppelte (") und dreifache (''' oder """) Anführungszeichen zur Kennzeichnung von String-Literalen, solange dieselbe Art von Anführungszeichen den String beginnt und beendet.
Dreifache Anführungszeichen werden verwendet, um den String über mehrere Zeilen zu erstrecken. Zum Beispiel sind alle folgenden gültig:
word = 'word' sentence = "This is a sentence." paragraph = """This is a paragraph. It is made up of multiple lines and sentences."""
Kommentare in Python
Ein Hash-Zeichen (#), das nicht innerhalb eines String-Literals steht, beginnt einen Kommentar. Alle Zeichen nach dem # bis zum Ende der physischen Zeile sind Teil des Kommentars und werden vom Python-Interpreter ignoriert.
#!/usr/bin/python # First comment print "Hello, Python!" # second comment
Dies erzeugt folgendes Ergebnis:
Hello, Python!
Sie können einen Kommentar auf derselben Zeile nach einer Anweisung oder einem Ausdruck eingeben:
name = "Madisetti" # This is again comment
Mehrere Zeilen können wie folgt kommentiert werden:
# This is a comment. # This is a comment, too. # This is a comment, too. # I said that already.
Ein dreifach-gequoterter String wird ebenfalls vom Python-Interpreter ignoriert und kann als mehrzeiliger Kommentar verwendet werden:
''' This is a multiline comment. '''
Leerzeilen verwenden
Eine Zeile, die nur Whitespace enthält (eventuell mit einem Kommentar), wird als Leerzeile bezeichnet und von Python vollständig ignoriert.
In einer interaktiven Interpreter-Sitzung müssen Sie eine leere physische Zeile eingeben, um eine mehrzeilige Anweisung zu beenden.
Auf den Benutzer warten
Die folgende Programmzeile zeigt die Aufforderung, die Meldung „Drücken Sie die Enter-Taste zum Beenden“ an und wartet, bis der Benutzer handelt:
#!/usr/bin/python
raw_input("\n\nPress the enter key to exit.")
Hier erzeugt "\n\n" zwei neue Zeilen vor der eigentlichen Zeile. Sobald der Benutzer die Taste drückt, endet das Programm. Dies ist ein nützlicher Trick, um ein Konsolenfenster offen zu halten, bis der Benutzer mit einer Anwendung fertig ist.
Mehrere Anweisungen in einer Zeile
Das Semikolon (;) erlaubt mehrere Anweisungen in einer einzigen Zeile, vorausgesetzt, keine Anweisung beginnt einen neuen Codeblock. Hier ist ein Beispiel:
import sys; x = 'foo'; sys.stdout.write(x + '\n')
Mehrere Anweisungsgruppen als Suites
Eine Gruppe einzelner Anweisungen, die einen einzelnen Codeblock bilden, nennt man in Python Suites. Zusammengesetzte oder komplexe Anweisungen wie if, while, def und class erfordern eine Header-Zeile und eine Suite.
Header-Zeilen beginnen die Anweisung (mit dem Schlüsselwort) und enden mit einem Doppelpunkt (:), gefolgt von einer oder mehreren Zeilen, die die Suite bilden. Zum Beispiel:
if expression :
suite
elif expression :
suite
else :
suite
Kommandozeilenargumente
Viele Programme können ausgeführt werden, um grundlegende Informationen darüber zu erhalten, wie sie ausgeführt werden sollen. Python ermöglicht dies mit -h:
$ python -h usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ... Options and arguments (and corresponding environment variables): -c cmd : program passed in as string (terminates option list) -d : debug output from parser (also PYTHONDEBUG=x) -E : ignore environment variables (such as PYTHONPATH) -h : print this help message and exit [ etc. ]
Sie können Ihr Skript auch so programmieren, dass es verschiedene Optionen akzeptiert. Kommandozeilenargumente sind ein fortgeschrittenes Thema und sollten später studiert werden, nachdem Sie die übrigen Python-Konzepte durchgearbeitet haben.
Python
- Python-Datentypen meistern: Praxisleitfaden
- Python-Operatoren meistern: Umfassender Leitfaden
- Python pass-Statement meistern: Praxisleitfaden
- Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
- Pythons time.sleep() meistern: Best Practices, Multithreading und Praxisbeispiele
- Java Grundlagen: Grundlegende Syntax meistern
- C-Grundsyntax meistern: Tokens, Struktur und Semikolons
- C++ Grundlagen: Syntax & Objektorientierte Basis
- MATLAB Grundlagen: Wesentliche Syntax & Befehle meistern
- C# Grundlagen: Grundlegende Syntax & OOP-Konzepte meistern