Hallo Pythoner,
ich hätte mal eine Frage. Mir ist klar, dass man in Programmen, von den man erwartet/vermutet, sie könnten auch von Personen gelesen werden wollen, die kein Deutsch sprechen kommplett auf Englisch hält. Wie aber sieht es mit Übungen aus, die auf Deutsch unter Python 3.x geschrieben sind? Sollte man dort Umlaute in den Variablen-/Objektnamen verwenden?
Umlaute
Es spricht sicherlich nichts dagegen aus Spieltrieb von den Möglichkeiten von Python Gebrauch zu machen. Das Problem mit Sonderzeichen ist, dass sie nicht auf jeder Tastatur verfügbar sind. In einem seriösen Programm würde ich daher nur ASCII Zeichen für Namen verwenden.
Hier mal ein Beispiel:
Hier mal ein Beispiel:
Code: Alles auswählen
def 斐波纳契(最高值):
鱼,虎 = 0,1
while 虎 < 最高值:
print(鱼)
鱼,虎 = 虎,鱼+虎
*Technisch* ist das kein Grund, und insofern: klar, kann man machen. Ich find's halt persoenlich furchtbar, aber YMMV.
Was mich an nicht-englischen Bezeichnern einfach immer stoert ist, dass sie zwangsweise mit den Objekt- und Verb-namen der Standardbibliothek & anderer Bibliotheken kollidieren.
Es heisst nunmal "open" und nicht oeffnen, "hasattr" und nicht "hatattr". Usw.
Was mich an nicht-englischen Bezeichnern einfach immer stoert ist, dass sie zwangsweise mit den Objekt- und Verb-namen der Standardbibliothek & anderer Bibliotheken kollidieren.
Es heisst nunmal "open" und nicht oeffnen, "hasattr" und nicht "hatattr". Usw.
Ich halte es mit deets. Ich finde, dass sich Programme besser lesen lassen, wenn Bezeichner einsprachlich sind. Und diese eine Sprache wird eben durch Schlüsselwörter und Drittbibliotheken, die allesamt in Englisch sind, ziemlich vorgegeben. Es käme ja auch niemand auf die Idee, in einem normalen Brief, Zeitungsartikel, etc. Deutsch und Englisch wild zu mischen ...
Den einzigen Nutzen sehe ich in der Verwendung von mathematischen Sonderzeichen, e.g. δ statt "delta". Nur kann man solche Zeichen halt auf keiner Tastatur tippen, so dass sich das Programmieren mit solchen Namen etwas zäh gestaltet.
Aber das kann letztlich jeder halten wie er will, wozu also diese Umfrage?
Den einzigen Nutzen sehe ich in der Verwendung von mathematischen Sonderzeichen, e.g. δ statt "delta". Nur kann man solche Zeichen halt auf keiner Tastatur tippen, so dass sich das Programmieren mit solchen Namen etwas zäh gestaltet.
Aber das kann letztlich jeder halten wie er will, wozu also diese Umfrage?
@lunar: Man kann griechische Buchstaben nicht auf griechischen Tastaturen tippen?
Wobei das auch auf Tastaturen mit aufgedruckten lateinischen Buchstaben auch eine Frage des eingesetzten Systems ist. Ein δ bekomme ich bei mir zum Beispiel durch die Tastenfolge `Compose`, `*`, `d`. (Als `Compose` ist bei mir die rechte Tux-Taste eingestellt.)
Wobei das auch auf Tastaturen mit aufgedruckten lateinischen Buchstaben auch eine Frage des eingesetzten Systems ist. Ein δ bekomme ich bei mir zum Beispiel durch die Tastenfolge `Compose`, `*`, `d`. (Als `Compose` ist bei mir die rechte Tux-Taste eingestellt.)
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Dann lass ich mal das hier liegen.crs hat geschrieben:Der Editor kann sonst auch ein geschriebenes "delta" einfach als δ anzeigen.
Das geht allerdings am Problem vorbei.
Ich halte nichts von Umlauten/Sonderzeichen im Code, da Code die bloede Eigenschaft hat, verbreitet zu werden, wenn er nuetzlich ist. Und damit u.U. ueber Laender- und Betriebssystemgrenzen hinweg und schon fallen "native" Eingaben (Keyboard) oder erweiterte Eingaben (Compose ist erstmal auf X beschraenkt -- erweiterte Eingabesysteme sind i.d.R. auch sonst nicht so geläufig) weg.
Uebrig bleibt ein Aergernis fuer den Zukuenftigen Nutzer und damit auch fuer den, der den Code wartet, weil die Leute sich beschweren.
Es ist zwar technisch kein grosses Hindernis aber sehr wohl was Komfort und Benutzbarkeit angeht. Wenn ich beispielsweise Compose nutze falle ich erstmal aus dem Schreibrhythmus heraus.
Fuer noch viel wichtiger halte ich aber das schon angesprochene Problem vom zwangsläufigen Mischen von Sprachen. Es reicht, wenn ich gleichzeitig Python und Englisch sprechen muss.
Aber vielleicht ist ja Teuton eine Alternative hier?
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Ich finde ja Unicode nur bei Namen ist nicht genug:
Das hätte doch auch etwas.
Code: Alles auswählen
∀ x ∈ data:
if x ≡ None:
x ← 0
if x - δ ≤ 1:
eggs ← map(λ a: x - a, eggs)