Als ob es nicht schon genug Einführungen in Python gibt
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
Neue Einführung in Python
- 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
- Jonas
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Steht im Text!
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.
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.
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:bychan hat geschrieben:Als ob es nicht schon genug Einführungen in Python gibt
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
- 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.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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).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.
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.
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.Dennoch sind Assoziationen mit Schlangen möglich und sinnvoll: Man denke nur an das Python-Toolkit "Boa" oder die Programmiersprache Cobra.
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).
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.
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 ....
"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 ....
Natürlich sagt die Doku etwas zu verwendeten Datenformat:Leonidas hat geschrieben:allerdings scheint die Stdlib-Doku dazu nichts zu sagen
Ich denke, es sollte offensichtlich sein, dass man binäre Daten (sofern man dieses Protokoll nutzt) mit "rb" und "wb" bearbeiten sollte.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.
Auch nutzen die Beispiele durchweg "rb" bzw "wb".
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich habe BlackJack so verstanden dass auch das "ASCII"-Format dass da verwendet wird eben kein Text ist.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".
Sonst wäre es ja klar.
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.
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.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).
-
- 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.
- 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.
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.
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.