Zanurkuj w Pythonie/Wcięcia kodu
Wcięcia kodu
[edytuj]Funkcje w Pythonie nie posiadają sprecyzowanych początków i końców oraz żadnych nawiasów służących do zaznaczania, gdzie funkcja się zaczyna, a gdzie kończy. Jedynym separatorem jest dwukropek (:) i wcięcia kodu.
buildConnectionString def buildConnectionString(params): u"""Tworzy łańcuch znaków na podstawie słownika parametrów. Zwraca łańcuch znaków. """ return ";".join(["%s=%s" % (k, v) for k, v in params.items()]) Bloki kodu definiujemy poprzez wcięcia. Przez "blok kodu" rozumiemy funkcje, instrukcje if, pętle for i while i tak dalej. Wstawiając wcięcie zaczynamy blok, a kończymy go zmniejszając wielkość wcięcia do poprzedniej wartości. Nie ma żadnych nawiasów, klamer czy słów kluczowych. Oznacza to, że białe znaki (spacje itp.) mają znaczenie i ich stosowanie musi być konsekwentne. W powyższym przykładzie kod funkcji (włączając w to notkę dokumentacyjną) został wcięty czterema spacjami. Nie musimy stosować konkretnie czterech spacji, jednak musimy być konsekwentni (tzn. jeśli pierwsze wcięcie w funkcji miało trzy spacje, to kolejne wcięcia także muszą mieć trzy spacje). Linia bez wcięcia znajdować się będzie poza funkcją.
if def silnia(n): #(1) print ('n =', n) #(2) if n > 1: #(3) return n * silnia(n - 1) else: #(4) print ('koniec') return 1 - Powyższa funkcja, nazwana
silniaprzyjmuje jeden argument:n. Cały kod wewnątrz funkcji jest wcięty. - Wypisywanie danych (na standardowe wyjście) jest bardzo proste, wystarczy użyć słowa kluczowego
print(). Wyrażenieprint()może przyjąć każdy typ danych, na przykład łańcuchy znaków, liczby całkowite i inne wbudowane typy danych jak słowniki i listy, o których dowiemy się w następnym rozdziale. Możemy nawet drukować na ekran różne wartości w jednej linii. W tym celu podajemy ciąg wartości, które chcemy wyświetlić, oddzielając je przecinkiem. Każda wartość jest wtedy wyświetlana w tej samej linii i oddzielona spacją (znak przecinka nie jest drukowany). Tak więc, kiedy funkcjęsilniawywołamy z argumentem5, na ekranie zobaczymy "n = 5". - Do bloku kodu zaliczamy także instrukcje
if. Jeżeli wyrażenie za instrukcjąifbędzie prawdziwe, to zostanie wykonany wcięty kod znajdujący się zaraz pod instrukcjąif. W przeciwnym wypadku wykonywany jest blokelse. - Oczywiście bloki
iforazelsemogą składać się z większej ilości linii, o ile linie te mają wcięcia z równą ilością spacji. Tutaj blokelsema dwie linie. Python nie wymaga żadnej specjalnej składni dla bloków składających się z wielu linii.
Po początkowych problemach i nietrafionych porównaniach do Fortrana, pogodzisz się z tym i zobaczysz pozytywne cechy wcięć. Jedną z głównych zalet jest to, że wszystkie programy w Pythonie wyglądają podobnie, ponieważ wcięcia kodu są wymagane przez sam język i nie zależą od stylu pisania. Dzięki temu jakikolwiek kod jest prostszy do czytania i zrozumienia.
| Python używa znaku powrotu karetki (ang. carriage return), czyli znaku końca linii, by oddzielić instrukcje. Natomiast dwukropek i wcięcia służą, aby oddzielić bloki kodu. C++ oraz Java czy PHP używają średników do oddzielania instrukcji, a klamry do separacji bloków kodu. |
Materiały dodatkowe
[edytuj]- Python Reference Manual omawia niektóre problemy związane z wcięciami kodu.