Neue Einführung in Python

Gute Links und Tutorials könnt ihr hier posten.
bychan
User
Beiträge: 4
Registriert: Freitag 30. Januar 2009, 16:24
Kontaktdaten:

Als ob es nicht schon genug Einführungen in Python gibt :wink:
Aber immer wieder macht sich jemand dran eine Neue zu schreiben.
Diesmal war ich es selbst. Ich habe ziemlich viel Arbeit reingesteckt und hoffe nun, das das Ergebnis vielen nützlich sein wird:
http://www.python-kurs.eu/
Was noch zu bemerken ist: Ich bin immer noch dabei, diese Seite auszubauen, d.h. es werden noch mehr Themen dazu kommen.
Ich freue mich auf euren Besuch und eure Kommentare.
Viel Spaß,
Bernd
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Python ist nach Monthy Python benannt nicht nach der Schlangenart. ;)

- Jonas
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
bychan
User
Beiträge: 4
Registriert: Freitag 30. Januar 2009, 16:24
Kontaktdaten:

Steht im Text!
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Deine Literaturempfehlungen sind nicht so toll =/ Da fehlt das offizielle Pythontut, Byte of Python und Dive into Python... Und noch andere. Außerdem stehen einige Bücher dabei, die nicht so das wahre sind.

Als Beispielcode find ich Fakultät zwar schön und elegant, aber es ist rekursiv. Rekursion und Python ist so'ne Sache =/ Man erreicht schnell das Limit, es ist nicht besonders flott... Vielleicht einen anderen Code nehmen.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

bychan hat geschrieben:Als ob es nicht schon genug Einführungen in Python gibt :wink:
Aber immer wieder macht sich jemand dran eine Neue zu schreiben.
Diesmal war ich es selbst. Ich habe ziemlich viel Arbeit reingesteckt und hoffe nun, das das Ergebnis vielen nützlich sein wird:
http://www.python-kurs.eu/
Was noch zu bemerken ist: Ich bin immer noch dabei, diese Seite auszubauen, d.h. es werden noch mehr Themen dazu kommen.
Ich freue mich auf euren Besuch und eure Kommentare.
Viel Spaß,
Bernd
Fleißig warst du auf jeden Fall. Farblich angenehm abgestimmt und vom Layout her hochwertig. Allerdings halte ich das für ein Tutorial nur für untergeordnet wichtig. Was mir wichtiger wäre:
- Quelltext deutlicher hervorgehoben, am besten auch Schlüsselwörter markiert
- Wenn schon zum jetzigen Zeitpunkt ein Tutorial, dann doch zu Python 3.0 oder zumindest mit Hinweisen zu Unterschieden.
- Druckfreundliche Fassung - manchmal ist es schön, etwas auf dem Papier zu haben und mal nicht vor dem Bildschirm hockend zu lernen

Insgesamt ist mir auch zu viel "außen" herum, was vom eigentlichen ablenkt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackVivi hat geschrieben:Deine Literaturempfehlungen sind nicht so toll =/ Da fehlt das offizielle Pythontut, Byte of Python und Dive into Python... Und noch andere. Außerdem stehen einige Bücher dabei, die nicht so das wahre sind.
Das Umfassende Handbuch kann man vergessen (da würde ich eher zum vergleichbaren Praxisbuch greifen, das ist zwar teurer und (dafür?) dicker und nicht ganz son falsch).

Einführung in Python kann ich eigentlich auch nicht mehr empfehlen. Die neuese Ausgabe ist viel zu viel "Blabla" und zu wenig guter Code. Das was man da lernt, kann man verlustfrei in 200 Seiten unterbringen.

Ansonsten: die Navigation ist bischen uneinsichtig, ich habe auf Literatur geklickt und wusste nichtmal wie es weitergeht.

Der Zen sollte nach jeder Aussage einen Zeilenumbruch haben. So ist das nur ein seltsamer Text.
Dennoch sind Assoziationen mit Schlangen möglich und sinnvoll: Man denke nur an das Python-Toolkit "Boa" oder die Programmiersprache Cobra.
Was hat Cobra mit Python zu tun? Es hat eine Python-ähnliche Syntax, aber das hat Boo auch. Und wie diese Assoziation sinnvoll ist? Man könnte auch sagen, die Assoziation zu Schlangen ist sinnvoll um Corba zu verstehen, weil es etwas wie Cobra klingt.

