@Judge: Da ich das Buch nicht habe, habe ich mir nur mal kurz die Quelltexte angeschaut, und da Kapitel 6.
Folgende Punkte sind mir aufgefallen:
+ Schreibweise hält sich weitgehend an PEP8, was unter den ganzen Pythonbüchern eher die Minderheit tut.
+ das Buch scheint die Quelltexte von "einfach" zu "guter Programmierstil" zu entwickeln
trotzdem gibt es einige Unschönheiten:
- return wird wie eine Funktion geschrieben (mit Klammern um das Rückgabeargument)
- Stringformatierung scheint bis Kapitel 6 noch nicht eingeführt worden sein, mit daher häßlicher Stringzusammenstückelung)
- optical alignment von "=" bzw, ":"
- unnötiger Prefix "a_" bei Parametern
- Liste als Defaultargument!
- das Erben von "list" ist mit so vielen Fallstricken verbunden, dass es für Anfänger als Beispiel ungeeignet ist
- besonders unschön wird das Fehlen von Stringformatierung dann beim 'HTTP-Framework'.
- for-Schleife nur über key, statt über key,value obwohl value gebraucht wird
- muß man heutzutage noch jemandem CGI-Programmierung beibringen?
- Funktionsdefinitionen und Modul-Level-Code werden auch munter gemischt. "if-name-==-main" hätte man da auch schon längst mal einführen können.
Python Bücher
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Fazit: Wir brauchen dringend ein "Learn Python the http://www.python-forum.de way!" aka "Learn Python the right way!"
SCNR
SCNR
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Au ja. BlackJack faltet die Leute im Telegrammstil zusammen, pillmuncher erschlägt sie funktional und ich kümmere mich um die off-topic Texte.Hyperion hat geschrieben:Fazit: Wir brauchen dringend ein "Learn Python the http://www.python-forum.de way!" aka "Learn Python the right way!"
- pillmuncher
- User
- Beiträge: 1511
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
und/me hat geschrieben:BlackJack faltet die Leute im Telegrammstil zusammen, pillmuncher erschlägt sie funktional...
In specifications, Murphy's Law supersedes Ohm's.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Und dann hätte ich gerne noch jeweils einen Gastbeitrag von lunar, in dem er das Wort "mithin" rekordverdächtig nutzen darf und von sma, der irgend einen selbst gebauten Parser erklärt
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Au ja, von sma gab's doch hier mal diesen BASIC-Parser/Interpreter mit dem man Hammurabi spielen kann, der könnte ein Kapitel bekommen. Am Ende des Kapitels gibt's dann eine ”Weiche” welche die Leute trennt in die die gerne sauber und modern programmieren wollen und die die nur irgendwas unübersichtliches was ”funktioniert” mit viel ``global`` und am liebsten mit ``GOTO`` hinrotzen wollen, die werden dann auf den Teil des Buches verwiesen in dem sie 80er-Jahre Heimrechner-BASIC lernen und das dann mit dem BASIC-Parser/Interpreter ausführen können.
Zum Thema Lehrbücher schreiben: http://dilbert.com/strip/1999-04-18, Bild 2 und Bild 3Hyperion hat geschrieben:Learn Python the right way
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Aber wer würde sich denn opfern sowas zu schreiben?BlackJack hat geschrieben:die werden dann auf den Teil des Buches verwiesen in dem sie 80er-Jahre Heimrechner-BASIC lernen und das dann mit dem BASIC-Parser/Interpreter ausführen können.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Im Anschluss dann das Kapitel über Codegolf?BlackJack hat geschrieben:Am Ende des Kapitels gibt's dann eine ”Weiche” welche die Leute trennt in die die gerne sauber und modern programmieren wollen und die die nur irgendwas unübersichtliches was ”funktioniert” mit viel ``global`` und am liebsten mit ``GOTO`` hinrotzen wollen, die werden dann auf den Teil des Buches verwiesen in dem sie 80er-Jahre Heimrechner-BASIC lernen und das dann mit dem BASIC-Parser/Interpreter ausführen können.
Das Leben ist wie ein Tennisball.
@Leonidas: Da braucht man doch nicht so viel zu schreiben. Die Sprache ist leicht erklärt und darüber hinaus gibt es ja nicht so viel zu sagen. Alles global, man kann mit GOTO überall hinspringen. Schlusssatz für das Kapitel: Toi Toi Toi, und viel Glück beim nicht wahnsinnig werden.
@EyDu: Vielleicht sollte man das Buch damit beginnen. So kleine Code-Häppchen die schön viel machen.
@EyDu: Vielleicht sollte man das Buch damit beginnen. So kleine Code-Häppchen die schön viel machen.
@EyDu: Auch geeignet um Perl-Programmierer anzulocken, frei nach dem Motto „Kurz und unlesbar? Ja das können wir auch!”
Follow-up zu meiner Drohung "Euch auf dem laufendem zu halten" in Bezug auf meine Erfahrungen mit "Von Kopf bis Fuss / Heads first Python".
Mein letztes Posting ist vom 15. Januar 2015 und ich hatte vor das Android Kapitel zu überspringen und dahinter weiter zu machen.
Tatsächlich ist das nicht geschehen; das Buch hat mich da irgendwie verloren und ich finde keinen Anschluss mehr.
Stattdessen lese ich jetzt das hier ebenfalls empfohlene "Learn Python The Hard Way".
Die Videos braucht meiner Meinung nach niemand, da sie mehr oder weniger nur zeigen wie der Autor seinen eigenen Code abtippt und seine Fenster arrangiert. Das Versprechen des Autors, das zahlende Käufer jederzeit den Autor zu Fragen anmailen können ("Email Zed A. Shaw for help whenever you get stuck"), ist ebenfalls eher untergeordnet interessant: Auf insgesamt 3 Mails an den Autor wurde mir gerade mal eine einzige beantwortet und das auch noch erst nach mehreren Wochen, als ich schon garnicht mehr an die Frage gedacht hatte. Zudem hatte ich den Autor neben einer Verständnisfrage auf einen eindeutigen Tippfehler im Code hingewiesen der Fehler bei der Ausführung verursacht; daraufhin kam statt einem "Danke" nebst Fehlerkorrektur ein allgemeiner Copy&Paste - Text zur Antwort, in dem er mir Tipps gegeben hat wie man Code am effektivsten lesen kann ...
Wer sich also vom Kauf des ansonsten kostenlosen Buches einen Vorteil erhofft, kann ich nur ernüchtern. Wer allerdings (wie ich) das Buch kauft um die Arbeit des Autors für ein gelungenes Werk zu entlohnen und den Rest als Dankeschön-Beigabe sieht, dem kann ich das Buch nur wärmstens empfehlen.
Mein letztes Posting ist vom 15. Januar 2015 und ich hatte vor das Android Kapitel zu überspringen und dahinter weiter zu machen.
Tatsächlich ist das nicht geschehen; das Buch hat mich da irgendwie verloren und ich finde keinen Anschluss mehr.
Stattdessen lese ich jetzt das hier ebenfalls empfohlene "Learn Python The Hard Way".
Die Videos braucht meiner Meinung nach niemand, da sie mehr oder weniger nur zeigen wie der Autor seinen eigenen Code abtippt und seine Fenster arrangiert. Das Versprechen des Autors, das zahlende Käufer jederzeit den Autor zu Fragen anmailen können ("Email Zed A. Shaw for help whenever you get stuck"), ist ebenfalls eher untergeordnet interessant: Auf insgesamt 3 Mails an den Autor wurde mir gerade mal eine einzige beantwortet und das auch noch erst nach mehreren Wochen, als ich schon garnicht mehr an die Frage gedacht hatte. Zudem hatte ich den Autor neben einer Verständnisfrage auf einen eindeutigen Tippfehler im Code hingewiesen der Fehler bei der Ausführung verursacht; daraufhin kam statt einem "Danke" nebst Fehlerkorrektur ein allgemeiner Copy&Paste - Text zur Antwort, in dem er mir Tipps gegeben hat wie man Code am effektivsten lesen kann ...
Wer sich also vom Kauf des ansonsten kostenlosen Buches einen Vorteil erhofft, kann ich nur ernüchtern. Wer allerdings (wie ich) das Buch kauft um die Arbeit des Autors für ein gelungenes Werk zu entlohnen und den Rest als Dankeschön-Beigabe sieht, dem kann ich das Buch nur wärmstens empfehlen.
Kann schon wer was zu dem folgenden Buch sagen Effektiv Python programmieren - 59 Wege für bessere Python-Programme?
@pyseidon: das Buch ist mit Einschränkungen empfehlenswert, aber wie bei allen Büchern darf man nicht alles unreflektiert glauben. Dank Leseprobe kann man schön sehen, dass der Author oder Übersetzer PEP-8 nicht verstanden hat.
Buch: "Hier sind einige der Regeln, die Sie unbedingt einhalten sollten:"
PEP-8: "But most importantly: know when to be inconsistent -- sometimes the style guide just doesn't apply."
Buch: "Geschützte Instanzattribute sollten mit _führendem_unterstrich geschrieben
werden."
PEP-8: "_single_leading_underscore : weak "internal use" indicator."
In Python gibt es keine Zugriffsschutz!
Buch: "Private Instanzattribute sollten mit __doppelten_führenden_unterstrichen
geschrieben werden."
PEP-8: "__double_leading_underscore : when naming a class attribute, invokes name mangling"
In Python gibt es erst recht kein "privat"!
Und neben vielen guten Beispielen, ist es ohne konkretes Problem oft schwierig, sinnvolle Beispiele zu finden. Z.B. Kapitel 1.11: zip-Funktion: warum sollte man extra eine Liste mit Längen von Strings anlegen, um dann über die Strings und Längen gleichzeitig zu iterieren?
oder man nimmt gleich die max-Funktion:
Die Logik, warum jedes Unterkapitel fortlaufend mit Punkt eingeleitet wird, erschließt sich mir nicht. Es werden deutlich mehr Erklärungen gegeben, als bei den üblichen "ich schreibe die API-Referenz ab"-Büchern.
Buch: "Hier sind einige der Regeln, die Sie unbedingt einhalten sollten:"
PEP-8: "But most importantly: know when to be inconsistent -- sometimes the style guide just doesn't apply."
Buch: "Geschützte Instanzattribute sollten mit _führendem_unterstrich geschrieben
werden."
PEP-8: "_single_leading_underscore : weak "internal use" indicator."
In Python gibt es keine Zugriffsschutz!
Buch: "Private Instanzattribute sollten mit __doppelten_führenden_unterstrichen
geschrieben werden."
PEP-8: "__double_leading_underscore : when naming a class attribute, invokes name mangling"
In Python gibt es erst recht kein "privat"!
Und neben vielen guten Beispielen, ist es ohne konkretes Problem oft schwierig, sinnvolle Beispiele zu finden. Z.B. Kapitel 1.11: zip-Funktion: warum sollte man extra eine Liste mit Längen von Strings anlegen, um dann über die Strings und Längen gleichzeitig zu iterieren?
Code: Alles auswählen
for name in names:
if len(name) > max_letters:
longest_name = name
max_letters = len(name)
Code: Alles auswählen
longest_name = max(names, key=len)
@Sirius3 Danke für Deine Einschätzung.
Definitiv der Author. Habe mal in der englischen Leseprobe nachgeschaut:Dank Leseprobe kann man schön sehen, dass der Author oder Übersetzer PEP-8 nicht verstanden hat.
- "Here are a few rules you should be sure to follow."
- "Protected instance attributes should be in _leading_underscore format"
- "Private instance attributes should be in __double_leading_underscore format"
Vermutlich soll das der Bezug zu dem Untertitel "59 Wege..." sein. Warum der Weg jetzt ein Punkt ist. :K Könnte aber auch ein Übersetzungsfehler von "Item" sein. Das könnte man ja auch mit "Nummer" übersetzen.Die Logik, warum jedes Unterkapitel fortlaufend mit Punkt eingeleitet wird, erschließt sich mir nicht.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich habe mal die Leseprobe angeschaut und das schaut auf den ersten Blick ganz gut aus und empfehlenswert, sind viele Sachen die hier im Forum schon seit Jahren gepredigt werden. Insofern, Empfehlung von meiner Seite, allerdings ist das kein Buch welches sich an Einsteiger richtet.pyseidon hat geschrieben:Kann schon wer was zu dem folgenden Buch sagen Effektiv Python programmieren - 59 Wege für bessere Python-Programme?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ich habe die Einführung von Weigend und war damit ganz zufrieden, wenn es auch in der Einführung Längen gibt. Persönlich hatte ich den Verdacht, dass das Buch gepackt eine Einführung in die Standardbibliothek ist und da ist mir die aktuelle Online-Hilfe lieber. Du könntest ja mal schreiben, ob mein Verdacht falsch ist.
Weigend ist m. E. Informatik-Didaktiker, was man der Einführung etwas anmerkt. Fürs Selbststudium war es geeignet, aber ich hatte Vorkenntnisse in einer anderen Programmiersprache. Es gab auch abschreckende Beispiele und Herangehensweisen (Klasse Geld und Konto), um Objektorientierung zu erklären...
Weigend ist m. E. Informatik-Didaktiker, was man der Einführung etwas anmerkt. Fürs Selbststudium war es geeignet, aber ich hatte Vorkenntnisse in einer anderen Programmiersprache. Es gab auch abschreckende Beispiele und Herangehensweisen (Klasse Geld und Konto), um Objektorientierung zu erklären...