Ihre Aufgabe ist es, eine Datei zu schreiben, die eine Zeile mit vielen pep8-Verstößen enthält .
Die Regeln:
- Wir verwenden pep8 Version 1.5.7 und die Standardeinstellungen.
- Das Aufrufen von pep8 mit anderen Befehlszeilenoptionen oder die Verwendung einer benutzerdefinierten RC-Datei ist nicht zulässig.
- Maximale Zeilenlänge 120 Zeichen. Sie können zwar gegen E501 verstoßen, aber die Zeile, auf der Ihre Punktzahl berechnet wird, muss <= 120 Zeichen lang sein.
- Ihr Modul kann vorher oder nachher andere Zeilen haben, aber nur eine Zeile trägt zu Ihrer Punktzahl bei.
- Ihre Datei kann SyntaxErrors oder andere Arten von Datenmüll enthalten, sie muss nicht importiert oder ausgeführt werden.
Beispiel für die Wertung:
Das folgende Modul thing.py
hat eine Punktzahl von 2, da es eine Zeile (Zeile 1) mit 2 pep8-Verstößen enthält.
spam='potato'
So überprüfen Sie eine Punktzahl:
~$ mktmpenv
(tmp-ae3045bd2f629a8c)~/.virtualenvs/tmp-ae3045bd2f629a8c$ pip install pep8==1.5.7
(tmp-ae3045bd2f629a8c)~/.virtualenvs/tmp-ae3045bd2f629a8c$ echo -n "spam='potato'" > thing.py
(tmp-ae3045bd2f629a8c)~/.virtualenvs/tmp-ae3045bd2f629a8c$ pep8 thing.py
thing.py:1:5: E225 missing whitespace around operator
thing.py:1:14: W292 no newline at end of file
Antworten:
241
Wenn Sie die meisten Fehler haben möchten, setzen Sie einfach Semikolon ein
Die meisten Fehler sind:
mit diesen Fehlern am Ende:
quelle
123
Ja, mehr Verstöße als Charaktere!
Der Trick ist, dass
=
nach einem(
pep den Eindruck erweckt, Sie würden ein Schlüsselwort in einem Funktionsaufruf ausführen (zfoo(bar=12)
. B. ). In diesem Zusammenhang[TAB]=
löst das Tun beides ausUnd das
=[TAB]
löst beides ausZum Glück können Sie diese einfach verketten.
Dies ergibt eine Anzahl von 1 Verstößen pro Zeichen. Ich muss
(
es einrichten, aber nicht die)
gibt uns:Das sind 120. Keine neue Zeile = 121. Es ist gelungen, den Fehler "Zeile zu lang" auszulösen, also 122. Wenn Sie ein Zeichen mit einem Leerzeichen beginnen (danke eric_lagergren ), erhalten Sie 2 Verstöße anstelle von 1:
Sieg!
quelle
z
und Sie erhalten 103 ... aber wenn ich diesen Code kopiere, erhalte ich 83 statt 102. Ich denke, der Abstand wird durcheinander.