U S E R - A R C H I V

Seite: Programmieren - Python

Auszug aus Wikipedia zu Python

Python [ˈpaɪθn̩] ist eine Programmiersprache, die mehrere Programmierparadigmen umfasst. So wird die objektorientierte, aspektorientierte und funktionale Programmierung unterstützt.

Sie wurde Anfang der 1990er Jahre von Guido van Rossum am Centrum voor Wiskunde en Informatica in Amsterdam entwickelt, ursprünglich für das verteilte Betriebssystem Amoeba. Alle bisherigen Implementierungen der Sprache (siehe auch Jython oder Stackless Python) übersetzen den Text eines Python-Programmes transparent in einen Zwischencode, der dann von einem Interpreter ausgeführt wird.

Die Sprache ist nach der britischen Komikertruppe Monty Python benannt.


Python wurde mit dem Ziel entworfen, möglichst einfach und übersichtlich zu sein. Dies wird durch zwei Dinge erreicht: Zum einen enthält die Sprache einen sehr mächtigen Funktionsumfang in nur wenigen Schlüsselwörtern, zum anderen wurde die grammatische Syntax reduziert und auf Übersichtlichkeit optimiert. Dies führt dazu, dass Python eine Sprache ist, in der man schnell, einfach und leicht programmieren kann. Sie ist daher besonders dort geeignet, wo Übersichtlichkeit und Lesbarkeit des Codes eine herausragende Rolle spielen – z. B. in der Teamarbeit, bei Beschäftigung mit dem Quellcode nach längeren Pausen oder bei Programmieranfängern.

Durch die Möglichkeit, auch Programme anderer Sprachen als Modul einzubetten, werden viele Nischen in der Programmierung abgedeckt. Bei Bedarf lassen sich schnellere Routinen maschinennah programmieren, oder Python kann als Skriptsprache eines anderen Programmes dienen (Beispiele: OpenOffice.org, Blender und Gimp).

Python ist eine Sprache, die den Programmierer nicht zu einem einzigen bestimmten Programmierstil zwingt, unterstützt werden sowohl objektorientierte und strukturierte als auch funktionale Programmierung. Die Datentypen werden dynamisch verwaltet; eine statische Typprüfung (wie z. B. bei C++) gibt es nicht. Die Freigabe nicht mehr benutzter Speicherbereiche erfolgt durch automatische Speicherbereinigung (garbage collection).

Obwohl Python als „Skriptsprache“ die Einfachheit betont, sind damit eine Reihe großer Softwareprojekte bewältigt worden. Ein Beispiel ist der Application-Server Zope sowie das Dateisystem Mojo Nation. Auch Teile von Google wurden mit Python programmiert. Programme wie der offizielle BitTorrent-Client machen ebenfalls von dieser Programmiersprache Gebrauch.

 


Die Programmiersprache Python - Einführung

Volltext aus http://www.thomas-guettler.de/vortraege/python/einfuehrung.html
© 2002-2005 Thomas Güttler. Der Text darf nach belieben kopiert und modifiziert werden, solange dieser Hinweis zum Copyright und ein Links zu dem Original unter www.thomas-guettler.de erhalten bleibt. Es wäre nett, wenn Sie mir Verbesserungsvorschläge mitteilen: guettli@thomas-guettler.de

Die Programmiersprache Python
    Einführung in Python
    Begeisterung
    Beispiel: Taschenrechner
    Datentypen
4.     Übersicht
4.     Zeichenketten
4.     Listen
4.     Dictionaries (Hash-Tables)
    Flusssteuerung
    Funktionen
    Python-Datei
    Dateien
    Klassen
10      Standardbibliothek
10.     Module importieren
10.     Paketauswahl
11      Externe Bibliotheken
12      Beispiele
13      Externe Links
13.     Internet
13.     Best of Python Cookbook
14      Nachteile von Python
15      Hinweise zur Python Programmierung
16      FAQ
17      About

1 Einführung in Python [toc]

  • Python ist eine leicht zu lernende, objektorientierte Programmiersprache.
  • Plattformunabhängig: Windows, Unix und Mac
  • Interpretierte Sprache (Script-Sprache)

