Podstawy.
Zmienna jest jedną z najpopularniejszych koncepcji w świecie programowania. W Pythonie należy ją traktować jak nazwę przypisaną do obiektu. Nie definiujemy jej typu, ani też nie deklarujemy jej przed pierwszym użyciem. Po prostu przypisujemy wartość (obiekt) do nazwy:
x = 44
Od tej pory zmienna x wskazuje na obiekt liczby całkowitej, przechowujący wartość 44.
Jak już wspominałem wcześniej – w Pythonie to przypisywany do nazwy obiekt posiada typ (w tym przypadku typ int).
Oczywiście zmiennej możemy użyć w wyrażeniu – w takim przypadku w miejscu użycia zmiennej zostanie użyty przypisany do niej obiekt. Wygląda to bardzo intuicyjnie (nadal działamy w sesji interaktywnej):
>>> x = 50 >>> y = 20 >>> x + y 70 >>> x 50 >>> y 20 >>> z = x + y >>> z 70
Dynamiczne typowanie.
W związku z tym, że zmienna nie ma zadeklarowanego typu, możemy do niej przypisać obiekty różnego typu (typowanie dynamiczne). Wygląda to tak:
>>> zmienna = "To jest tekst." >>> zmienna 'To jest tekst.' >>> type(zmienna) <class 'str'> >>> zmienna = 7 >>> zmienna 7 >>> type(zmienna) <class 'int'>
Jak widzimy powyżej, funkcja type zwraca nam typ zmiennej (czyli tak naprawdę obiektu, na który zmienna wskazuje) w danym momencie w kodzie. Raz utworzonej zmiennej możemy przypisywać obiekty różnego typu w dowolnym momencie w kodzie (aczkolwiek sensowność i czytelność takiego rozwiązania jest moim zdaniem dyskusyjna).
Jak to działa ?
Zmienna w Pythonie działa mimo wszystko nieco inaczej, niż w większości innych języków programowania (szczególnie tych statycznie typowanych). Po przypisaniu jakiegoś obiektu do zmiennej, jej nazwa wskazuje na ten przypisany obiekt – wygląd i zachowanie takiej zmiennej przypomina referencje (lub wskaźniki) z języka C++.
Popatrzmy na poniższy przykład:
>>> x = 4 >>> y = x >>> y 4 >>> x 4
W momencie przypisania x do y nie jest tworzona żadna kopia obiektu i jego wartości. Zamiast tego zmienna y zaczyna wskazywać na dokładnie ten sam obiekt, na który wskazuje x – obiekt przechowujący wartość całkowitoliczbową 4. Mamy tutaj sytuację, w której dwie zmienne wskazują na jeden obiekt w pamięci.
Przekonajmy się, że tak właśnie jest:
>>> id(x) 10968896 >>> id(y) 10968896 >>> id(x) == id(y) True
W Pythonie każdy obiekt posiada swój unikalny identyfikator – funkcja id pozwala nam poznać tę wartość.
Nazewnictwo.
Jeśli chodzi o nazwy zmiennych, restrykcje są tutaj bardzo podobne do innych języków programowania. W Pythonie nie ma ograniczeń związanych z maksymalną długością nazwy zmiennej.
Dopuszczalne są małe i wielkie litery, cyfry oraz znaki podkreślenia. Nazwa zmiennej nie może się zaczynać od cyfry. Python rozróżnia małe i wielkie litery w nazwach zmiennych (Zmienna oraz zmienna to dwie dopuszczalne, różne nazwy).
Dodatkowym ograniczeniem jest zbiór zarezerwowanych słów kluczowych – podobnie do innych języków programowania, nie można ich użyć jako nazw zmiennych – interpreter Pythona zgłosi w takim wypadku błąd. Listę tych słów kluczowych można znaleźć w dokumentacji Pythona.
To tyle, jeśli chodzi o wprowadzneie do zmiennych w Pythonie. W kolejnych wpisach będą się pojawiać uwagi i wskazówki związane z tym tematem.
Kontynuuj naukę: Mini Kurs Pythona #5: Instrukcje warunkowe.