Python – kein Witz

Python ist nicht der beste Witz der Welt. Das wäre viel zu gefährlich. Denn der ist tödlich.

Benannt wurde die relativ junge, objektorientierte Programmiersprache aber sehr wohl nach den leidlich bekannten Satire Göttern „Monty Pythons“. Schließlich war der Entwickler von Python, Guido van Rossum, ein großer Fan von Monty Python’s Flying Circus.

Python – wat soll dat denn?

Python als Programmiersprache ist aus mehreren Gründen attraktiv:

  • Programme lassen sich in Python oft schneller entwickeln als in traditionellen Programmiersprachen wie C(++), Pascal oder auch Java.
  • Python ist plattformunabhängig. Es kann auf fast allen Betriebssystemen eingesetzt werden.
    Neben den Versionen für die „großen“ Betriebssysteme Windows, Macintosh und Unix gibt es auch Versionen für OS/2, BeOS und viele andere Biotope.
  • Python ist flexibel. Es kann beispielsweise als »Rapid Application Development«-Tool (RAD) eingesetzt werden, aber auch als Scriptsprache im DevOps Umfeld.
  • Python ist von Anfang an konsequent als objektorientierte Sprache entwickelt worden. Dadurch gibt es keine Umwege zur echten Objektorientierung wie bei vielen älteren Sprachen, die erst im Laufe der Entwicklung objektorientiert wurden.
  • Python kann – wie z.B. Oberon-2 – aber auch prozedural verwendet werden.
  • Funktionale Strukturen, die Lisp, Scheme, R oder auch Mathematica beliebt gemacht haben, sind in Python ebenfalls hervorragend umsetzbar. Das macht Python neben etwa R zu einer Sprache, die wie geschaffen ist für KI und Data Driven Applikationen.
  • Schließlich bringt Python Tkinter mit – ein mächtiges und leicht zu benutzendes Werkzeug zur Programmierung grafischer Benutzeroberflächen. Tkinter zeichnet sich ebenfalls durch seine Plattformunabhängigkeit aus.

Python kleiner Direktvergleich

Mit Python lässt sich fast alles programmieren, was der Markt verlangt. Aber was unterscheidet Python von anderen OOP-Sprachen?

C(++), Pascal, Oberon und Java

Alle Konstrukte klassischer, prozeduraler Programmiersprachen, wie etwa Schleifen oder Bedingungen, sind selbstverständlich umsetzbar. Aber in Python ist alles etwas stringenter. Hier einige der wichtigsten Unterschiede:

  • Die Speicherverwaltung ist komplett automatisiert. Java und Oberon sind die einzigen traditionellen Programmiersprachen, die ebenfalls einen automatisierten Speicher anbieten. Allerdings zwingt der Garbage Collector bei Java oder Oberon-2 die Entwickler schon einmal dazu, darüber nachzudenken, was nun eigentlich „weg“ muss und wo. Das ist in Python – mittels Referenzzähler – besser gelöst.
  • Typbindungen sind auf Objekte beschränkt und nicht auf Variablen. Es gibt kein Typecasting wie in Pascal, Oberon oder C.
  • Objektorientierte Programmiersprachen leben von ihrer Bibliothek. Die Bibliothek von Python erlaubt Abstraktion auf einem sehr hohen Level. Ein einfacher Webserver kann z.B. in wenigen Zeilen geschrieben werden!

Python für Einsteiger

Jedem, der an einem fundierten Einstieg in Python interessiert ist, legen wir (selbstverständlich) unser Seminar „Python für Programmiereinsteiger“ ans Herz. (Zwinkern)  Hier lernen Sie Python wirklich von der Pike auf. Es bietet Einsteigern alles, was sie brauchen, um mit der klammerlosen Sprache loszulegen. Davon kann Ihr Unternehmen gerade in Zeiten des Data Driven Business profitieren. Die Agenda:

Python – Der GFU Einsteigerkurs

  • Python: Unterschied zu Java / C#.NET / C++ / PHP
  • Kurzübersicht über die Editoren
  • Die Entwicklungsumgebung
  • Einrichten eines Python-Projekts
  • Grundsätzlicher Aufbau eines Python-ProgrammsSyntax von Python
  • Die Help-Funktion
  • Kommentare
  • Allgemeine Datentypen
  • int, float, Decimal, bool, string
  • Konvertierungen zwischen Datentypen
  • Logische und arithmetische Operatoren
  • Formatierte Ausgaben mit format()
  • Funktionen, Parameterübergabe
  • Die pass-Anweisung
  • Lambda-Expressions

Übungen zur Programmlogik

  • Viele ausgewählte Übungen
  • Schleifen: for und while
  • Die range-Funktion
  • Bedingungen: if, elif, else
  • Übungen zu verbesserter Performance

Objektorientierte Programmierung

  • Einstieg in objektorientierte Programmierung
  • Datenkapselung, Vererbung, Polymorphie
  • Klassen und Objekte
  • Die Klasse Object
  • Mehrfachvererbung
  • Überschreiben von Methoden der Basisklasse
  • Viele Übungen: eigene Klassen schreiben

Exceptionhandling in Python

  • Die Klasse Exception
  • try / except / finally
  • Erstellen einer eigenen Fehlerklasse

Weitere optionale Themen

Für alle, die sich erst einmal allein durchs Thema „kämpfen“ möchten oder auf der Suche nach ergänzendem Material sind, empfehlen wir das hier:

Python-Homepage der PSF (Python Software Foundation): https://www.python.org

Python-Implementierungen:

Sammlungen von Python-Software:

  • IPython – An enhanced Interactive Python shell: http://ipython.org/ und https://ipython.readthedocs.io/en/stable/index.html

    bietet u.a. eine interaktive Python-Shell mit einem deutlich erweiterten Funktionsumfang gegenüber der Standard-„Shell“ von CPython: Syntax-Highlighting, automatische Komplettierungen, dynamische Objekt-Introspektion, Suche in Namensräumen u.v.m.

  • IDLE – an Integrated DeveLopment Environment for Python: https://docs.python.org/3/library/idle.html

    eine standardmäßig mit CPython verteilte IDE

  • Eric: http://eric-ide.python-projects.org/

    komplette IDE für Python und Ruby

  • PyDev: http://pydev.org/

    leistungsfähige IDE für Eclipse, die für Python, Jython and IronPython genutzt werden kann

  • PyCharm: https://www.jetbrains.com/pycharm/

    vollwertige IDE für Python mit freier Community Edition und proprietärer Professional Edition, die u.a. eine Unterstützung von Web-Frameworks (Django, Flask, Google App Engine, Pyramid und web2py), Datenbanken und SQL bietet

  • Spyder: https://www.spyder-ide.org/

    leistungsfähige IDE für die wissenschaftliche Programmierung mit Python, die zahlreiche prominente Pakete auf diesem Gebiet integriert, u.a. NumPy, SciPy, Matplotlib, pandas, IPython, SymPy, Cython

Links zu Kursen, Open Books, Tutorials, FAQs:

Übrigens: Im nächsten Artikel der Serie „Python – kein Witz“ geht es um die Geschichte von Python – ein bisschen „Klugscheißer“-Wissen also. (Zwinkern)