2 Begeisterung [toc]

  • Die Programmiersprache Python bietet sehr viele Bibliotheken. Die Module aus der Standardbibliothek werden gut gepflegt.
  • Man bekommt bei Fehlern immer einen Stacktrace mit Zeilennummer des Fehlers. In "C" muss man dafür extra den Debugger starten.
  • Segmentation Faults sind nicht möglich --> Programmentwicklung ist schneller als in C oder C++.
  • Die Entwicklungsgeschwindigkeit ist heutzutage wichtiger als die Ausführungsgeschwindigkeit zur Laufzeit. Zeitkritische Abschnitte können in C oder C++ geschrieben werden.
  • Sehr schön ist, dass man keine Makefiles mehr braucht. Die vorkompilierten PYC-Dateien (Bytecode) werden automatisch neu erstellt, falls sich die zugehörige PY-Datei geändert hat.
  • Python verfügt über eine einfache Entwicklungsumgebung: IDLE. Das ist ein Vorteil für den Unterricht und Schulungen, da nicht zusätzlich ein Editor installiert werden muss.
  • Die Python Newsgroups sind sehr anfängerfreundlich. Jeder Python Programmierer sollte hin und wieder hineinschauen. Man lernt immer dazu.
  • Python lässt sich auch sehr gut in vorhandene Anwendungen einbetten. So lässt sich z.B Paint Shop Pro mit Python automatisieren. Einige Nokia Handies lassen sich mit Python Programmieren.
  • Die Lizenz ist nicht GPL. Python lässt sich ohne Probleme auch in kommerziellen (closed Source) Projekten verwenden. Siehe Python Licence.
  • Die Programmiersprache ist stabil. Änderungen die nicht abwärtskompatibel sind, sind nicht zu erwarten (Vgl. Perl5 nach Perl6).

