Python - Lexikon A - Z (Teil N - Z)

Zurück zur Hauptseite

 


zur Kochbuchseite

zur Seite mit den Tips, Ratschlägen und Hinweisen


Hier werden vorrangig Begriffe erläutert, die speziell in Python vorkommen bzw. die in Python zu der sonst üblichen Bedeutung irgendeine Besonderheit aufweisen. In der Regel werden zuerst die Begriffe vermerkt, die sich als interessant für Umsteiger erweisen. Die passenden Erläuterungen können dann verzögert und schrittweise auftauchen. Sofern ein Leser sich hier beteiligen möchte, würde ich gern seine zugearbeitete Definition bzw. Erläuterung hier mit reinstellen. Ebenso nehme ich gern Vorschläge für weitere wichtige Pythonbegriffe entgegen! :-)

 

A - M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

 

N
Negative Indizierung

O
OOP

P
Paketkonstruktor
py2exe - Modul

Q

R
Raw - String
return
rotor 

S
slicing

T
Tkinter
Tupel

U
Unicode

W
Webchecker
Widgets

Z
ZOPE


Negative Indizierung

Indizierung als Ansprechmöglichkeit eines mehrteiligen Objektes mit einem Index ist z.B. hilfreich beim Herausholen einzelner Bytes aus einem String

s = 'Pythonquelltext'
print s[3]
'h'

Ebenso kann Zugriff auf eine Liste oder ein Tupel erfolgen. Das erste Element hat die Zählnummer 0 und so weiter. Ist aber der Index negativ, dann zählt es von hinten! Eine sehr nützliche Sache, wobei das letzte Element den Index -1 hat und so weiter nach links. Beispiel:

# die 4 letzten Zeichen vom o.g. String von rechts abgeschnitten herausholen:
print s[-4:]

'text'

Anmerkung: Der Doppelpunkt bewirkt hier eine Bereichsangabe von Position -4 bis Ende. Dagegen hätte

print s[:-4] die Ausschrift

'Pythonquell'

gebracht, wobei das Zeichen der Position -4 selbst nicht dazugehört!



OOP

Objektorientierte Programmierung. In Python werden diese Objekte als Klassen (class) bezeichnet. Hier können für den Anfänger Verwechselungen entstehen, weil in Python Elemente "Objekt" heißen. So sind z.B. Variablen, Funktionen usw. bereits Objekte. Die Klassen haben, wie auch in anderen objektorientierten Programmiersprachen, wesentliche Eigenschaften. Diese sind:



Paketkonstruktor

Wenn man mit packages arbeiten möchte, werden die nur als solche erkannt, wenn es eine Datei

__init__.py

im entsprechenden Verzeichnis gibt. Diese ist praktisch der "Paketkonstruktor", wobei diese Datei aber auch leer bleiben kann oder nur globale Paketvariable definiert. Diese Datei muss aber auf jeden Fall vorhanden sein, damit der Paketmechanismus aktiv wird.


py2exe - Modul

Übrigens, wer sein Python - Programm nach Fertigstellung mal an Nichtprogrammierer zur Nutzung weitergeben möchte, hat bestimmt keine Lust, dem Anderen jedesmal die komplette Python - Entwicklungsumgebung mit draufzuspielen. Um dem abzuhelfen, gibt es für Windows das Modus py2exe. Damit kann man eine Handvoll Files erzeugen,die aus dem Hauptprogramm als *.exe - Datei sowie einigen Lib's besteht. Dieses Modul ist hier zu finden: Python Resources.


Raw-String

Rohstring, der ebenfalls eine Zeichenkette wie der traditionelle String darstellt. Jedoch werden die '\' nicht als Steuerzeichen bewertet. Das benötigt man, wenn man reguläre Ausdrücke oder Pfadangaben in Strings legen will.

Beispiel:

>>> print 'c:\autoexec.bat'

bringt (auf einem Windows-Rechner) die Ausgabe:

c:utoexec.bat

weil die Zeichenkombination '\a' nämlich das Signal für einen Glockenton ist, der auch tatsächlich ausgegeben wird. Das Vorhandensein einer Soundkarte vorausgesetzt, lässt ein "going" ertönen. Es ist für unser Beispiel aber ein schlechter Tausch, denn der schöne Ton fordert als Preis, dass unsere Pfadangabe verfälscht wurde. Wer damit nun eine Datei suchen will, erleidet garantiert Schiffbruch! Daher nimmt man dann einen Rohstring:

>>> print r'c:\autoexec.bat'

Wie man sieht, ist dem String das Zeichen r vorangestellt. Nun geht es. Dafür kommt kein "going" mehr. Das zeigt, dass nun der '\' keine Steuerzeichensequenz einleitet, sondern als normales Zeichen interpretiert wird.


 

return

