Zmienne

https://docs.python.org/3/library/index.html

STRUKTURA PROGRAMU W PYTHONIE

WPROWADZENIE

W Pythonie wartości (ang. values), a nie zmienne (ang. names, variables), posiadają typ - tak więc Python jest językiem z typami dynamicznymi. Wszystkie wartości przekazywane są przez referencję.

Każda zmienna posiada (1) nazwę i zawiera (2) referencję do określonego obiektu. Zmienna jest uniwersalna, sama nie ma określonego typu, może przechowywać referencję do obiektu każdego typu. Wszystkie zmienne muszą mieć jawnie przypisane wartości, zanim będzie można ich użyć.

Nazwy zmiennych podlegają pewnym regułom.
(1) Nazwa rozpoczyna się od litery lub znaku podkreślenia (_).
(2) Nazwa nie może rozpoczynać się od cyfry (0-9).
(3) Nazwy mogą zawierać jedynie znaki alfanumeryczne i znak podkreślenia (A-Z, a-z, 0-9, _).
(4) Nazwy są 'case-sensitive' (word, WORD, i Word to trzy różne nazwy).


>>> X
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'X' is not defined
>>> X = 11           # powołujemy do życia zmienną X, ma referencję do liczby
>>> X                # sprawdzamy wartość zmiennej
11
>>> X = "alpha"    # zmienna teraz ma referencję do napisu
>>> X                # sprawdzamy wartość zmiennej
'alpha'
>>> del X            # usuwamy zmienną
>>>

W Pythonie obiekty posiadają dwa standardowe pola:

Każdy obiekt ma jeszcze niezmienną tożsamość (identity), co można utożsamiać z adresem w pamięci. Funkcja wbudowana id() zwraca liczbę całkowitą reprezentującą adres w pamięci.

POWSTAWANIE ZMIENNYCH

Zmienne powstają podczas operacji wiązania nazw (ang. name binding operations).
name1 = expression   # assignements
name2 = name1     # the same value with two 'labels'

def function_name(parameter_name):   # function definitions
    pass

class ClassName:   # class definitions
    pass

import module_name   # import statements

for item_name in sequence:
    pass

with expression as context_name:   # with statements
    pass

try:
    statements
except exception_name as exception_instance_name:
    statements

del some_name   # unbinding names