3 Beispiel: Taschenrechner [toc]

  • Dank der Readline-Bibliothek kann man den Interpreter sehr bequem interaktiv benutzen.
  • Beispiel: Verwendung von Python als Taschenrechner.
    Aufgabe: Wenn ich ein 56k Modem habe, wie lange dauert es eine 8MB Datei herunterzuladen?
  • Code:
    ==guettli@sonne:~$ python
    Python 2.1.3 (#1, Apr 20 2002, 10:14:34)
    [GCC 2.95.4 20011002 (Debian prerelease)] on linux2
    Type "copyright", "credits" or "license" for more information.
    >>> bps=56000 # Bit pro Sekunde
    >>> byte_pm=(bps/8)*60
    >>> byte_pm
    420000
    >>> datei=8*10**6 # acht mal zehn hoch sechs
    >>> dauer=datei/byte_pm
    >>> dauer
    19

    --> Es dauert rund 19 Minuten

4 Datentypen [toc]

  • Integer: i=1 #Ganzzahl
  • Float: f=0.1 #Gleitkommazahl
  • String: s="hallo" #Zeichenkette
  • Liste: l=[1, 2, 3] #veränderbar
  • Tuple: t=(1, 2, 3) #unveränderbar
  • Dictionary/Hash: d={1: "eins", 2: "zwei", 3: "drei"}
  • Strings (Zeichenketten) sind eine Folge von Zeichen. Man muss sich nicht um die Terminierung von Zeichenketten, wie z.B. in C kümmern.
  • Zeichenketten können in einfachen oder doppelten Anführungszeichen geschrieben werden. Mehrzeilige Zeichenketten sind durch dreifache Anführungszeichen möglich:
    s1='Beispiel'

    s2='Er sagte "Hallo" zu mir'

    s3="er ist der 20'te"

    s4="""Mehrere Zeilen
    Zeile 2
    Zeile 3
    """

    s5='''Ebenfalls mehrere
    Zeilen
    '''
  • Die Formatierung wie mit printf in C ist möglich:
        s="Sonne"
    m="Mond"
    t="Sterne"
    satz="%s, %s und %s" % (s, m, t)
    --> Sonne, Mond und Sterne

    # Formatieren von Gleitkommazahlen:
    f=0.123456
    s="%06.2f" % f
    # Ergebnis: 000.12


    # Einfügen über ein Dictionary
    import time
    heute=time.strftime("%d.%m.%Y")
    title="Das ist der Titel" # Wird zweimal verwendet (Im Kopf, und als <h1>)
    html='''
    <html>
    <head>
    <title>%(title)s</title>
    </head>
    <body>
    <h1>%(title)s</title>
    ...
    Heute ist der %(heute)s

    ....
    </body>
    </html>''' % locals()
  • Zeichenketten können auch getrennt werden, um z.B. den Quellcode nicht breiter als 80 Zeichen zu machen. Die Variablensubstitution funktioniert trotzdem:
       print("Text ......Wert1 = %s "
    "Wert2 = %s "
    "Wert3 = %s " % (
    wert1, wert2, wert3))
  • Slices (Aus einem Teilbereich einer Liste eine neue Liste erstellen)
        s="abcdefg"

    #Erstes Zeichen
    s[0] # --> "a"

    #Letztes Zeichen
    s[-1] # --> "g"

    #Zugriff auf Teile der Liste
    s[:4] # --> "abcd"
    s[1:4] # --> "bcd"
    s[-2:] # --> "fg"
  • Zeichenketten können, sollten aber nicht, mit dem Plus Operator verbunden werden. Es ist effizienter mit einer Liste zu arbeiten:
        s=[]
    for i in range(10):
    s.append(str(i))
    s=''.join(s)
    assert(s=="0123456789")
  • Die in C üblichen Sonderzeichen sind vorhanden:
        \n == Newline (Zeilenumbruch)
    \r == Carriage Return
    \t == Tabulator
    \\ == Backslash
    Möchte man das Interpretieren der Escape Sequenzen unterbinden, kann dies durch ein vorangestelltes 'r' geschehen.
        s =  'a\nb'  # --> \n wird zu einem Newline
    s = r'a\nb' # --> \n wird *nicht* zu einem Newline
  • Weiteres
        #Länge
    len(s)

    #Auftrennen an Leerzeichen:
    satz="Aller Anfang ist schwer"
    satz.split() # --> ['Aller', 'Anfang', 'ist', 'schwer']

    dateiname="foo.PNG"
    if dateiname.lower().endswith(".png"):
    ....
  • Strings und Tuples sind "immutable", d.h. sie können nicht nicht verändert werden. Listen sind im Gegensatz dazu veränderbar.
  • Es können beliebig Listeneinträge hinzugefügt oder entfernt werden. Die Länge muss nicht wie in vielen anderen Programmiersprachen vorher definiert werden.
  • Der erste Eintrag in einer Liste wird mit einer Null angesprochen.
  • Code:
        mylist=["Das", "Wetter"]
    mylist.append("schön")
    mylist[1]="Leben"
    mylist.insert(2, "ist")
    print mylist # Das Ergebnis?
  • Listen von Listen
    mylist[1]=[3, 4]
  • Schleife über 3'er Tupel
        zahlen=[(1, "eins", "one"),
    (2, "zwei", "two"),
    (3, "drei", "three")]
    for i, deutsch, englisch in zahlen:
    ...
  • Dictionaries sind ein wichtiger Datentyp, der die tägliche Arbeit vereinfacht. Dictionaries bestehen aus einen Schlüssel (Key) und einem zugeordneten Wert (Value). Hier ein Beispiel, wie man Telefonnummern verwalten kann. Die Keys sind Zeichenketten (die Namen) und die Values sind die Telefonnummern.
  • Code:
        mydict={}
    mydict["hans"]="030/312783"
    mydict["bernd"]="0921/76499"
    mydict["susi"]="0371/233444"

    print "Hans: ", mydict["hans"]
    print "Das Telefonbuch: ", mydict

    #Alle Einträge ausgeben:
    for name, nummer in mydict.items():
    print "Name: %s Nummer: %s" % (name, nummer)


    # Weitere Funktionen
    mydict.keys() # Alle Schlüssel
    mydict.values() # Alle Werte
    mydict.has_key(mykey) # Ist dieser Schlüssel vorhanden
    mydict.get(mykey, default) # Wert von "mykey", falls nicht vorhanden, "default"

5 Flusssteuerung [toc]

  • #!/usr/bin/env python
    # -*- coding: iso-8859-1 -*-

    import sys
    print("Bitte Zahl eingeben:")
    input=sys.stdin.readline()
    input=input.strip() # Newline (\n) am Ende der Eingabe entfernen
    i=int(input)
    if i<0:
    print "%s ist kleiner als Null." %i
    elif i==0:
    print "%s ist gleich Null." % i
    else:
    print "%s ist größer als Null." % i
  • Die Blockstruktur wird durch das Einrücken mit vier Leerzeichen gekennzeichnet (Tabs sollten nicht verwendet werden):
        for x in [1, 2, 3, 4]:
    print x

    for x in range(6):
    if x==1:
    # Überspringe diese Zahl
    continue
    if x==4:
    # Beende die Schleife
    break
    print x

6 Funktionen [toc]

  • Funktionen werden durch das Schlüsselwort "def" definiert:
        def plus(a, b):
    return a+b

    print plus(5, 7)
    --> 12
  • Parameter werden Call-By-Reference übergeben. Das heißt die Parameter können innerhalb der Funktion geändert werden. Ausnahme: Integer, Float, Zeichenketten und Tuppel sind unveränderbar.
        def fuelleListe(liste):
    liste.append("eins")
    liste.append("zwei")
    liste.append("drei")

    liste=[]
    fuelleListe(liste)
    print liste
    --> ["eins", "zwei", "drei"]
  • Default Argumente:
        def printEtwas(etwas="Gurkensalat"):
    print etwas

    printEtwas()
    --> Gurkensalat
    printEtwas("Tomatensuppe")
    --> Tomatensuppe
  • Keyword Arguments: Argumente die per Schlüsselwort gesetzt werden sind sehr nützlich, da man sich bei Funktionen mit vielen Parametern schlecht die Reihenfolge merken kann:
        def berechneWiderstand(volt, ampere):
    return float(volt)/ampere

    print berechneWiderstand(volt=12, ampere=4)
    print berechneWiderstand(ampere=4, volt=12)

7 Python-Datei [toc]

Ein Python Script wird in einer Datei gespeichert, die mit ".py" endet. Als Vorlage kann folgende Datei dienen: reverse.py

Wie führt man nun dieses Programm aus?

Unter Unix ruft man es von der Shell auf:
  python myscript.py
Steht in der ersten Zeile #!/usr/bin/env python und hat man die Ausführungsrechte gesetzt (chmod a+rx myscript.py) kann man es direkt ausführen:
 ./myscript.py
Unter Windows kann man ein Script durch Doppelklick aus dem Explorer ausführen. Endet die Datei mit ".py" wird es in einer MS-DOS Eingabeaufforderung ausgeführt. Wenn es die Endung ".pyw" hat, wird es ohne zusätzlichem Fenster gestartet. Der Nachteil vom Anklicken ist, das man dem Script keine Argumente übergeben kann. Zur Not kann man das Script aus der MS-DOS Eingabeaufforderung aufrufen und dort Argumente übergeben.

Startet man ein Programm durch Doppelklick auf eine .py Datei, schließt sich das Fenster sobald das Script beendet ist. Möchte man, dass das Fenster offen bleibt, kann man ein "sys.stdin.readline()" am Ende einfügen.

Ein typischen Programm in Python:
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-

# Python Imports
import os
import sys

def usage():
print """Usage: %s
....
""" % (
os.path.basename(sys.argv[0]))

def main():
if len(sys.argv)==1:
usage()
sys.exit()

if __name__=="__main__":
main()
Die Funktion "main" wird aufgerufen, wenn das Script aufgerufen wird.

Wird das Script von einer anderen Datei importiert (import myscript), wir die Main-Funktion nicht aufgerufen. Es werden dann nur die Funktionen und Klassen bereitgestellt.

8 Dateien [toc]

  • Arbeiten mit Dateien ist einfach:
  • Code:
        fd=open("beispiel.txt")
    inhalt=fd.read() # Lese die gesamte Datei
    fd.close()
    print inhalt
    Oder zeilenweise:
        fd=open("beispiel.txt")
    for line in fd:
    print line

9 Klassen [toc]

  • Klassen sind Datenstrukturen, die aus Methoden und Attributen bestehen. Methoden sind Funktionen einer Klasse, und Attribute sind Daten einer Klasse. Ein Beispiel: klasse-auto.py
  • Python unterstützt auch Vererbung, sowie Mehrfachvererbung und Exceptions.

10 Standardbibliothek [toc]

Ein Modul (bzw. Bibliothek) wird mit der import-Anweisung eingebunden. Die Funktionen, Variablen und Klassen dieses Moduls sind über den Modulnamen anzusprechen.
import sys
sys.argv[0] # Scriptname

from types import * # Globaler Namensraum wird mit überschrieben. Selten verwenden!
assert type(myvar) == IntType

from xml import sax
sax.parse(...)
Folgende Pakete gehören zur Standardbibliothek und sind in der Regel immer vorhanden. Da die gesamte Liste der Python Pakete inzwischen recht lang geworden ist, will ich hier die aus meiner Sicht wichtigsten Pakete aufzählen:
  • re: Python unterstützt reguläre Ausdrücke (Regular Expressions). Es wird die Bibliothek PCRE (Perl Compatible Regular Expressions) verwendet.
  • sys: Sys enthält unter anderem:
        sys.exit()  sofortiges Beenden des Programms
    sys.stdin, sys.stdout, sys.stderr
    sys.argv Liste der Argumente beim Programmaufruf.
    Der Scriptname steht in sys.argv[0]
  • pickle: Pickle (Serialisieren) bedeutet, dass man Datenstrukturen zu einer Bytefolge konvertiert. Diese Bytes können dann in einer Datei gespeichert werden. Für kleine Programme kann man somit der Einsatz einer Datenbank vermieden werden.
       import pickle

    dict={}
    dict["hans"]="0815"
    dict["gerd"]="007"
    fd=open("datei.pickle", "w")

    #Speichern der Daten
    pickle.dump(dict, fd)
    fd.close()

    # Die Pickle-Datei ist reines ASCII
    Laden des Dictionaries aus der Datei:
        import pickle

    fd=open("datei.pickle")
    dict=pickle.load(fd)
    fd.close()
    print dict
  • math: Mathematische Funktionen: sin(), cos() ...
  • os: Betriebsystem-Funktionen:
    os.popen() (Pipe-Open: Ausführen von Kommandos)
    os.system(), os.chdir(), os.getcwd(), os.nice(), os.kill(), 
    os.chmod(), os.environ["PATH"], os.walk() (ähnlich wie 'find')
  • datetime: Datumsfunktionen, etwas sauberer als das Modul "time", da nicht nur in der Einheit "Sekunden seit 1970" gerechnet wird.
  • urllib: Öffnen von Dateien per http://... oder ftp://...
  • cgi: Einfache CGI-Schnittstelle.
  • cgitb: Falls in einer Webanwendung ein Fehler auftritt, kann man mit cgitb eine HTML Seite erzeugen lassen, die sehr viele Informationen enthält die zur Fehlersuche hilfreich sind (lila Seiten). Man kann sich auch einen eigenen "Handler" schreiben, der einem die Fehlermeldung automatisch per E-Mail zuschickt: cgitb.html
  • poplib, imaplib, smtplib
  • email: Emails im MIME-Format bearbeiten.
  • htmllib, sgmllib, xml.sax, xml.dom
  • Kryptography: md5, sha
  • Tkinter: Graphisch Benutzeroberflächen mittels TK

11 Externe Bibliotheken [toc]

  • pyGTK: Python Anbindung an die GUI-Bibliothek GTK.
  • ZODB: Objektorientierte Datenbank. Vortrag
  • Quixote: Webserverunbabhängige Schnittstelle zwischen CGI und Python
    Es gibt im Gegensatz zur Programmiersprache Ruby bei Python eine Vielzahl von Webframeworks. Mir gefällt Quixote aus folgenden Gründen am besten:
    • Quixote ist klein.
    • Der Teil der URL hinter dem Scriptnamen wird rekursiv aufgelöst. Das Erstellen von einfachen, lesbaren URLs ist leicht möglich:
          http://.../cgi-bin/meinScript/objects/1234/meineFunktion
      Der Teil hinter "meinScript" ist virtuell und wird, angefangen beim Rootobjekt, rekursiv aufgelöst. Im Vergleich dazu die unflexible Lösung:
          http://.../cgi-bin/meinScript?object=1234&func=meineFunktion
    • Die Anbindung an SCGI ist einfach.
    Die Forms-Bibliothek und die Templatesprache PTL verwende ich nicht.
  • DB-API: Anbindung an relationale Datenbanken: MySQL, Postgres, Oracle, ...
  • epydoc: Erstellt API-Dokumentation anhand von Kommentaren im Quelltext. Ausgabeformate sind HTML oder Latex.

12 Beispiele [toc]

13 Externe Links [toc]

Hier einige "Rezepte" aus dem Python Cookbook:

14 Nachteile von Python [toc]

Einige Dinge sind auch an Python nicht optimal:
  • Für Programmierer die vorher mit Visual Basic, Delphi oder Visual C++ gearbeitet haben, ist der Einstieg in Python ernüchternd: Die mitgelieferte Entwicklungsumgebung IDLE ist nicht geeignet um grafische Benutzeroberflächen "zusammenzuklicken". Außerdem gibt es keine Intelli-Sense (automatische Namenserweiterung).

    Auf den zweiten Blick ist es jedoch eine logische Trennung von unabhängigen Teilen: Der Quelltext kann mit jedem beliebigen Editor erstellt werden (XEmacs, vim, Ultra-Edit, Kate usw.) und grafisch Benutzeroberflächen können mit dem jeder beliebigen GUI-Bibliothek erstellt werden (gtk, tk, qt usw.).
  • Python macht faul: Wenn man mit der Syntax von Python und der umfangreichen Standardbibliothek vertraut ist, möchte man meist nicht mehr andere Sprachen verwenden.

15 Hinweise zur Python Programmierung [toc]

  • "from foo import *" sollte vermieden werden. Eine Ausnahme ist das Modul "types".
  • Wenn aus verschiedenen Quellen Module benutzt werden, ist es übersichtlich, wenn man die Import-Anweisungen zusammenfasst:
       #Python Imports (Standard Library)
    import os
    import re

    #Gtk Imports (Externe Library)
    import gtk

    #My Imports
    import myPackage
  • Mit Assertions kann man überprüfen, ob die gerade zu bearbeiten Daten konsistent sind: Wenn eine Variable z.B. nur Integerwerte enthalten sollte:
     
    assert type(var)==IntType
    Guter, robuster Quelltext enthält viele Assertions.

16 FAQ [toc]

  • Was bedeutet "from MyClass.MyClass import MyClass"?
    Obige Zeile sieht für Neulinge unverständlich aus. Das Rätsel lässt sich jedoch leicht lösen: Das erste MyClass ist meist ein Verzeichnis. In diesem Verzeichnis steht eine Datei namens MyClass. In der Datei existiert eine Klasse MyClass, die mit der obigen Anweisung importiert wird.
  • Kann man Python für Web-Anwendungen einsetzen?
    Natürlich! Viele Web-Hoster bieten inzwischen Python an. Es gibt mehrere Möglichkeiten um Python, wie bei PHP, in HTML-Text zu schreiben. Ich bevorzuge es jedoch, das komplette HTML in Python zu erstellen, bzw. eine HTML-Vorlage an den entsprechenden Stellen mit Variablen zu füllen. Beispiel für einen einfachen CGI-Server (kein Apache, bzw. Webserver, nötig): Webserver.py.

    Ich bin kein Freund von Programm-Logik in HTML-Quelltext wie es z.B. bei PHP gemacht wird.
    • Wenn die erstellte HTML-Seite hauptsächlich aus einem festen HTML-Teil besteht, speichere ich die Seite als HTML-Datei und ersetze mittels string.replace() bestimmte Inhalte durch zur Laufzeit erstellte Zeichenketten. Beispiel: Uhrzeit in einer HTML-Seite anzeigen.
    • Besteht die Seite hauptsächlich aus Programm-Logik, gehe ich wie in der Beispiel-Datei vor: beispiele.py (Siehe Ein-Mal-Eins als HTML-Tabelle)
  • Wie kann man Bild-Dateien mit Python bearbeiten?
    Es gibt dafür mindestens drei Möglichkeiten:
    1. PIL: Python Bibliothek für Bildbearbeitung
    2. Python Anbindung an ImageMagick
    3. Aufruf von ImageMagick per popen() oder os.system(). Hier ein Beispiel um mit 'convert' von ImageMagick Bilder zu skalieren:
          cmd="convert -geometry %sx%s '%s' '%s'" % (
      x, y, filename, new_filename)
      ret=os.system(cmd)
      if ret!=0:
      print "Error while executing: '%s'" % cmd
  • Was sind *.pyc Dateien?
    Wird eine Python foo.py Datei mittels "import foo" importiert, wird der Quelltext zu Bytecode compiliert und als foo.pyc abgespeichert. Wird der Quelltext nicht geändert, verwendet der Interpreter beim Zweitenmal den vorkompilierten Bytecode. Dieser Mechanismus ist ähnlich wie bei dem Unix-Werkzeug "make": die pyc-Datei wird wieder erstellt, wenn sich die py-Datei geändert hat.
  • Wie funktioniert der Debugger von Python?
    Python hat einen Debugger integriert: Modul pdb. Ich verwende ihn nicht, da man den Fehler mit wenigen Print-Anweisungen oder einer eingefügten Exception meist schnell findet.
       # i sollte größer als Null sein
    if i<0:
    raise("Interner Fehler: i kleiner Null: i=%s" % i)
  • Welchen Editor sollte man benutzen?
    Man kann jeden beliebigen Texteditor nutzen: (X)Emacs, vim, Kate, IDLE, gedit, ...
  • Wo finde ich eine Übersicht der Funktionen, Module und Klassen?
    docs.python.org --> Library Reference --> Index (rechts oben)

17 About [toc]

Diese Seite entstand im Rahmen folgender Vorträge und Workshops:
© 2002-2005 Thomas Güttler. Der Text darf nach belieben kopiert und modifiziert werden, solange dieser Hinweis zum Copyright und ein Links zu dem Original unter www.thomas-guettler.de erhalten bleibt. Es wäre nett, wenn Sie mir Verbesserungsvorschläge mitteilen: guettli@thomas-guettler.de

Aus der User-Archiv Datenbank

Einführungen/Tutorials

http://de.wikibooks.org/wiki/Python
Rubrik: Programmieren; Typ: Tutorials
http://www.thomas-guettler.de/vortraege/python/einfuehrung.html
Rubrik: Programmieren; Typ: Tutorials
http://www-md.e-technik.uni-rostock.de/ma/pfueller/instant-python-ger.html
Rubrik: Programmieren; Typ: Tutorials
http://www.schronen.de/python/
Rubrik: Programmieren; Typ: Tutorials
http://www.wspiegel.de/pykurs/pykurs.htm
Rubrik: Programmieren; Typ: Tutorials
http://www.freenetpages.co.uk/hp/alan.gauld/german/
Rubrik: Programmieren; Typ: Tutorials
http://www.bics.be.schule.de/inf2/programmiersprachen/python/
Rubrik: Programmieren; Typ: Tutorials
http://trumpf-3.rz.uni-mannheim.de/www/sem2000s/hoetzel/index.html
Rubrik: Programmieren; Typ: Tutorials
http://www.way2python.de/
Rubrik: Programmieren; Typ: Tutorials
http://starship.python.net/crew/gherman/publications/tut-de/online/tut/tut.html
Rubrik: Programmieren; Typ: Tutorials



Sonstige Online-Literatur

http://de.wikibooks.org/wiki/Python_unter_Linux
Rubrik: Programmieren; Typ: Sonstige_Literatur
http://de.wikibooks.org/wiki/Python_3-Programmierung
Rubrik: Programmieren; Typ: Sonstige_Literatur
http://wiki.python.org/moin/FrontPage?action=show&redirect=StartSeite
Rubrik: Programmieren; Typ: Sonstige_Literatur
http://www.pythonwiki.de//PythonIntern
Rubrik: Programmieren; Typ: Sonstige_Literatur
http://www.pythonwiki.de//PythonVsPerl
Rubrik: Programmieren; Typ: Sonstige_Literatur
http://www.pythonwiki.de//PythonErweitern
Rubrik: Programmieren; Typ: Sonstige_Literatur
http://www.pythonwiki.de//PythonErweiterungen
Rubrik: Programmieren; Typ: Sonstige_Literatur
http://www.pythonwiki.de//PythonTipps
Rubrik: Programmieren; Typ: Sonstige_Literatur
http://www.pythonwiki.de//PythonMailingListen
Rubrik: Programmieren; Typ: Sonstige_Literatur
http://wiki.python.de/
Rubrik: Programmieren; Typ: Sonstige_Literatur
http://www.log-in-verlag.de/wwwredlogin/Archiv/2001/2/Thema/
Rubrik: Programmieren; Typ: Sonstige_Literatur
http://www.sschwarzer.net/python/perlpy_vortrag.html
Rubrik: Programmieren; Typ: Sonstige_Literatur
http://www.sschwarzer.net/python/python_vortrag.html
Rubrik: Programmieren; Typ: Sonstige_Literatur
http://parallel.fh-bielefeld.de/ti/studien/python/Studienarbeit.html
Rubrik: Programmieren; Typ: Sonstige_Literatur
http://www.fh-wedel.de/%7Esi/seminare/ws99/Ausarbeitung/Python/
Rubrik: Programmieren; Typ: Sonstige_Literatur
http://www.heise.de/ix/artikel/2001/03/064/
Rubrik: Programmieren; Typ: Sonstige_Literatur
http://www.heise.de/ix/artikel/1999/11/184/
Rubrik: Programmieren; Typ: Sonstige_Literatur
http://www.silverymoon.de/uni/python/index.html
Rubrik: Programmieren; Typ: Sonstige_Literatur
http://www.b.shuttle.de/b/humboldt-os/python/
Rubrik: Programmieren; Typ: Sonstige_Literatur
http://www.cl.uni-heidelberg.de/kurs/ws04/prog1/html/
Rubrik: Programmieren; Typ: Sonstige_Literatur



FAQs

http://www.kubieziel.de/pythonwiki/index.php/Hauptseite
Rubrik: Programmieren; Typ: FAQ



Referenzsammlungen

http://www.python.org/doc/current/
Rubrik: Programmieren; Typ: Referenzen
http://160.45.133.240/vok/vokabelheft.html
Rubrik: Programmieren; Typ: Referenzen
http://www.yukoncollege.yk.ca/~ttopper/COMP118/rCheatSheet.html
Rubrik: Programmieren; Typ: Referenzen



Portale

http://www.python.org
Rubrik: Programmieren; Typ: Portal
http://www.pythonwiki.de/StartSeite
Rubrik: Programmieren; Typ: Portal
http://www.python.de/
Rubrik: Programmieren; Typ: Portal

Diskussionsforen

http://www.pythonwiki.de//PythonDeForum
Rubrik: Programmieren; Typ: Diskussionsforen
http://www.python-forum.de/
Rubrik: Programmieren; Typ: Diskussionsforen
http://www.python-welt.de/
Rubrik: Programmieren; Typ: Diskussionsforen
http://www.pythonwiki.de/StartSeite
Rubrik: Programmieren; Typ: Diskussionsforen
http://www.easy-coding.de/python-f26.html
Rubrik: Programmieren; Typ: Diskussionsforen

Python Wiki - Links zu den einzelnen Kapiteln

http://wiki.python.de/

Grundlagen

  • Python - was ist das eigentlich?

  • Tutorial - deutsche Übersetzung des Python Tutorials

  • FAQ - Häufig gestellte Fragen

  • Allgemeine Begriffe - Erklärung von pythonspezifischen Begriffen

Information

Artikel zu Python aus dem python-wiki

http://wiki.python.de/Artikel

Python Communities, vorgestellt im python-wiki

http://wiki.python.de/Tags/Community

Python-Snippets aus dem Python Wiki

http://wiki.python.de/Tipps_und_Tricks

Allgemeines #

Module #

  • Import - Erklärt wie man Module/Packages importieren kann.

  • Module neu laden - importierte Module neu laden.englische Doku)

