Du findest ein einzelnes Zeichen klarer als ein "not"? Nuja, Gehirne arbeiten halt unterschiedlichjens hat geschrieben:Weil schneller zu schreiben und irgendwie auch klarer...Dav1d hat geschrieben:wieso verwendet man eig. immer dieses hässliche if x != i-was und nicht if not x == i-was
Regulärer Ausdruck: verschachtelte Klammer
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Und wo liegt jetzt der Unterschied? "not" sagt einem sofort das gleiche wie "!". Der Boolsche Folgewert soll verneint werden. Der Vergleich ist da ja eher unerheblich - oder willst Du genau folgendes ausblenden?:jens hat geschrieben:Bei der einen Variante muß man nur != sehen und weiß bescheit...
Beim andern muß man das not zusammen mit dem == sehen...
Code: Alles auswählen
if(!a) {
// wat auch immer
}
im Vergelich dazu gefällt mir das explizite "not" in Python sehr gut:
Code: Alles auswählen
if not a:
# usw.
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Ich muss mich jens anschliessen.
Wenn man schon einen Ungleich-Operator hat, braucht man den nicht durch das inverse des Gleichheit-Operators zu simulieren.
Dass du das auf `!` gegen `not` herunterbrichst ist falsch, denn das ist gar nicht der Punkt.
Das Problem bei `not x == y` ist, dass man auf 2 Stellen statt auf eine achten muss, gleichzeitig muss man sich auch noch die Frage nach der Operator-Praezedenz stellen.
Der Vergleich mit C-artigem muesste uebrigens wie folgt lauten:
gegen
P.S. die "explizite" Variante widerspricht meiner Meinung gegen folgendes aus dem Python-Zen
Wenn man schon einen Ungleich-Operator hat, braucht man den nicht durch das inverse des Gleichheit-Operators zu simulieren.
Dass du das auf `!` gegen `not` herunterbrichst ist falsch, denn das ist gar nicht der Punkt.
Das Problem bei `not x == y` ist, dass man auf 2 Stellen statt auf eine achten muss, gleichzeitig muss man sich auch noch die Frage nach der Operator-Praezedenz stellen.
Der Vergleich mit C-artigem muesste uebrigens wie folgt lauten:
Code: Alles auswählen
if ( !(a == b) )
Code: Alles auswählen
if not a == b:
import this hat geschrieben:Simple is better than complex.Flat is better than nested.
Sparse is better than dense.
Readability counts.
Zuletzt geändert von cofi am Sonntag 17. Januar 2010, 15:38, insgesamt 1-mal geändert.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Mir gefällt das if not x == y besser
wahrscheinlich, Irgendwie finde ich das != hässlich und not finde ich ist auch klarerHyperion hat geschrieben:.. oder willst Du genau folgendes ausblenden?:Wie oft habe ich so was schon übersehen...Code: Alles auswählen
if(!a) { // wat auch immer }
Zum GlückHyperion hat geschrieben:Du findest ein einzelnes Zeichen klarer als ein "not"? Nuja, Gehirne arbeiten halt unterschiedlich
the more they change the more they stay the same
"a != b" ist nicht dasselbe wie "not a == b":
Es ist eben ein Unterschied, ob Objekte "nicht gleich" sind, oder "ungleich". Es lassen sicherlich Probleme finden, bei denen man aus dem Fehlen der Gleichheit nicht sofort Ungleichheit folgern kann, sondern vielleicht nur erstmal die Unmöglichkeit, die Gleichheit zweier Objekte zu bestimmen.>>> class Spam(object):
def __eq__(self, other):
return True
def __ne__(self, other):
return True
...:
>>> Spam() == Spam()
True
>>> Spam() != Spam()
True
>>> not Spam() == Spam()
False
-
- User
- Beiträge: 30
- Registriert: Freitag 1. Januar 2010, 11:38
Wie man wegen zwei Zeichen streiten kann...
Danke für die Verbesserungsvorschläge, ich bin Basic-beeinflusst . Python-Style schrieben ist noch ungewohnt.
Danke für die Verbesserungsvorschläge, ich bin Basic-beeinflusst . Python-Style schrieben ist noch ungewohnt.