Leerzeichen zwischen negativem Vorzeichen und Variablenname

8

Ich habe versucht, eine Google-Suche durchzuführen und diese Stack Exchange-Site zu durchsuchen, konnte jedoch keine Frage finden, die sich direkt darauf bezieht.

Der PEP 8 - Style Guide für Python-Code enthält viele gute Style-Empfehlungen. Ich glaube jedoch nicht, dass sie etwas darüber erwähnen, ob ein Leerzeichen zwischen einem Minus- oder Negativzeichen ( -) und einem Variablennamen mehr oder weniger lesbar wäre.

Frage

Es ist ein (sehr) kleines Problem, aber welches wird als besser lesbar angesehen?

  • false_positive = -true_positive
  • false_positive = - true_positive

Motivation

Ich bitte darum, nicht trivial zu sein, aber weil ich in meinen früheren Mathematikkursen oft das negative Vorzeichen in wichtigen Gleichungen, wie der Gleichung zur Berechnung der Entropie, nicht bemerke :

Entropieformel

Ich bemerke das -Zeichen oft nicht vor der Summierung, daher wäre es wünschenswert, es hervorzuheben.

Wesley Baugh
quelle
Ich habe noch nie jemanden gesehen, der Mathematik oder Code mit einem Leerzeichen zwischen Negation und Operand geschrieben hat.
Thomas Eding

Antworten:

12

Wie Sie sagten, konnte ich im Python-Styleguide nichts darüber finden, aber die Suche nach "unären Operatorabständen" brachte mehr Treffer aus verschiedenen Sprachen, wie zum Beispiel für Javascript :

Kein Leerzeichen sollte einen unären Operator und seinen Operanden trennen, es sei denn, der Operator ist ein Wort wie typeof.

Oder dies für C :

Verwenden Sie keine Leerzeichen um unäre Operatoren, außer sizeof und cast

Im Linux-Kernel :

Verwenden Sie ein Leerzeichen um (auf jeder Seite) der meisten binären und ternären Operatoren, [...] aber kein Leerzeichen nach unären Operatoren:

Beachten Sie, dass ein Schreibstil für Code , der normalerweise mit einer Schriftart fester Breite und hauptsächlich lateinischen Zeichen geschrieben wird, sich stark von dem für Gleichungen unterscheidet, in denen Sie sowohl lateinische als auch griechische Buchstaben, topologische Konstrukte wie Brüche oder die umgebenden Markierungen finden das Epsilon, das Sie dort haben, und andere Dinge, die sie viel komplexer machen als Code.

Avner Shahar-Kashtan
quelle
Vielen Dank für die Recherche und für die zusätzlichen Schlüsselwörter ("unärer Operator"), die bei zukünftigen Suchvorgängen hilfreich sind!
Wesley Baugh
1

Ich bin schon einmal darauf gestoßen und habe es benutzt

var false_positive = 0 - true_positive

um sicherzustellen, dass die Absicht klar ist. Das ist die besser lesbare Form.

jeffbeat
quelle
0

Ich denke, das zweite ist etwas weniger schlecht, weil das Minuszeichen etwas weniger wahrscheinlich als Teil des Wortes gelesen wird. Ich denke jedoch, dass beide Formen schlecht sind.

Ich würde das Ganze durch ersetzen

false_positive = -1 * true_positive

oder auch

false_positive = (-1) * true_positive

in jeder Sprache.

aviv
quelle
1
Dies ist eine gute Idee, aber Multiplikation ist teurer als Addition, daher gefällt mir @ jeffbeat 0 - true_positivebesser, weil es den Punkt auf eine Weise vermittelt, die für die Maschine effizienter zu verarbeiten ist.
GlenPeterson