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 proigramowania, 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.