Otwieram kolejny temat z nauki Pythona 🎉! Najwyższy czas opowiedzieć o zmiennych 😉! Zmienna w języku Python nie będzie wymagała długich wywodów. Poznasz jej definicję, zastosowanie, jak wygląda jej definicja i jaka jest zasada nadawania odpowiedniego typu danych 🔥! Wejdź, poczytaj i miej pewność, że nie popełnisz żadnej gafy 😝.
TŁUMACZĘ CZYM JEST ZMIENNA W JĘZYKU PYTHON!
Jak zawsze, zaczniemy od teorii, a potem przejdziemy do fragmentów kodów źródłowych, abyśmy wiedzieli co, a potem jak 😄.
CZYM JEST ZMIENNA?
W programowaniu, zmienna jest miejscem w pamięci przechowującym wartość odpowiedniego typu danych ℹ️. Posiada własną nazwę (musi przestrzegać pewnych zasad, które opiszę później ⚠️) oraz wartość, która następnie definiuje jej typ danych 📖. Służy do przechowywania wartości celem przeprowadzania z nią operacji odczytu i modyfikacji w dowolnym momencie trwania programu 👍.
A teraz, 2 podobnie brzmiące pojęcia związane ze zmiennymi: deklaracja i definicja.
CZYM SIĘ RÓŻNI DEKLARACJA OD DEFINICJI ZMIENNEJ?
Definicja zmiennej oznacza przypisanie jej wartości w tym samym wierszu, w którym ją tworzymy 🧠. Innymi słowy, jest to natychmiastowa inicjalizacja zmiennej poprzez nadanie jej wartości w momencie tworzenia zmiennej w kodzie 💡. Deklaracja zmiennej polega tylko na nadaniu typu danych i nazwy zmiennej, bez przypisywania wartości w chwili jej tworzenia w kodzie ⛔.
Piszę o tym, bo w wielu innych źródłach informacji o Pythonie, często trafisz na określenie "deklaracja". W Pythonie nie da się deklarować zmiennych z powodu zasad jej budowy 🚫. Składnia nakazuje przypisanie dowolnej wartości w chwili tworzenia zmiennej, a próba uruchomienia programu mającego zmienną bez przypisanej wartości, skutkować będzie natychmiastową awarią (zgłoszenie wyjątku typu "NameError" ❌), bo Python sprzeciwi się wykonywaniu instrukcji na niezainicjowanej zmiennej 😐. Dlatego warto rozróżniać sobie te dwa pojęcia i wiedzieć jak prawidłowo nazwać daną operację 👍.
Tak wygląda teoretyczne wyłożenie tematu 🙂. Możemy przejść do ukazania wyglądu zmiennej w Pythonie ❤️!
JAK UTWORZYĆ ZMIENNĄ W JĘZYKU PYTHON?
Tworzenie zmiennej w Pythonie jest bardzo proste. Wystarczy nadać jej nazwę, wstawić operator przypisania i podać wartość któregokolwiek typu danych 🎯. Tak wygląda przykład 👇:
x = 10Tyle 😁. Mamy nazwę ("x"), operator przypisania (znak równości) i wartość jako liczbę całkowitą (bez ułamka) 🙂. To wszystko czego potrzeba ✅!
Od tej pory, uznaje się zmienną "x" za istniejącą w programie, a to oznacza, że od tego wiersza możemy wykonywać operacje z jej udziałem 😊. To oznacza 👇:
- odczyt (przypisywanie zmiennej do innych miejsc w programie i wyrażeń, o ile to zgodne z typem danych),
- modyfikację (zmiana wartości poprzez wyrażenia odpowiedniego rodzaju, o ile to zgodne z typem danych bądź przypisanie wartości na nowo).
Zmienna "x" posiada przypisaną liczbę całkowitą (bez ułamka), a to oznacza, że możemy ją "wpleść" jako składnik wyrażenia arytmetycznego, a w przypadku modyfikacji, przeprowadzać dowolne wyrażenia arytmetyczne, takie jak dodanie liczby 10 do niej czy też podzielenie jej przez 2. To są przykłady 👇:
print('Kwadrat z liczby x = ' + str(x ** 2)) # odczyt
x += 2 # modyfikacjaDlatego podkreśliłem w punktach, że sposoby odczytu i modyfikacji zależą od "zgodności" z typem danych ⚠️. Gdyby to był łańcuch znaków, to nie moglibyśmy wykonać na nim dzielenia (jako przykład niedozwolonej operacji) 😅!
Dobrze, tylko cały czas piszę o typie danych, a możesz się zastanawiać gdzie on jest, skoro tylko podaliśmy samą wartość 🤔?
W tym miejscu czas wyjaśnić jak Python zarządza typem danych zmiennej, gdyż to wygląda inaczej niż w innych językach programowania 🐍!
JAK OKREŚLAMY TYP DANYCH ZMIENNEJ W JĘZYKU PYTHON?
W Pythonie, zmienna sama otrzymuje typ danych na podstawie podanej wartości 😲! W wielu innych językach panuje zwyczaj, że trzeba samemu określić typ danych jaki zmienna ma reprezentować np. liczbę całkowitą (bez ułamka) bądź łańcuch znaków ("str") 📜. Python robi to automatycznie, "za kurtyną" 🔮.
Formalnie określa się tę cechę "dynamiczną typizacją" (ang. dynamic typing) 😱. Oznacza to, że jedna zmienna może swobodnie zmieniać swój typ danych zależnie od przypisanej wartości, nawet w trakcie pisania kodu 😮! Ma to swoje zalety, jak i wady 🙂.
Gdy na przykład w jednej instrukcji przypiszemy sobie liczbę całkowitą (bez ułamka) 👇:
x = 10to w dalszej części nic nie stoi na przeszkodzie, aby zdefiniować sobie zmienną o tej samej nazwie ponownie, przypisując jej wartość jeszcze innego typu 😱! Na przykład łańcuch znaków 👇:
x = 'Mój łańcuch znaków'W Pythonie to jest dozwolone z uwagi na dynamiczną typizację 💡. W wielu innych językach zakończyłoby się tylko błędem ❌. Osobiście nie radzę tak robić i lepiej stworzyć sobie dwie osobne zmienne, aby móc je potem odróżniać w kodzie 🔍.
W tym miejscu warto podkreślić, abyś nie patrzył na składnię Pythona jako na tę "domyślną" tj. panującą w dominującej liczbie innych języków programowania 🚫. Gdy porównasz sobie zapis definiowania zmiennych np. z językiem Java, to zobaczysz, że tam już trzeba podać typ danych, a podana wartość musi być zgodna z tym typem ⚠️!
Python ma w wielu konstrukcjach własną, oryginalną składnię i potem podczas uczenia się nowego języka, możesz mieć problemy z przyswajaniem nowej postaci, jaka ma związek z tym samym tematem 🔥.
Przechodzimy do dalszej części, czyli zasady w nadawaniu zmiennym nazw 📜!
JAKIE SĄ ZASADY NADAWANIA NAZW ZMIENNYM W JĘZYKU PYTHON?
Zmienne w Pythonie muszą posiadać nazwy spełniające poniższe wymagania 👇:
- nie zaczyna się od cyfry,
- nie zawiera odstępów pomiędzy słowami w postaci spacji bądź tabulatora; wtedy korzystamy ze znaku podkreślenia (_), czyli znaku "podłogi".
Teraz co powinno się znaleźć w nazwie (nie jest konieczne, lecz wysoce zalecane) 👇:
- kontekst/znaczenie (innymi słowy, nazwa powinna jednoznacznie określać powód jej istnienia np. "gained_points" czy "number_of_retrieved_signals", abyś od razu wiedział(a) po co ona jest),
- konwencja nazewnicza Pythona (pisanie wyłącznie małymi literami i oddzielanie słów znakiem podkreślenia).
Warto jeszcze wspomnieć, co jest dozwolone w nazwie, a może nie przychodzić na myśl 👇:
- może posiadać znaki diakrytyczne (między innymi polskie znaki),
- może składać się z więcej niż 255 znaków (przy czym najlepiej dawać krótsze nazwy 🙃).
Tyle co trzeba wiedzieć o zmiennych w Pythonie 😄!
![]() |
Zmienna w języku Python to zarezerwowane miejsce w pamięci do przechowywania wartości danego typu. Dzięki dynamicznej typizacji, nie musisz sam(a) określać jej typu danych, gdyż zostanie automatycznie nadany na podstawie typu wartości.
Dla zainteresowanych, ostatni mały wątek odnośnie stałych (ang. constants) 😉.
W JAKI SPOSÓB TWORZYMY STAŁE W JĘZYKU PYTHON?
Mogłeś(-aś) spotkać się z tematem tworzenia stałych w programie, czyli miejsc w pamięci tylko do odczytu ("read-only") ℹ️. Python nie posiada możliwości formalnego tworzenia stałych ❌, lecz można zasymulować taką stałą, tworząc zmienną z inną konwencją nazewniczą, przeznaczoną dla stałych 👍. Wtedy taka zmienna posiada nazwę w poniższej formie 👇:
MY_CONSTANT = 20Taki sposób zapisu nazywa się "SCREAMING_SNAKE_CASE" i polega on na korzystaniu wyłącznie z dużych liter i znaków podkreślenia do tworzenia odstępów pomiędzy wyrazami 🐍.
To wciąż nie będzie zapobiegało późniejszym modyfikacjom 🔓, natomiast da innym osobom do zrozumienia, aby traktować tę zmienną jak "niemodyfikowalną" 🙂.
Moim zdaniem, żaden język nie powinien być pozbawiony tworzenia stałych, bo odgrywają duża rolę w każdym programie ✅. Jest wiele przypadków, w których dane wartości nie powinny być edytowane podczas działania programu np. rozszerzenie plików zapisywanych przez program 🔥.
Koniec 😊. Krótki temat, a stanowi jeden z najbardziej elementarnych składników każdego programu 🌟.
