Da muss ich immer hieran denken: Linksnafu hat geschrieben: Nee, hab ich nicht.![]()

Das Ding ist gut. Richtig gut.Hyperion hat geschrieben:Es sind sicherlich noch einige Fehler darin enthalten, daher würde ich mich über "Debug"-Hilfe freuen
Code: Alles auswählen
if choice in range(len(menu)):
Code: Alles auswählen
if 0 <= choice < len(menu):
Meiner Meinung nach kommt die Warnung einen Absatz zu spät. Ich finde, gerade wegen der Häufigkeit des Antreffens, sollte man das direkt als erstes unter den Code-Kasten schreiben. Oder als Kommentar über die Schleife?Hyperion hat geschrieben:Danke für die Kritik
@frabron: Wie würdest Du denn begründen, dass man diesen Anti-Pattern nicht verwenden sollte? Ich dachte die nachfolgende Darstellung würde ausreichen. Aber vielleicht muss da tatsächlich mehr "Kausalität" rein.
Code: Alles auswählen
# Bitte so nicht machen, denn das ist ein typischer Anfängerfehler. Wieso steht weiter unten
So kann man auch als Laie das Anti-Pattern erkennen, da es nun konkret benannt ist durch Nennung von `range()` und `len()`.Leider ist obiger Code schlecht! Er ist eines der berühmten Anti-Pattern, die man häufig bei Anfängern oder Umsteigern von anderen Sprachen sieht. Durch den Aufruf zweier, in diesem Zusammenhang, unnötiger Funktionen (range() und len()) wirkt der Code unleserlicher, ausserdem ist er unnötig kompliziert.
Dafür gibt es das „pycon“-Syntax-Highlighting, das aber nur für „normale“ Python-Sitzungen funktioniert.Hyperion hat geschrieben:Genauso stört es mich, dass das Syntaxhighlighting für die Konsolensessions nicht gut funzt.
***Das ist die stärkste Hervorhebung.***Hyperion hat geschrieben:Und gibt es solche Hervorhebungen?
Also nicht für IPython? Ich werds mal testen, vielleicht ist das ja doch akzeptabelnomnom hat geschrieben:Dafür gibt es das „pycon“-Syntax-Highlighting, das aber nur für „normale“ Python-Sitzungen funktioniert.
Code: Alles auswählen
print("{} {}".format(index+1, menu[index]))
Code: Alles auswählen
print(index+1, menu[index])
Code: Alles auswählen
print("%2d .. %s" % (index + 1, menu[index]))
Code: Alles auswählen
x >= 0 /\ x < 10
Code: Alles auswählen
x ≥ 0 ∧ x < 10
Code: Alles auswählen
In [206]: '{0:2d}'.format(1)
Out[206]: ' 1'
Der under_score_ hat in Python keine besondere Bedeutung, sondern ist ein ein ganz normaler Bezeichner.sh4nks hat geschrieben:Was macht das underline?
Konnte bei Google nichts finden, da ich nicht weiß was die genaue Bezeichnung ist
Das ist ein ganz normaler gültiger Name für einen Bezeichner. Der Code hätte stattsh4nks hat geschrieben:Was macht das underline
Code: Alles auswählen
_, command = menu
Code: Alles auswählen
name, command = menu
Code: Alles auswählen
>>> from __future__ import print_function
>>> _ = print
>>> _('Hallo')
Hallo
Code: Alles auswählen
command = menu[choice][1]
Ich finde den "_" im Gegenteil "intention revealing" und auch wenn Python das im Gegensatz zu anderen Sprachen nicht als Teil der Semantik kennt, ist es IMHO guter Stil. Ein anderes Beispiel wäre "i" für eine Schleifenvariable oder das man eine Pluralform wählt, wenn man eine Collection von Dingen bezeichnen will./me hat geschrieben:Ich mag diesen Einsatz [gemeint ist der Unterstrich] ]nicht so. Er konterkariert PEP-20 (Zen of Python) und PEP-8 bei den Punkten "Readability counts." unter besonderer Berücksichtigung von "code is read much more often than it is written"
Hier scheine ich den Kontext nicht deutlich genug gemacht zu haben. Ich mag den Unterstrich "als Verkürzung für oft verwendete Funktionen" nicht, sonst durchaus.sma hat geschrieben:Ich finde den "_" im Gegenteil "intention revealing" und auch wenn Python das im Gegensatz zu anderen Sprachen nicht als Teil der Semantik kennt, ist es IMHO guter Stil. Ein anderes Beispiel wäre "i" für eine Schleifenvariable oder das man eine Pluralform wählt, wenn man eine Collection von Dingen bezeichnen will.
Gerade habe ich noch 66,70€ für das Upgrade Subscription Renewal ausgegeben. Und das mir als FSFE-Fellow ...sma hat geschrieben:Die Python-IDE PyCharm ...
Ach so. Ja, das teile ich./me hat geschrieben:Hier scheine ich den Kontext nicht deutlich genug gemacht zu haben. Ich mag den Unterstrich "als Verkürzung für oft verwendete Funktionen" nicht, sonst durchaus.
sma hat geschrieben:Die Python-IDE PyCharm ...
Wird nicht immer gepredigt: Free != Kostenlos/me hat geschrieben:Gerade habe ich noch 66,70€ für das Upgrade Subscription Renewal ausgegeben. Und das mir als FSFE-Fellow ...