Twoim zadaniem jest napisanie pliku zawierającego linię z wieloma naruszeniami pep8 .
Zasady:
- Używamy pep8 w wersji 1.5.7 i ustawień domyślnych.
- Wywoływanie pep8 z innymi opcjami wiersza poleceń lub używanie niestandardowego pliku rc jest niedozwolone.
- Maksymalna długość linii 120 znaków. Oczywiście możesz naruszyć E501, ale linia, na której obliczany jest twój wynik, musi mieć <= 120 znaków.
- Twój moduł może mieć inne linie przed lub po, ale tylko jedna linia ma wpływ na twój wynik.
- Twój plik może zawierać błędy składniowe lub dowolne śmieci, nie trzeba go importować ani uruchamiać.
Przykład punktacji:
Poniższy moduł thing.py
ma wynik 2, ponieważ zawiera linię (linię 1) z 2 naruszeniami pep8.
spam='potato'
Aby sprawdzić wynik:
~$ 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
Odpowiedzi:
241
jeśli chcesz jak najwięcej błędów, po prostu zwariuj z średnikiem
większość błędów to:
z tymi błędami na końcu:
źródło
123
Tak, więcej naruszeń niż postaci!
Sztuczka polega na tym, że
=
po(
myśli Pep myślisz, że robisz słowo kluczowe w wywołaniu funkcji (npfoo(bar=12)
.). W tym kontekście wykonanie[TAB]=
wyzwala obaI
=[TAB]
wyzwalanie obuNa szczęście możesz je po prostu połączyć.
Daje to liczbę naruszeń wynoszącą jeden na postać. Muszę
(
to skonfigurować, ale brak podania)
daje nam:To 120. Brak nowej linii = 121. Udało się wyzwolić błąd „zbyt długiej linii”, więc to 122. Wreszcie, użycie jednego znaku do rozpoczęcia spacją (dzięki eric_lagergren ) daje 2 naruszenia zamiast 1:
Zwycięstwo!
źródło
z
a skończysz na 103 ... ale za każdym razem, gdy kopiuję ten kod, dostaję 83 zamiast 102. Myślę, że odstępy są pomieszane.