Der Abschnitt hat einen zu großen Fokus auf Guido. Ja, es stimmt dass er bei Google arbeitet, aber die Weiterentwicklung von CPython wird hauptsächlich von anderen Leuten getragen.

Blöcke: Nettes Bild.
Variablen: Python hat keine Variablen und das was Python hat sind auch keine Container oder Schubladen für Werte. Kaum eine moderne Sprache hat "Variablen".

Auslesen aus einer Datei: da würde man keinen Zähler, sondern ``enumerate()`` verwenden. Beim ``picklen`` unter umständen die Datei im Binär-Modus öffnen, BlackJack meint dass das binär ist (allerdings scheint die Stdlib-Doku dazu nichts zu sagen)

``.sl`` sind Python-Module? Das ist mir nicht bekannt, auf welcher Platform wäre das?

Ansonsten: Klammern um Bedingungen bei ``if`` sind nicht nötig und verbessern die Lesbarkeit nicht, Leerzeichen um Operatoren schon (wie eben PEP8 das so definiert).
bremer
User
Beiträge: 109
Registriert: Sonntag 25. Mai 2008, 00:13

Mal was zum Webdesign:
  • Die Seite ist zu unordentlich strukturiert. Überall tauchen wahllos Zitate auf, sprengen dabei noch die Höhe des Inhalts. Die willkürlich eingestreuten orangenen Boxen ergeben ebenfalls keinen Sinn.
  • Die Navigation sollte einem eher "ins Auge fallen". Der obige Banner ist hässlig.
  • Es handelt sich bei weitem nicht um valides XHTML 1.0 transitional.
    http://validator.w3.org/check?uri=http% ... ne&group=0
  • Syntaxhighlighting wäre wünschenswert.
Die Basis ist schonmal gut. Es muss nur noch ein bisschen reifen.
bychan
User
Beiträge: 4
Registriert: Freitag 30. Januar 2009, 16:24
Kontaktdaten:

Vielen Dank schon mal für die vielen Anregungen.
"A Byte of Python" und "Dive into Python" sind Bücher, die ich sehr schätze. Der Grund, weshalb ich sie nicht aufgenommen habe, bestand darin, dass ich mich auf deutsche Literatur beschränken wollte. Ich selbst lese gerne und bevorzugt englische Bücher, aber ich weiß, dass es viele Python-Interessierte gibt, die kein oder nur unzureichend Englisch können. Aber ich habe die beiden Bücher nun dennoch aufgenommen. Die Kritik an "Einführung in Python" werde ich auch noch einbauen.

Die Kritik am Zen ist richtig. Ich will ihn eigentlich noch an eine andere Stelle verschieben, so gefällt es mir auf jeden Fall auch nicht. Wie gesagt, die Seite ist noch ganz neu ....
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

ABOP gibt es ja auch auf deutsch, von dem her sehe ich kein Problem.
lunar

Leonidas hat geschrieben:allerdings scheint die Stdlib-Doku dazu nichts zu sagen
Natürlich sagt die Doku etwas zu verwendeten Datenformat:
By default, the pickle data format uses a printable ASCII representation.[...]
A binary format, which is slightly more efficient, can be chosen by specifying a protocol version >= 1.
Ich denke, es sollte offensichtlich sein, dass man binäre Daten (sofern man dieses Protokoll nutzt) mit "rb" und "wb" bearbeiten sollte.
Auch nutzen die Beispiele durchweg "rb" bzw "wb".
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

lunar hat geschrieben:Ich denke, es sollte offensichtlich sein, dass man binäre Daten (sofern man dieses Protokoll nutzt) mit "rb" und "wb" bearbeiten sollte.
Auch nutzen die Beispiele durchweg "rb" bzw "wb".
Ich habe BlackJack so verstanden dass auch das "ASCII"-Format dass da verwendet wird eben kein Text ist.

Sonst wäre es ja klar.
BlackJack

Das Problem beim "Textformat" sind die Zeilenenden. Wenn man das nicht im Binärformat macht, dann kann man Pickledateien zum Beispiel nicht zwischen Windows und *nix austauschen, weil's dann kracht.
Benutzeravatar
nomade
User
Beiträge: 7
Registriert: Samstag 12. Januar 2008, 22:36

