Seite 1 von 1

Einfuehrung in Python (fuer Programmierer) 2008

Verfasst: Dienstag 2. September 2008, 14:04
von Rebecca
Auch dieses Jahr werde ich im Rahmen der internen Fortbildung wieder einen Einfuehrungskurs in Python abhalten. Der Kurs ist fuer Leute gedacht, die schon programmieren koennen. Er geht ueber drei ganze Tage, jeweils Vorlesung mit anschliessenden Uebungen.

Vorlesungsfolien, Uebungsblaetter, LaTex-Quellen und Musterloesungen

Dieses Jahr habe ich mir mal die Muehre gemacht, die Folien im Design der python.org-Seite zu gestalten. 8)

Verfasst: Dienstag 2. September 2008, 15:44
von kaschu
Hi!
In den Vortragsfolien ist ein kleiner Vertipper drin.
Auf der Seite "Anonyme Funktionen: lambda" steht.

Code: Alles auswählen

>>> f = lambda x, y: x+y
>>> f(2,3)
4
Heraus kommt natürlich 5.

Verfasst: Dienstag 2. September 2008, 16:07
von BlackVivi
Das Bild "PythoN" auf der Seite funktioniert nicht... Falscher Verweis oder so :)

Verfasst: Dienstag 2. September 2008, 16:19
von BlackJack
@Rebecca: Bei der Bemerkung zu ``except`` ohne konkrete Ausnahme musste ich schmunzeln. Kleine Korrektur: Es werden auch *gewollte* Programmierfehler verdeckt. ;-)

Das ``try``/``finally``-Beispiel funktioniert (noch) nicht. Noch braucht man für das ``finally`` ein eigenes ``try``.

Auf Folie 149 ist ein kleiner Fipptehler: Datan -> Daten.

Verfasst: Dienstag 2. September 2008, 16:21
von audax
BlackJack hat geschrieben: Das ``try``/``finally``-Beispiel funktioniert (noch) nicht. Noch braucht man für das ``finally`` ein eigenes ``try``..
Öhm...nein?
Ab 2.5 doch nicht mehr

Verfasst: Dienstag 2. September 2008, 17:58
von BlackJack
Oh, ich dachte das käme erst mit 2.6. Aber in den Folien wird noch 2.4.irgendwas verwendet!

Verfasst: Mittwoch 3. September 2008, 09:29
von Rebecca
Danke fuer die Hinweise, werde ich einbauen. Letztes Jahr war auf den Uebungsrechnern noch 2.4 (und 2.4 ist ja allgemein noch sehr weit verbreitet), deswegen hab ich versucht, die Folien 2.4-kompatibel zu halten. Ein paar 2.5-Neuerungen werden dann extra erwaehnt.

EDIT: Ich sehe gerade, dieses Jahr gibt's Python 2.5.

Verfasst: Freitag 5. September 2008, 09:36
von sma
Rebecca, zunächst vielen Dank für das Veröffentlichen deiner Kursunterlagen. Ein paar Kommentare zu Teil 1.

Mir ist aufgefallen, dass bei "Dynamischer Typisierung" steht, dass es keine Variablendeklarationen gibt. Das ist vielleicht bei Python so, aber allgemein kein Attribut dynamischer Typisierung. Auch wird später (bei `dir`) von Namen gesprochen und daher würde ich auch hier schon von dem Binden von Objekten an Namen sprechen und nicht von Variablen.

Allgemein: Sollte man 2008 nicht schon in Richtung 3.0 oder wenigstens 2.6 informieren? In einem Monat ist es doch so weit. Du zeigst auf einer Folie Python 2.4.

Bei den Grundrechenarten ist es evtl. erwähnenswert, dass `/` und `%` bei negativen Zahlen anders runden als C oder Java (bin ich neulich mit auf die Nase gefallen).

Sollte man bei Strings nicht auch die u""-Form erwähnen und ans Herz legen? Bytestrings sind doch in heutiger Zeit eigentlich ein Anachronismus - oder sollten es wenigstens sein.

Auf der Folie "Operationen auf Sequenzen" fehlt ein R in "Stings". Auf der nächsten Folie: `upper` ist keine Funktion, sondern eine Methode.

Mein Tipp wäre, bei der Folie über Referenzen Objektidentitäten (und den `is`-Operator) zur Erklärung zu benutzen. Das ist sonst ein Thema, was aus meiner Erfahrung schwer zu vermitteln ist.

Auf der Folie "Vergleichsoperatoren" und auf der zwei danach hast du unnötige Klammern benutzt. Manche sagen, das macht Dinge klarer, ich finde es jedoch verwirrend und als Zeichen, dass die Vorrangregeln und Syntax nicht verstanden wurden. Beliebtes weiteres Beispiel: Klammern um die Argumente von `return`.

Auf "Ausnahmen behandeln" soll es wohl "ungewollt" ohne E heißen. Das Beispiel auf der Folgeseite ist IMHO ungeschickt. Man sollte von Anfang an predigen, Ressourcen wie Dateien immer in einem finally zu schließen. Das würde hier aber zwei try-Blöcke erfordern. Kann hier die Datei geöffnet werden, danach passiert dann aber `read` ein Fehler, wird die Datei nicht mehr geschlossen.

Stefan