Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Stefan Schwarzer Newsgroups: de.comp.lang.python Subject: Re: [Python-de] =?utf-8?q?Python_Einf=C3=BChrung_-_Bitte_um_Feedback?= Date: Fri, 10 Mar 2017 09:41:06 +0100 Lines: 96 Message-ID: References: <2831be87-cc5f-2cf2-6999-863f2a021bf4@thomas-guettler.de> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-Trace: news.uni-berlin.de Z6FcU/giwEljpSEgjOFUWwhbUAh0ARc7DMQ/5hbyV0qQ== Return-Path: X-Original-To: python-de@python.org Delivered-To: python-de@mail.python.org User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.24) Gecko/20100411 Thunderbird/2.0.0.24 Mnenhy/0.7.6.666 In-Reply-To: <2831be87-cc5f-2cf2-6999-863f2a021bf4@thomas-guettler.de> X-Provags-ID: V03:K0:gWGa02NGLFg6Y9pfecXRqiXpuBDb/2BffklFDdr5eCAwzUKmhxa j9s4Lz96K/NBxp7TQUBymsgEkaaLML940RX7eRByKbTXXvUjEPVOhdVUpl98uPee2cVSdEz uuKzxMLn+dWk+XKCZbavpKKWuBKhCtaP6cbBaBvrfvsn+83I/VGFTFAx1fmFD90R57b2Kpm AUWKKukRsKRZ1DQR+t5ZQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:OM17Tpli/FI=:sdHjEhEVCmTqMIXoqXjTr9 0IV+05hRMD96dUGNpykG/Upj93Oi45O2TZaJAEiV9k+DRN59m+ne3uT4zImpw7TC6DoIS6XtP MwuQ6AqbPAYRyKtmxH+li2UCIHXH0+rD6l2s7x9AJvSnUtKpRpru6aXQe7wmzigeE+tHqomlA AttMAw4xXK/eHLXi3cb0zdHNHpTDG9c3l8T2gDMEc2/sNzJg/3TXvKRUL0ne8hLYwqqGp2+Gk FOdgEFcXl9i5oHo4b2I5Gr1HQFQB6LGLQMqooxS9A1Yd/SJCP6gvw1CP7h3qJnDyf5VsLrez2 puKXOvoQuibA6bHqFjyHvMuMHpwabWjuOvw66OFZQUsshyJb3dh9RPE95xp2t/RTUjjM/nWLr GflsZGNCjm3NpdQ3/tF2tyn/Dtc/8IoupQigVXgAvl3oOPkCqRUMDR1XQJtNEzvqKgTH3i3BB aNLh7/hXl34Q1vVbXY9MvpYIUWQZG/6vpNOv2uqMzGofJTnMKJIlzT1IivyEGxmUXa2vowvR8 qtpAGLls88MzzvNja9gkFoSR1WZUZiLmtsqbpZ/GNof7m2mGqQQlWu7gA6J3chIjVHQrvEndg 77xwuZBdaZFW1cWT5EQdI0AaPuc7iUjYwzrPGUsyZha6y0WlV0HLOVeASPxU6O2fR2LyvwwpB +21REFmMnnJogiIu2LSJgj9ceB0XfkazkISzEig17faZ0u2v59dkiONY+tYvnVbz2qHLKtIp0 UiT4J3w6FV1Ebn14 X-BeenThere: python-de@python.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Die Deutsche Python Mailingliste List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: X-Mailman-Original-References: <2831be87-cc5f-2cf2-6999-863f2a021bf4@thomas-guettler.de> Xref: csiph.com de.comp.lang.python:4691 Hi Thomas, sorry für das etwas späte Feedback. On 2017-03-08 21:52, Thomas Güttler wrote: > ich habe meine Python Einführung überarbeitet: > > http://thomas-guettler.de/vortraege/python/einfuehrung.html > > Ich würde mich über Hinweise und Verbesserungsvorschläge freuen. Erst mal finde ich es erfreulich, dass du nun endlich Python 3 in den Vordergrund stellst. :-) Einige Links in der Inhaltsübersicht enthalten (mit unterstrichene) Leerzeichen vor dem eigentlichen Text. Statt "während dem Studium" sollte es "während des Studiums" heißen, denke ich. In "Die Entwicklungsgeschwindigkeit ist heutzutage wichtiger als die Ausführungsgeschwindigkeit" würde ich ein "meistens" ergänzen: "meistens wichtiger als ...". Die Verwendung von Leerzeichen um Operatoren und das Gleichheitszeichen in Zuweisungen wäre meines Erachtens leserlicher (und konform mit PEP 8). Allgemein finde ich, dass du ein paar mehr Leerzeichen spendieren könntest, zum Beispiel zwischen "#" und dem Kommentar-Text. Zu deinem Beispiel "Ist das eine Zeichenkette?": `basestring` gibt es in Python 3 nicht mehr. Du möchtest vermutlich `str` verwenden. Was meinst du mit "wunderschön" gegenüber "hässlich" in Bezug auf Zeichenketten/Bytes? Ob man das eine oder andere verwendet, hängt vom Anwendungsfall ab. Die Angabe eines Encodings am Anfang der Datei ist bei Python 3 nicht mehr notwendig, solange das Encoding UTF-8 ist. `dict.items()` liefert in Python 3 keine Liste mehr, sondern ein Iterator-ähnliches Objekt, das sich in einer `for`-Schleife verwenden lässt. Ich weiß nicht so recht, ob die Angabe von "Null-Pointer" für `None` eine gute Idee ist. Ich würde das weglassen. In "Flusssteuerung" (besser "Fluss-Steuerung"?) kannst du `%d` statt `%s` verwenden, da du durch die Anwendung von `int` schon weißt, dass `i` ein Integer ist. Unter "Funktionen" weißt du auf "Call by assignment" hin. Die Semantik von "Call by assignment" deckt mit ab, was du danach zu "Call by value" und "Call by reference" sagst. Ich finde die Verwendung der beiden letztgenannten Begriffe im Zusammenhang mit Python eher unglücklich. Die Zuweisung hat in Python (unabhängig von Funktionsaufrufen) eine Semantik, die man ohnehin verstehen muss. Zum Tipp, am Ende eines Programms, `sys.stdin.readline` einzufügen: Würde es `input()` (`raw_input` in Python 2) nicht genauso tun? Ich würde den Rückgabewert von `io.open` nicht mit `fd` bezeichnen, sondern mit `fobj`. `fd` ist eher angemessen für "C-artige"-Dateihandles, wie sie an einigen Stellen im `os`-Modul verwendet werden. In "Externe Bibliotheken": "vorraussetzen" -> "voraussetzen" Ich finde, man sollte sich mit dem Debugger `pdb` auskennen. Ich würde "PyCharm" nicht als "Editor" bezeichnen. Das Beispiel für `property` finde ich nicht glücklich. Gerade für sowas würde/sollte man gerade nicht eine Property verwenden. Bei vermeintlichen Attribut-Zugriffen (was die API nahelegt), erwartet man nicht, dass bei wiederholten Aufrufen andere Werte zurückgeliefert werden. Typische Anwendungen für `property` wären eher "gecachete" Werte. Unter "Spaßbremse": Ob man Daten in einer Datenbank speichert/speichern sollte, hängt von der konkreten Anwendung ab. Manchmal sind einfache Textdateien oder `ini`-Dateien angemessener. Der Einsatz von Jenkins ist für kleinere Projekte, erst recht für einen einzelnen Entwickler, vermutlich übertrieben. Soweit erst mal mein Feedback! :-) Viele Grüße Stefan