Lecimy dalej z Pythonem. Najwyższy czas opowiedzieć o zmiennych. Zmienne w Pythonie również wymagają osobnego wpisu ze względu na niezbędne wyjaśnienia w ich definiowaniu. Poznajcie zasady definiowania zmiennych jakie trzeba sobie przyswoić, aby nie popełniać w życiu żadnych gaf.
Tweet |
ZMIENNE W PYTHONIE TEŻ MAJĄ SWOJE ZASADY
I znów teoria na dzień dobry. Zmienna jest miejscem w pamięci przechowującym wartość odpowiedniego typu danych. Według terminologii języka C, nazywana jest "L-wartością", gdyż po zaalokowaniu dla niej pamięci, możemy się za każdym razem do niej odwołać po jej etykiecie, czyli nazwie ;).
DEKLARACJA KONTRA DEFINICJA
Wyjaśnijmy sobie coś na początek, bo występują mieszaniny jednego pojęcia z drugim. Deklaracja zmiennych oznacza jedynie zapisanie jej typu danych oraz nazwy. To, co większość ma na myśli, to definicja, czyli utworzenie zmiennej i przypisanie jej początkowej wartości od razu, w jednej linijce kodu. W Pythonie, deklaracja zmiennej w taki sposób:
gained_points
gained_points = 2
jest niemożliwa, bo zakończy się to zgłoszeniem wyjątku! Jedyna dopuszczalna forma to ta:
gained_points = 2
zatem wtedy jest to DEFINICJA.
NAZEWNICTWO
Zmienne w Pythonie muszą przestrzegać pewnych reguł co do ich nazewnictwa. Z pewnością nie może się ona zaczynać od cyfry, a także nie może mieć żadnych spacji! Od razu napotkacie błąd składni.
Próba nadania nazwy zmiennej zaczynając od cyfry kończy się błędem składniowym.
Litery duże i małe, jak najbardziej. Czy znaki diakrytyczne też wchodzą w grę? W tym języku tak. Możecie nadać zmiennym nazwy z polskimi znakami takimi jak 'ą', 'ć', 'ę' i każdą dowolną inną. Nie wiem jak jest z maksymalną liczbą znaków, ale sprawdziłem nazwę mającą ponad 255 znaków i Python nie miał żadnych zastrzeżeń :D. Zmienne mogą mieć bardzo długie nazwy i nie powinno być z tego tytułu żadnych konsekwencji. Mimo wszystko radzę stosować krótsze nazwy, bo nikomu nie będzie się chciało przewijać kodu kilometrami w osi X :).
Oprócz sztywnych zasad, wypada przestrzegać też takich, które wynikają z przyzwyczajeń i konwencji nazewniczych. Pierwsza rzecz to to, żeby zmienne w Pythonie miały sensowne nazwy wyjaśniające cel ich istnienia. Jeśli to jest jakiś mały program, to "x" będzie jeszcze w porządku, natomiast przy większych rozbudowach, szczególnie zalecam nazwy "opisujące" np. "gained_points" albo "retrieved_signals". Wtedy każdy człowiek będzie od razu wiedział po co to jest. Drugą sprawą mniej istotną jest trzymanie się stylistyki pisania. W Pythonie dominuje pisanie samymi małymi literami w połączeniu ze znakami podkreślenia stanowiącymi imitację spacji.
NIE MA STAŁYCH
Python nie dysponuje żadnym typem przeznaczonym dla wartości tylko do odczytu ("constant"). Jedynym sposobem na "udawanie" stałej jest dostosowanie konwencji nazewniczej polegającej na pisaniu słów z samych wielkich liter oddzielonych znakami podkreślenia:
MY_CONSTANT = 20
Wtedy będzie to informacja dla programisty, żeby nie "ruszać" tej wartości w operacjach innych, niż przypisanie na samym początku. Moim zdaniem, jest to zbyt dotkliwe wybrakowanie, bo stałe też mają sens z samego istnienia. Jest wiele przykładów wartości, które nie powinny być za żadne skarby edytowane podczas działania programu.
A GDZIE WPISUJE SIĘ TYP?
W Pythonie nie trzeba przypisywać żadnego typu danych! Język sam go zidentyfikuje po podanej przez nas wartości. Dla przykładu 35, przypisze typ liczby całkowitej, a podanie "True" będzie sygnałem, aby traktować zmienną jak wartość logiczną. W momencie utworzenia obiektu w oparciu o klasę, przypisywany jest adres umieszczonej na stercie referencji.
ZASTOSOWANIA ZMIENNYCH
Zmienne w Pythonie stanowią elementarny budulec każdego skonstruowanego programu. Ich podstawowym zastosowaniem jest możliwość przechowania, przypisywania i modyfikowania ich wartości w dowolnym momencie trwania programu.
OPEROWANIE NA ZMIENNYCH
Dozwolone operacje są zależne od typu danych. Można przemnożyć łańcuch znaków oraz liczbę całkowitą i zmiennoprzecinkową, ale trudno jest sobie wyobrazić mnożenie wartości logicznej w akcji :D. To samo się tyczy dodawania, odejmowania i dzielenia. Na samym obiekcie również wszelkie operacje są wzbronione (bo w gruncie rzeczy to jest tylko adres stanowiący "podpięcie" do obiektu), natomiast ich zmienne można już modyfikować (jednak to też zależy jakiego są typu).
Przykłady dozwolonych operacji arytmetycznych na zmiennej typu "liczba całkowita".
Zastosowane powyżej operatory są skróconymi formami zapisów modyfikujących wartość. Na przykład zapis:
x += 25
działa tak samo, jak napisanie:
x = x + 25
Identycznie zachowuje się każdy następny zapis. Miejcie jednak na uwadze, że Python nie dysponuje operatorami znanymi pod hasłami "inkrementacja" i "dekrementacja" :(. Co najwyżej możecie zapisać tak samo, jak powyżej.
ZMIENNA W OBIEKCIE STAJE SIĘ ATRYBUTEM
Python wspiera programowanie obiektowe, dzięki czemu jesteśmy w stanie definiować klasy mogące określać stan (zmienne) i zachowanie (funkcje) oraz w wyniku tworzenia instancji (kopii) na jej podstawie, nadawać jej określone działanie. Tak jak było z funkcjami, że "awansują" na metody jeśli są one osadzane do obiektu, tak i zmienne stają się atrybutami gdy znajdą się w obiekcie.
Na tym kończymy. Zmienne w Pythonie to krótkie zagadnienie, bo więcej o samych zmiennych napisać się nie da.