BlackJack hat Recht.
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

nomade hat auch Recht.
BlackJack

derdon hat ebenfalls recht. :-)
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

nomade hat geschrieben:BlackJack hat Recht.
Das hatten wir doch schonmal per Definition geklärt :wink:
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

Bei mir sind alle Code-Schnipsel auf deiner Seite in Großbuchstaben und somit auch nicht ausführbar.
farid
User
Beiträge: 95
Registriert: Mittwoch 8. Oktober 2008, 15:37

Leonidas hat geschrieben:(da würde ich eher zum vergleichbaren Praxisbuch greifen, das ist zwar teurer und (dafür?) dicker und nicht ganz son falsch).
Vielleicht waere es sinnvoller gewesen es in zwei Teile aufzusplitten. Also Teile I und II als ein Band, und Teil III als ein weiterer Band. Na ja, im Falle einer eventuellen 2ten Auflage, waere es eine Ueberlegung wert. ;)
vicbrother
User
Beiträge: 32
Registriert: Donnerstag 26. Februar 2009, 22:41

Schade dass auch dieser Kurs den aus meiner Sicht schlechten Lernansatz wählt. Ich suche ein Tutorial/Buch, welches aus objektorientierter Sicht in die Sprache einführt, also Konzepte der Objektorientierung und das Herumspielen mit class und . Die Vorteile sind m.E.:

- Es wird nicht sofort gecodet sondern erstmal der wirklich wichtige "TopDown-Objekt" Blick eines Programmiers gelehrt.

- Objektorientierung ist das derzeit meistverwendete Programmierparadigma und bietet einen hohen Wiedererkennungswert, wenn der Schüler sich bestehende Programme zu Lernzwecken ansieht.

- Andere Programmierparadigmen (insb. imperative und funktionale) führen ohne Übrung häufig zu undurchsichtigeren Code und verleiten zu schnellen Hacks.

- Beim Lernen in programmierunerfahrenen Gruppen haben auch Anfänger leichteren Zugang zu Materie da es keine reine Syntax-Diskussion geben kann und die Fortgeschrittenen lernen ggf. sogar was neues.

Nach Einführung der Objektorientierung werden dann Methoden eingeführt, welches ebenfalls Vorteile hat. Ein print("Hello World") als erstes Programm führen bei gängigen Lehrwerken schon Methoden ein die damit ein Vorgriff auf weitere Lehrinhalte darstellen.

Danach sollte man meiner Meinung nach in Pseudecode Algorithmen formulieren, um auch hier ein Verständnis von Sprachen zu haben.

Danach führt man dann die Syntax ein und zäumt so das Pferd von hinten auf.
BlackJack

Dein dritter Punkt gilt genauso für OOP. Wer keine Übung hat kann damit genauso, wenn nicht sogar "besser", undurchsichtigen Quelltext und üble Hacks schreiben, wie mit imperativer oder funktionaler Programmierung. Wobei man in Python nicht ohne imperativer Programmierung auskommt, denn die hat man ja parallel zu OOP. Die beiden schliessen sich ja nicht gegenseitig aus. Jede ``for``- oder ``while``-Anweisung ist letztendlich imperative Programmierung.

OOP ist kein Allheilmittel und wenn man gleich mit Klassen anfängt, müssen die Beispiele auch hinreichend komplex sein, also eventuell zu viel für Anfänger. Denn trivialen Kram in Klassen zu stecken, nur um der Klassen wegen, ist kein OOP, sondern nur unnötig kompliziert -- Funktionen als Methoden verkleidet.

Insbesondere für ein "Hello, World!"-Programm ist eine Klasse der totale Overkill, und lehrt damit etwas IMHO grundfalsches. Dafür sind Klassen nicht gedacht, weil sie absolut keinen Vorteil bringen. So lernt man nicht so einfach wann der Einsatz von Klassen und OOP sinnvoll ist, und wann nicht.

Und letztendlich sind in Python auch Module mit Funktionen objektorientiert, ohne das man ``class`` schreiben muss, denn ein Modul mit Funktionen ist ein Singleton-Objekt, das man sich mit ``import`` erstellen bzw. das einzige existierende davon Exemplar in den Namensraum holen kann.
Antworten