0% fanden dieses Dokument nützlich (0 Abstimmungen)
12 Ansichten

python1

Hochgeladen von

alexandrumatei.sporis
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen
0% fanden dieses Dokument nützlich (0 Abstimmungen)
12 Ansichten

python1

Hochgeladen von

alexandrumatei.sporis
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen
Sie sind auf Seite 1/ 16

Programmieren in Python

1. Was ist Python?

Malte Helmert

Albert-Ludwigs-Universität Freiburg

KI-Praktikum, Sommersemester 2009

Malte Helmert Programmieren in Python


Was ist Python?

Kurz: Python ist eine objektorientierte Skriptsprache.

Ausführlicher: Python ist eine. . .


I objektorientierte,
I dynamisch getypte,
I interpretierte und
I interaktive
I High-Level-Programmiersprache.

Mehr zu diesen Eigenschaften später.

Malte Helmert Programmieren in Python


Zur Geschichte Pythons

I Ursprünglich entwickelt von Guido van Rossum im Rahmen eines


Forschungsprojekts am Centrum voor Wiskunde en Informatica“ in

Amsterdam.
I Entwickelt seit 1989, erste öffentliche Version 1991.
I Meilensteine: Versionen 1.0.0 (1994), 1.5 (1998), 2.0 (2000),
3.0 (2008)
I Mittlerweile wird Python als Open-Source-Projekt von der
Allgemeinheit weiterentwickelt, wobei ein innerer Kern die meiste
Arbeit übernimmt. Guido van Rossum hat als BDFL“ (benevolent

dictator for life, gütiger Diktator auf Lebenszeit) das letzte Wort.

Malte Helmert Programmieren in Python


Zum Namen

Python ist nicht nach einem Reptil benannt, sondern nach


Monty Python’s Flying Circus, einer (hoffentlich!) bekannten
englischen Komikertruppe aus den 1970ern.

Daher auch viele Namen von Tools rund um Python:


I IDLE

I Eric
I Bicycle Repair Man
I Grail

Wo andere Programmiersprachen die Variablen foo und bar verwenden,


wählt man in Python gerne spam und egg.

Malte Helmert Programmieren in Python


Vergleich von Python mit anderen Programmiersprachen

I C, C++, Java
I Perl
I PHP
I LISP

Malte Helmert Programmieren in Python


Python vs. C, C++, Java

Python hat gegenüber der C-Familie einen deutlich höheren


Abstraktionsgrad ( weiter weg von der Maschine“):

I Automatische Speicherverwaltung

I Unbeschränkte Ganzzahlarithmetik
I Eingebaute komplexe Datentypen: list, dict, tuple
I Funktionen höherer Ordnung: map, filter, reduce
I Alles ist ein Objekt
I Alles ist dynamisch: Metaklassen und Metaprogrammierung

Im Vergleich zu Sprachen aus der C-Familie sind Python-Programme:


I kürzer
I lesbarer
I portabler
I langsamer

Malte Helmert Programmieren in Python


Python vs. Perl

Gemeinsamkeiten:
I ursprüngliches Anwendungsgebiet: Unix-Scripting
I ähnlicher Abstraktionsgrad
I dynamisch getypt

Unterschiede:
Perl Python
There’s more than one way to do it. There should be one, and preferably
only one, obvious way to do it.
I viele Abkürzungen I wenige Spezialfälle
I sehr kompakt I sehr lesbar
I schwach getypt: 2+"foo" = 2 I stark getypt: 2+"foo" = Fehler
I im Wesentlichen prozedural I objekt-orientiert
I auf Scripting zugeschnitten I allgemein konzipiert

Malte Helmert Programmieren in Python


Python vs. PHP

Gemeinsamkeiten:
I ähnlicher Abstraktionsgrad
I dynamisch getypt

Unterschiede:
PHP Python
Auf dynamische Webseiten Als allgemeine Programmiersprache
zugeschnitten. konzipiert.
I viele automatische Dinge I “Explicit is better than implicit.”

I ein globaler Namensraum I Module und Namensräume

