Co to jest błąd wcięcia? Jak rozwiązać błąd wcięcia w Pythonie?
Opublikowany: 2021-12-22Jako interpretowany język programowania wysokiego poziomu i ogólnego przeznaczenia, Python jest coraz częściej uznawany za najbardziej obiecującą, wiodącą i wschodzącą platformę na świecie. Python jest niczym bez genialnej filozofii projektowania.
Kluczową cechą jest nacisk położony na godne uwagi użycie znaczących wcięć w celu zwiększenia czytelności kodu. Poniższa ilustracja zwięźle przedstawia filary filozofii projektowania Pythona w postaci dwudziestu aforyzmów, na które nawiązuje Tim Peters, wieloletni Pythonowiec, który ostatecznie stał się jednym z najbardziej płodnych i wytrwałych programistów rdzenia Pythona.
Spis treści
Krótkie wprowadzenie do Pythona
Zanim zagłębimy się w szczegóły techniczne leżące u podstaw błędu wcięć w Pythonie, konieczne jest zapoznanie się z podstawami Pythona i potrzebą wcięcia. Takie postępowanie nie tylko pomoże ci lepiej docenić sam błąd, ale także zapewni wgląd w korzyści, które programiści zyskują, skutecznie decydując się na jego rozwiązanie.
Powstanie Pythona jako wieloparadygmatycznego języka programowania sięga roku 1991. Od tego czasu programiści nieustannie dostosowywali szkieletowy szkielet Pythona, aby dopasować go do szeregu specyficznych potrzeb użytkownika, takich jak nauka o danych oraz rozwój sieci i urządzeń mobilnych.
Teraz wszyscy wiemy, że próba zrozumienia nieczytelnego pisma ręcznego jest niezwykle trudna i często irytująca. Podobnie nieczytelny i nieustrukturyzowany kod jest prosty i nie do zaakceptowania w świecie programowania. W tym miejscu na ratunek programiście przychodzi pojęcie PEP lub Python Enhancement Proposal. PEP to the Python Community jest podobny do wspólnego Dokumentu Google dla ogółu społeczeństwa.
Jest to stale aktualizowany opisowy mandat, dzięki któremu społeczność programistów Pythona jest kompleksowo informowana o funkcjach i aktualizacjach poprawiających czytelność kodu. Napisany przez Guido van Rossuma, Barry'ego Warsaw i Nicka Coghlana w 2001 roku PEP 8 jest określany jako kod stylu Pythona.
Ucz się kursów rozwoju oprogramowania z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.
Co to jest wcięcie?
Wiadomo przede wszystkim, że Python jest językiem proceduralnym, a zatem wcięcie w Pythonie służy do segregowania pojedynczego kodu na identyfikowalne grupy funkcjonalnie podobnych instrukcji. Większość języków programowania, w tym C, C++ i JAVA, używa nawiasów klamrowych '{}' do zdefiniowania bloku kodu. Python oznacza odstępstwo od tego projektu i preferuje stosowanie wcięć.
Składnia wcięcia
Zgodnie z konwencjami nakreślonymi przez etykę białych znaków PEP 8, każda nowa iteracja (tj. blok kodu) powinna zaczynać się od wcięcia, a koniec kodu powinien znajdować się w pierwszej linii, która nie jest wcięta. Powszechną praktyką wykonywania wcięć są cztery białe spacje lub pojedynczy znak tabulacji, przy czym spacje są w dużej mierze preferowane w stosunku do tabulatorów. Zabronione jest mieszanie spacji i tabulatorów.
Przyczyny błędu wcięcia w Pythonie
„Błąd wcięcia: oczekiwano wcięcia bloku” nie rozróżnia użytkowników. Niezależnie od tego, czy jesteś nowicjuszem w programowaniu w Pythonie, czy doświadczonym programistą, z pewnością stanie się to w pewnym momencie. W Pythonie, ponieważ cały kod, który wpisujesz, jest uporządkowany za pomocą poprawnych białych znaków, jeśli w jakimkolwiek wystąpieniu w kodzie, masz niepoprawne wcięcie, cały kod nie zostanie uruchomiony, a interpreter zwróci funkcję błędu. Aby dokładnie wiedzieć, na co zwracać uwagę, poniżej wymieniono niektóre z najczęstszych przyczyn błędu wcięcia w Pythonie:
- Jednoczesne użycie tabulatorów i spacji podczas kodowania. Można argumentować, że teoretycznie zarówno tabulatory, jak i spacje służą temu samemu celowi, ale rozważmy to z perspektywy interpretatora. Jeśli spacje i tabulatory są używane niekonsekwentnie i zamiennie, tworzy to niejednoznaczność. Spowoduje to, że interpreter pomyli się, jakiej zmiany użyć, i ostatecznie zwróci błąd wcięcia w Pythonie.
- Nieumyślnie umieściłeś wcięcie w niewłaściwym miejscu lub między wierszami kodu nie ma tabulatorów lub spacji. Ponieważ Python przestrzega ścisłych wytycznych dotyczących porządkowania pisanych kodów, wcięcie w niewłaściwym miejscu nieuchronnie zwróci błąd. Na przykład pierwszy wiersz Pythona nie powinien być wcięty.
- Czasami, podczas kończenia zaległego, wyjątkowo długiego programu, możesz nieświadomie przegapić wcięcia funkcji instrukcji złożonych, takich jak for, while i if. To ponownie doprowadzi do błędu wcięcia. Jest to najbardziej podstawowa potrzeba tworzenia wcięć podczas używania Pythona i musi być rygorystycznie ćwiczona, aby ją opanować.
- Jeśli zapomniałeś użyć wcięcia podczas pracy z funkcjami zdefiniowanymi przez użytkownika lub różnymi klasami, prawdopodobnie pojawi się błąd.
Jak rozwiązać błąd wcięcia w Pythonie?
- Sprawdź, czy nie ma niewłaściwych białych spacji lub tabulatorów. Niestety nie ma szybkiego rozwiązania błędu wcięcia. Ponieważ kod należy do Ciebie, faktem jest, że będziesz musiał indywidualnie ocenić każdą linię, aby zidentyfikować błędne instancje. Ponieważ jednak wiersze kodu są ułożone w bloki, proces jest stosunkowo prosty. Na przykład, jeśli użyłeś instrukcji „if” w określonym wierszu, możesz sprawdzić krzyżowo, czy pamiętałeś o wcięciu kolejnego wiersza.
- Upewnij się, że wcięcie dla określonego bloku pozostaje takie samo w całym kodzie, nawet jeśli w środku zostanie wprowadzony nowy blok. Sprawdź, czy nie ma niespójności we wcięciach.
Jeśli powyższe rozwiązania ręczne nie zadziałały i masz trudności z ustaleniem, gdzie przegapiłeś wcięcie, wykonaj następujące kroki:
- Przejdź do ustawień edytora kodu i włącz opcję, która ma wyświetlać tabulatory i spacje. Po włączeniu tej funkcji zobaczysz pojedyncze małe kropki, gdzie każda kropka reprezentuje tabulator/białą spację. Jeśli zauważysz, że brakuje kropki w miejscu, w którym nie powinno być, oznacza to, że w tej linii prawdopodobnie występuje błąd wcięcia.
- Użyj wbudowanego interpretera języka Python w Indent Guide. Prawdopodobnie ta metoda jest wysoce nieefektywna w przypadku kilku wierszy kodu. Ponieważ jednak prowadzi przez każdą linię i pokazuje dokładnie, gdzie leży błąd, jest to najpewniejszy sposób na znalezienie i naprawienie wszystkich błędów.
Korzyści z wcięcia
Czytelność i spójność są niezbędne dla każdego dobrego kodu. Zgodnie z białą przestrzenią PEP 8, etyka nie powinna zatem podlegać negocjacjom. Logicznie uzasadnia twój kod, przyczyniając się w ten sposób do przyjemniejszego kodowania. Dodatkowo, jeśli zastosujesz się do tej stylistycznej wytycznej, w której de facto zależy Ci na czytelności, osoby, które nie są Tobie nieznane, ale są zainteresowane Twoją pracą, z łatwością zrozumieją Twój kod.
Wady wcięcia
- Jeśli kod jest duży, a wcięcie jest uszkodzone, naprawa błędów wcięcia może być żmudna. Zwykle dzieje się tak, gdy kod jest kopiowany ze źródła online, dokumentu Word lub pliku PDF.
- Popularne języki programowania zwykle używają nawiasów klamrowych do wcięć. Dla programistów, którzy dopiero zaczynają używać Pythona, dostosowanie się do idei używania białych znaków do wcięć może być trudne.
Podsumowując
Wszystko, co znajduje się między tobą a dobrze napisanym kodem, to wcięcie, a wszystko, co leży między tobą, twój dobrze napisany kod i jego bezproblemowe wykonanie, to błąd wcięcia. Teraz wszyscy ludzie popełniają błędy. Wszyscy programiści to ludzie. Dlatego wszyscy programiści popełniają błędy. Ale błąd wcięcia można łatwo rozwiązać. Wszystko, co musisz zrobić, to oddychać i zająć swoją przestrzeń.
Jeśli jesteś zainteresowany nauką o danych, sprawdź program IIIT-B i upGrad Executive PG w dziedzinie Data Science, który jest stworzony dla pracujących profesjonalistów i oferuje ponad 10 studiów przypadków i projektów, praktyczne warsztaty praktyczne, mentoring z ekspertami z branży, 1 -on-1 z mentorami branżowymi, ponad 400 godzin nauki i pomocy w pracy z najlepszymi firmami.