Python Bücher

Gute Links und Tutorials könnt ihr hier posten.
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

@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.
Benutzeravatar
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!" :twisted:

SCNR :mrgreen:
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
/me
User
Beiträge: 3552
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Hyperion hat geschrieben:Fazit: Wir brauchen dringend ein "Learn Python the http://www.python-forum.de way!" aka "Learn Python the right way!" :twisted:
Au ja. BlackJack faltet die Leute im Telegrammstil zusammen, pillmuncher erschlägt sie funktional und ich kümmere mich um die off-topic Texte. :D
Benutzeravatar
pillmuncher
User
Beiträge: 1482
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

/me hat geschrieben:BlackJack faltet die Leute im Telegrammstil zusammen, pillmuncher erschlägt sie funktional...
:lol: und :oops:
In specifications, Murphy's Law supersedes Ohm's.
BlackJack

@/me: Klingt nach einem Plan. :-D
Benutzeravatar
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 :mrgreen:
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

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. :twisted:
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

Hyperion hat geschrieben:Learn Python the right way
Zum Thema Lehrbücher schreiben: http://dilbert.com/strip/1999-04-18, Bild 2 und Bild 3
a fool with a tool is still a fool, www.magben.de, YouTube
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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. :twisted:
Aber wer würde sich denn opfern sowas zu schreiben?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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. :twisted:
Im Anschluss dann das Kapitel über Codegolf?
Das Leben ist wie ein Tennisball.
BlackJack

@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. :mrgreen:
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Ja, eigentlich eine gute Idee. Das könnte so verkauft werden, dass Programme in Python viel kürzer sind als in anderen Programmiersprachen. Quasi eine kleine Motivation.
Das Leben ist wie ein Tennisball.
BlackJack

@EyDu: Auch geeignet um Perl-Programmierer anzulocken, frei nach dem Motto „Kurz und unlesbar? Ja das können wir auch!” :twisted:
Benutzeravatar
Judge
User
Beiträge: 129
Registriert: Mittwoch 13. Juni 2012, 22:27
Wohnort: Ratingen
Kontaktdaten:

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.
pyseidon
User
Beiträge: 19
Registriert: Donnerstag 24. September 2009, 20:25

Kann schon wer was zu dem folgenden Buch sagen Effektiv Python programmieren - 59 Wege für bessere Python-Programme?
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

@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?

Code: Alles auswählen

for name in names:
    if len(name) > max_letters:
       longest_name = name
       max_letters = len(name)
oder man nimmt gleich die max-Funktion:

Code: Alles auswählen

longest_name = max(names, key=len)
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.
pyseidon
User
Beiträge: 19
Registriert: Donnerstag 24. September 2009, 20:25

@Sirius3 Danke für Deine Einschätzung.
Dank Leseprobe kann man schön sehen, dass der Author oder Übersetzer PEP-8 nicht verstanden hat.
Definitiv der Author. Habe mal in der englischen Leseprobe nachgeschaut:
  1. "Here are a few rules you should be sure to follow."
  2. "Protected instance attributes should be in _leading_underscore format"
  3. "Private instance attributes should be in __double_leading_underscore format"
Die Logik, warum jedes Unterkapitel fortlaufend mit Punkt eingeleitet wird, erschließt sich mir nicht.
Vermutlich soll das der Bezug zu dem Untertitel "59 Wege..." sein. :D 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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

pyseidon hat geschrieben:Kann schon wer was zu dem folgenden Buch sagen Effektiv Python programmieren - 59 Wege für bessere Python-Programme?
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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
EncepT
User
Beiträge: 3
Registriert: Sonntag 4. Dezember 2016, 12:52

Hallo,
Hat schonmal jemand von dem Buch "Python Ge-packt" gehört?
Ich habe es mir vor ein paar tagen über ebay bestellt,da ich mich sehr für Python interresiere.
(Es ist die 3. Ausgabe)
Benutzeravatar
pixewakb
User
Beiträge: 1405
Registriert: Sonntag 24. April 2011, 19:43

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...
Antworten