I im Wesentlichen prozedural I objekt-orientiert


I C-artige Syntax I keine C-artige Syntax

Malte Helmert Programmieren in Python


Python vs. LISP

I Fundamental unterschiedliche Syntax:

LISP Python
(defun factorial (n) def factorial(n):
(if (<= n 1) 1 if n <= 1:
(* n return 1
(factorial (- n 1))) else:
)) return n * factorial(n-1)

I Viele Gemeinsamkeiten im “Kern”:


→ Python for Lisp Programmers,
→ http://www.norvig.com/python-lisp.html

Malte Helmert Programmieren in Python


Python-Ressourcen

I Online-Dokumentation
I IDEs & Editoren
I Internet-Ressourcen
I Bücher

Malte Helmert Programmieren in Python


Online-Dokumentation von Python

Einstiegspunkt: http://docs.python.org/

Besonders wichtig/interessant:
I am Anfang das Tutorial
(http://docs.python.org/tutorial/index.html)
I im Programmieralltag die Library Reference
(http://docs.python.org/library/index.html)

Malte Helmert Programmieren in Python


IDEs für Python

I IDLE ist die bei Python mitgelieferte IDE.


I Boa Constructor und PythonWin (nur Windows) sind weitere freie
IDEs.
I Black Adder, Komodo und Wing IDE sind populäre kommerzielle
Python-IDEs.
I Für Visual Studio (nur Windows) gibt es ein Python-Plugin.
I Für Eclipse ebenfalls (Pydev).

Malte Helmert Programmieren in Python


Editoren für Python

I XEmacs und GNU Emacs haben einen mitgelieferten


Python-Modus, der automatisch verfügbar ist.
I Für GNU Emacs gibt es sogar zwei.
I Der aus meiner Sicht bessere ist der nicht vorinstallierte.
I Unter Debian/Ubuntu: sudo apt-get install python-mode.
I vim und gvim unterstützen Python gut und können in Python
programmiert werden.
I jEdit und Leo unterstützen Python sehr gut.
Im Folgenden alle Beispiele unter Linux mit XEmacs.

Malte Helmert Programmieren in Python


Offizielle Internet-Ressourcen zu Python

Offizielle Website:
I http://www.python.org/

I interessant dort zum Beispiel: Dokumentation, Python FAQs,


Python Wiki, PEPs, Python Package Index

Newsgroups:
I comp.lang.python
I comp.lang.python.announce

Mailingliste:
I python-dev: siehe
http://mail.python.org/mailman/listinfo/python-dev
I Newsgroup-Interface über http://www.gmane.org/

Malte Helmert Programmieren in Python


Bücher zu Python (aus Papier)

I Alex Martelli: Python in a Nutshell


I Alles, was man wissen muss. Für Fortgeschrittene.
I Aktuelle Auflage (2006) behandelt Python 2.5.
I Alex Martelli, Anna Martelli Ravenscroft und David Ascher:
Python Cookbook
I Codebeispiele. Sehr nützlich.
I Aktuelle Auflage (2005) behandelt Python 2.4.
I Mark Lutz und David Ascher: Learning Python
I Guter Ruf, ich kenne es nicht. Für Einsteiger.
I Aktuelle Auflage (2007) behandelt Python 2.6.
I Deutsch als Einführung in Python (alte Auflage).
I . . . viele andere (nennenswert vielleicht noch Programming Python)
Alle erwähnten Bücher sind im O’Reilly-Verlag erschienen.

Malte Helmert Programmieren in Python


Online-Bücher zu Python

Zwei kostenlose Online-Bücher zu Python:


I Mark Pilgrim: Dive into Python
I http://diveintopython.org/
I Für erfahrenere Programmiere.
I Auch käuflich zu erwerben.
I Allen Downey, Jeff Elkner und Chris Meyers:
How to Think Like a Computer Scientist
I http://www.greenteapress.com/thinkpython/thinkCSpy/
I Für Programmieranfänger.
I Spätere Auflagen käuflich zu erwerben.

Malte Helmert Programmieren in Python

Das könnte Ihnen auch gefallen