SO8 OOo2
Python ([ˈpaɪθn̩]) ist eine Programmiersprache für die objektorientierte, aspektorientierte und funktionale Programmierung. OpenOffice.org stellt keinen eigenen Editordialog für Python-Skripte zur Verfügung, es kann aber die Entwicklungsumgebung IDLE benutzt werden, die zum Installationsumfang von Python gehört. Die erstellten Python-Skripte für OpenOffice.org sollten in das Verzeichnis für globale Python-Makros (/share/Scripts/python im InstallationsVerzeichnis) gespeichert werden. Alternativ ist das Speichern im BenutzerVerzeichnis /user/Scripts/python möglich.
Diese Seite bietet eine kurze Übersicht der Sprachelemente von Python-Makros.
Inhaltsverzeichnis
1. Quelltext
Der Quelltext ist zeilenorientiert.
Das Zeilenende beendet jede einzelne Anweisung, Ausnahme Zeilenende mit Zeilenfortsetzungszeichen \.
Mehrere Anweisungen innerhalb einer Zeile werden durch Semikolon getrennt.
Anweisungsblöcke von Schleifen, Verzweigungen, Funktionen, etc. sind durch einheitliches Einrücken des Quelltextes von links definiert. Es gibt keine Schlüsselwörter wie begin, end, { oder } für die Begrenzung von Anweisungsblöcken.
2. Reservierte Wörter
Die folgenden Wörter sind reserviert und dürfen nicht für selbstdefinierte Bezeichner verwendet werden:
and, assert, break, class, continue, def, del, elif, else, except, exec, finally, for, from, global, if, import, in, is, lambda, not, or, pass, print, raise, return, try, while
3. Kommentare
# Einzeiliger Kommentar
4. Literale
5 Ganze Dezimalzahl 05 Ganze Oktalzahl (Führende Null) 0x5 Ganze Hexadezimalzahl (Führendes 0x) 5L Lange Ganzzahl (Angehängtes L) 1.2 Gleitkommazahl 1.2 + 3.4j Komplexe Zahl "Einzeiliger String" 'Einzeiliger String' """Mehrzeiliger String""" '''Mehrzeiliger String'''
5. Tupel (feste Mengen von Objekten)
Tupelname = (2, 3, "Element4", 5, 6) # Elemente können jede Art von Objekt sein a = Tupelname[1] # Zugriff auf das 2. Element der Liste b = Tupelname[0:2] # Zugriff mit Teilbereichsoperator
6. Listen (veränderliche Mengen von Objekten)
Listenname = ["Element1", "Element2", "Element3"] # Elemente können jede Art von Objekt sein
a = Listenname[1] # Zugriff auf das 2. Element der Liste
b = Listenname[0:2] # Zugriff mit Teilbereichsoperator
Listenname.append('Noch ein Element') # Anängen eines Elements.
7. Dictionaries
Dictionaryname = {
"Schlüssel1" : "Element1",
"Schlüssel2" : Element2, # Elemente können jede Art von Objekt sein
42.23 : "Element3" # Schlüssel könen auch (Fliesskomma-) Zahlen sein
}
a = Dictionaryname["Schlüssel"] # Zugriff auf ein Element
Dictionaryname["Schlüssel"] = "Neuer Wert" # Ein Element verändern
8. Escape-Sequenzen
\ Zeilenfortsetzung \\ Rückwärtsschrägstrich \' Einzelnes Anführungszeichen \" Doppeltes Anführungszeichen \a Glocke \b Rückschritt \e Ausmaskieren \0 Null \n Zeilenende \v Vertikaler Tabulator \t Horizontaler Tabulator \r Wagenrücklauf \f Seitenvorschub \0XX Oktaler Wert \xXX Hexadezimaler Wert
9. Operatoren
= Zuweisung + Positives Vorzeichen, Addition, Verkettung - Negatives Vorzeichen, Subtraktion * Multiplikation / Division // Quotient der Ganzzahldivision ** Exponentialbildung % Modulo << Bitweises Linksschieben >> Bitweises Rechtsschieben & Bitweises Und | Bitweises Oder ^ Bitweises Xor ~ Bitweise Negation and Logisches Und or Logisches Oder not Logische Negation [ ] Zugriff auf Element einer Liste : Teilbereichsoperator in ist enthalten in lambda anonyme Funktion
10. Vergleichsoperatoren
< kleiner als > größer als <= kleiner oder gleich als >= größer oder gleich als == gleich != ungleich <> ungleich
11. Programmablaufsteuerung
11.1. Verzweigungen
if bedingung1:
Anweisungen
elif Bedingung2:
Anweisungen
else:
Anweisungen
11.2. Kopfgesteuerte Schleifen
while Bedingung:
Anweisungen
else:
Anweisungen
11.3. Zählschleife
for Variable in Sequenz:
Anweisungen
else:
Anweisungen
12. Ausnahmebehandlung
try:
Anweisungen
except Fehler:
Anweisungen
else:
Anweisungen
13. Funktionen
13.1. Deklaration
def Funktionsname(a, b):
Anweisungen
return Ergebnis
13.2. Wichtige Vordefinierte Standardfunktionen
abs(x)
- Gibt den Betrag von x zurück.
apply(func, args [, keywords])
- Führt einen Funktionsaufruf auf einem aufrufbaren Objekt func durch. args ist ein Tupel mit Positionsargumenten und keywords ist ein Dictionary mit Schlüsselwort-Argumenten.
chr(i)
Konvertiert einen ganzzahligen ASCII-Wert i (0 <= i < 255) in einen String der Länge 1.
cmp(x, y)
Vergleicht x und y und gibt eine negative Zahl zurück, falls x < y ist, 0 falls x == y ist und eine positive Zahl, falls x > y ist.
complex(real [, imag])
- Erzeugt eine komplexe Zahl.
delattr(object, attr)
- Löscht ein Attribut eines Objektes.
dir([object])
- Gibt eine sortierte Liste von Attributnamen zurück.
divmod(a, b)
- Gibt Quotient und Rest einer Division langer Ganzzahlen als Tupel zurück.
filter(function, list)
- Erzeugt eine neue Liste aus den Objekten von list, für die function zu logisch wahr ausgewertet wird.
float(x)
- Konvertiert x in eine Fließkommazahl.
getattr(object, name)
- Gibt ein Attribut eines Objektes zurück.
hasattr(object, name)
- Ergibt 1, wenn name der Name eines Attributes von object ist, sonst 0.
hash(obj)
- Gibt einen ganzzahligen Hash-Wert eines Objektes zurück.
hex(x)
- Konvertiert x in einen hexadezimalen String.
input([prompt])
- Identisch mit eval(raw_input(prompt)).
isinstance(object, classobj)
- Ergibt logisch wahr, falls object eine Instanz von classobj oder einer Unterklasse von classobj ist.
issubclass(class1, class2)
- Ergibt logisch wahr, falls class1 eine Unterklasse von class2 ist.
len(s)
- Ergibt die Anzahl von Elementen in s.
list(s)
- Ergibt eine neue Liste, bestehend aus den Elementen der Sequenz s.
long(x)
- Konvertiert eine Zahl oder einen String x in eine lange Ganzzahl.
map(function, list, ...)
- Wendet function auf jedes Element von list an und gibt eine Liste von Ergebnissen zurück.
max(s [, args, ...])
- Ergibt bei einem einzigen Argument s das Maximum der Sequenz s.
min(s [, args, ...])
- Ergibt bei einem einzigen Argument s das Minimum der Sequenz s.
oct(x)
- Konvertiert eine Ganzzahl x in einen oktalen String.
open(filename [, mode [, bufsize]])
- Öffnet die Datei filename und gibt ein neues Dateiobjekt zurück. mode gibt an, in welchem Modus die Datei geöffnet werden soll: 'r' zum Lesen, 'w' zum Schreiben und 'a' zum Anfügen. Ein optionales '+' kann zum Modus hinzugefügt werden, um die Datei zu aktualisieren (was Schreiben und Lesen ermöglicht). Der Modus 'w+' reduziert die Dateigröße auf die Länge 0, wenn sie bereits existiert. Der Modus 'r+' oder 'a+' öffnet die Datei zum Lesen und Schreiben, lässt aber den ursprünglichen Inhalt unverändert, wenn die Datei geöffnet wird. Ein dem Modus angefügtes 'b' bezeichnet einen Binärmodus. Wird der Modus weggelassen, wird 'r' als Voreinstellung angenommen. Das Argument bufsize gibt das Puffer-Verhalten an, wobei 0 für keine und 1 für eine Zeilenpufferung steht. Jede andere positive Zahl bezeichnet eine ungefähre Puffergröße in Bytes.
ord(c)
- Ergibt den ganzzahligen ASCII-Wert eines einzelnen Zeichens c.
pow(x, y [, z])
- Ergibt x ** y. Wenn z angegeben wird, ergibt es (x ** y) % z.
range([start,] stop [, step])
- Erzeugt eine Liste von Ganzzahlen, von start bis stop. step bezeichnet eine Schrittweite und ist auf 1 gesetzt, falls sie nicht angegeben wird. Wenn start weggelassen wird, wird als Voreinstellung der Wert 0 verwendet.
reduce(func, seq [, initializer])
- Wendet eine Funktion func wiederholt auf die Elemente einer Sequenz seq an und gibt einen einzelnen Wert zurück.
repr(object)
- Gibt eine String-Repräsentation von object zurück.
round(x [, n])
- Ergibt eine gerundete Fließkommazahl, wobei die Fließkommazahl x auf das nächste Vielfache von 10 hoch n gerundet wird.
setattr(object, name, value)
- Setzt ein Attribut eines Objektes. name ist ein String. Identisch mit object.name = value.
slice([start,] stop [, step])
- Ergibt ein Teilbereichsobjekt, das ganze Zahlen im angegebenen Intervall repräsentiert.
str(object)
- Ergibt einen String, der die druckbare Form eines Objektes repräsentiert.
tuple(s)
- Erzeugt ein Tupel, dessen Elemente aus der Sequenz s stammen.
type(object)
- Ergibt den Typ von object. Es wird ein Typ-Objekt zurückgegeben, wie er im Modul types definiert ist.
vars([object])
Gibt die Symboltabelle von object zurück (normalerweise in seinem Attribut {{{}}}dict{{{}}} anzutreffen).
xrange([start,] stop [, step])
- Funktioniert genau wie range(), außer dass ein Objekt vom Type XRangeType zurückgegeben wird. Dieses Objekt erzeugt dieselben Werte wie sie auch in der von range() erzeugten Liste gespeichert sind, aber ohne sie tatsächlich abzuspeichern, sondern nur bei Bedarf.
14. Klassen
14.1. Deklaration
class Klasse:
Eigenschaft = "Wert"
def __init__(self, name):
self.name = name
def Methode(self, wert):
self.name = self.name + wert
return self.name
a = Klasse(5) # Klasseninstanz erzeugen
b = a.Methode(3) # Methode aufrufen
c = a.Eigenschaft # auf Eigenschaft zugreifen
14.2. Spezielle Methoden
__getattr__() # kann bei Zufriff auf Attribut aufgerufen werden __del__() # kann bei Zerstörung der Klasseninstanz aufgerufen werden __dict__ # Zugriff auf das Dictionary der Klasseninstanz
14.3. Vererbung, Kapselung
class Klasse1(Klasse2, Klasse3): # Vererbung
def __init__(self):
self.__X = 3 # Datenkapselung, verstümmelt zu _Klasse1__x
14.4. Klassen importieren
from ... import ...