Befehl, um aus einer Funktion zurückzukehren. Der Wert nach dem Schlüsselwort return ist der Rückgabewert der Funktion. Ist dieser nicht vorhanden, wird None zurückgegeben. Damit kann also eine Funktion ohne Rückgabewert definiert werden (in Pascal als procedure bezeichnet). Return ohne Rückgabewert kann auch mitten im Text der Funktion stehen, damit im eingetretenen fall die Funktion verlassen wird, ohne dass diedarunterliegenden Befehle noch ausgeführt werden (so wie mit break eine Schleife verlassen wird). Beispiel:

import math

def getLog(x):
    if x <= 0:
      print "nur positives Argument anwenden!"
      return
    return math.log(x)

print getLog(-100)

print getLog(123)

Liefert das Ergebnis:

nur positives Argument anwenden!        # stammt von der Printanweisung der Funktion
None                                                   # ist der Rückgabewert des ersten getLog-Aufrufes
4.81218435537                                   # ist der Rückgabewert des zweiten getLog-Aufrufes

Die Kommentare sind natürlich nicht Bestandteil des Ergebnisses :-)


rotor

Modul, das für einfache Verschlüsselungsaufgaben das Rotieren von Bitmustern unterstützt. Anwendungsbeispiel mit einer einfachen Passwortabfrage findet man hier.


Slicing

Das, was es eigentlich wörtlich auch heißt - nämlich sowas wie Scheibentechnik. Eine äußerst nützliche Sache, wenn es darum geht, Bereiche aus indizierbaren Objekten zu definieren. Indizierbare Objekte sind Strings, Tupel, Listen und Dictionarys, wobei für letztere das Slicing leider nicht geht, wie sich schnell selbst ausbrobieren läßt. Slicing geschieht folgendermaßen:

s = '12345678'

print s[3:5] # Achtung, die hintere Grenze zählt nicht mit (offenes Intervall)

Antwort: '45' 

Das heißt, es wird ein Bereich von .. bis angegeben, der dann aus dem Objekt ausgeschnitten wird. Um die Sache noch zu erleichtern, kann man die Bereichsgrenzen weglassen, wenn der Geltungsbereich vom Anfang oder bis zum Ende des Objektes reicht. So ist es zulässig folgendes zu schreiben:

print s[:4]

Antwort: '1234'

print s[:]

Antwort: '12345678' # Diese Variante wird z. B. genutzt, wenn man eine Kopie eines Objektes herstellen will

Interessant ist noch die Möglichkeit der negativen Indizierung.


Tkinter

Modul, das in pythongerechter Manier den Zugriff auf Tk gestattet. Tk ist Bestandteil von Tcl/Tk, womit man aus der Programmiersprache Tcl graphische Bedienoberflächen gestalten kann. Tk ist z.B. für Linux und für Windows95/98/NT verfügbar. Tkinter kommt ohne Tcl aus. Sofern auf dem jeweiligen Rechner Tk installiert ist, läuft ein Python -Programm, das Tkinter nutzt sowohl auf Linux, als auch auf Windows. Die Python - Programmierumgebung Idle läuft übrigens auch auf der Basis von Tkinter.


Tupel

Objekt, das eine Aneinanderreihung von anderen Objekten ist in der Darstellung: (obj1, obj2, obj3, ... ). Das Tupel, einmal gebildet ist unveränderlich. Die Elemente sind über Index ansprechbar. Die Objekte können verschiedenartig sein, z.B. in der Art: (zahl, string, funktion, class, liste ... ) usw. Das Tupel kann in eine Liste umgewandelt werden, wonach dann die einzelnen Elemente überschrieben werden können. Tupel werden oft als Übergabeparameter zu Funktionen verwendet.



Webchecker

Ein Modul, das in der großen Modulsammlung ein Zubehör zu Python bildet. Das Modul webchecker.py findet man bei den Tools. Im Unterverzeichnis "Webchecker" befindet sich neben diesem Modul noch das Modul wcgui.py, womit es möglich wird, webchecker.py mit einer grafischen Oberfläche zu bedienen. Dabei basiert wcgui.py auf Tkinter. Das Programm checkt rekursiv die Links einer vorgegebenen Webseite ab. Solange die Links auf lokale Seiten der gleichen Page zeigen, werden auch diese Seiten gecheckt. Zeigen die Links nach draußen, wird noch geprüft, ob das Ziel vorhanden ist, aber der Weg dann nicht weiter verfolgt. Das ist auch sehr nötig, damit unser Progrämmchen nicht versucht, das Internet insgesamt zu checken. :-)

Mit diesem Tool ist es schnell möglich zu prüfen, ob nicht Links z.B. auf der eigenen HomePage inzwischen ungültig geworden sind oder ins Leere zeigen.


Widgets

Objekte einer graphischen Benutzeroberfläche, die ein definiertes Aussehen und Verhalten haben. So sind zum Beispiel Buttons, Labels oder Menues jeweils andere Widgets



ZOPE


ZOPE steht für Z Objekt Publishing Environments. Es kombiniert den Leistungsumfang eines Webservers, eines Anwendungsservers und einer Skriptsprache. ZOPE selbst wurde in Python geschrieben und kann mit Python erweitert werden. ZOPE ist Open - Source. Mit diesem System kann man leistungsfähige dynamische Internetseiten aufbauen.