Dateien und Ordner #

Klassen #

Dictionaries #

Listen #

Sets #

  • Integer Set - effizientes Integer Set mit Unterstützung für +/- Unendlich.

  • IPv4 Adress Set - effizientes Set um IPv4-Adressen zu speichern und Mengenoperationen auf ihnen vorzunehmen, baut auf Integer Set auf.

Iteratoren #

Mathematik #

Strings #

Unicode #

Datenbank #

Internetprogrammierung allgemein #

WSGI #

Netzwerk #

Threading #

Editoren / IDEs #

  • Scite - Perfekte Python Unterstützung in Python

  • SPE - eine Python IDE in wxPython programmiert

  • IDLE - Vor- und Nachteile der mitgelieferten IDE

  • Emacs

  • Vim

Bücher zum Themaphyton programmierung




Linktipps

Einkaufen

Internet-Einkaufszentrum

Computer, Elektronik

Freizeit, Sport, Fitness

Mobilfunk, Handy

Apple iPhone

Mobilfunk Handytarife

Fotografie

Filmen

Rund um's Auto

Mehr? Sieh selbst:

Verbraucherschutz

Verbrauchermagazin

Nachrichten

Stiftung Warentest

Ökotest

Verbraucherschutz-Ministerium

Wer ist unter uns?



Bücher




Software


Nutzen Sie die Vorteile beim Softwarekauf Über Amazon: Software wird von Kunden bewertet - günstiges Versandkostensystem - Amazon ist zuverlässig





Handy/Telefon


O2 Inklusiv Pakete Online

Empfehlung: Top-Services

Kredite und Finanzierung

Tagesgeld und Girokonten

Partnersuche

Reisen

Hotelsuche

Handytarif-Vergleich

Stromtarif-Vergleich

Gastarif-Vergleich

Internet Flatrate Vergleich

Versicherungsvergleich

Immobilien

Verbraucherschutz



TERRE DES LANGUES e.V. - 25 Jahre Erfahrung in Sprachreisen, Schuljahresaufenthalte, Highschool-Years und Gastfamilienaufenthalte


www.user-archiv.de (seit 1999)