Co to jest zmienna?
W programowaniu zmienna to nazwane miejsce w pamięci, które przechowuje wartość, jaką twój program może odczytywać i zmieniać w trakcie działania. Nazwa, taka jak score czy user_name, pozwala kodowi odwoływać się do wartości bez wiedzy, gdzie jest przechowywana.
Aktualizacja: 24 września 2026
Gra, która liczy punkty, musi zapamiętać liczbę, dodawać do niej i pokazać ją na końcu. Tej liczby nie da się wpisać na stałe w kod, bo przy każdej rozgrywce jest inna. Program odkłada więc miejsce w pamięci, nadaje mu nazwę, na przykład score, i używa tej nazwy za każdym razem, gdy potrzebuje bieżącej wartości.
Jak działa zmienna
W trakcie programu ze zmienną dzieją się trzy rzeczy:
- Utworzenie. Program rezerwuje pamięć na wartość i przypina do niej nazwę. W Pythonie dzieje się to przy pierwszym przypisaniu do nazwy. W Javie i C najpierw deklarujesz zmienną z typem, na przykład
int score;. - Przypisanie. Wartość zapisuje się pod nazwą za pomocą
=. Kolejne przypisanie zastępuje starą wartość. - Użycie. Wszędzie tam, gdzie nazwa pojawia się w wyrażeniu, program odczytuje wartość, jaką przechowuje ona w tej chwili.
Start: 0
After one point: 10
Doubled: 20
W każdej linii z przypisaniem najpierw obliczana jest prawa strona, z użyciem wartości, jaką score ma w tej chwili. Potem wynik jest zapisywany z powrotem pod tą samą nazwą. Nazwa się nie zmienia, a przechowywana wartość się zmienia.
Znak równości znaczy „zapisz”
W matematyce x = x + 1 nie ma rozwiązania. W programie to zwykła instrukcja: weź bieżącą wartość x, dodaj 1 i zapisz wynik w x. Znak = to operator przypisania i zawsze przenosi wartość z prawej strony do nazwy po lewej.
Aby zapytać, czy dwie wartości są równe, języki programowania używają innego operatora, ==. Wyrażenie x == 5 niczego nie zmienia; daje True albo False, czyli wartość logiczną.
Znaczenie matematyczne jest pokrewne, ale nie takie samo. W algebrze x w 2x + 3 = 7 oznacza jedną niewiadomą, którą wyznaczasz. W programie zmienna przechowuje znaną wartość, która może się zmieniać w trakcie działania programu.
Zmienne i typy danych
Każda wartość ma typ: liczba całkowita, liczba dziesiętna, fragment tekstu, wartość logiczna, lista. Języki różnią się tym, czy typ ma sama zmienna.
W Pythonie i JavaScripcie typ niesie wartość, a jedna zmienna może z czasem przechowywać wartości różnych typów. Nazywa się to typowaniem dynamicznym:
42 <class 'int'>
forty-two <class 'str'>
W Javie, C i C++ zmienna ma stały typ wybrany przy deklaracji. To typowanie statyczne: kompilator odrzuca kod, który próbuje zapisać tekst w zmiennej typu int, zanim program w ogóle się uruchomi.
int age = 30; // Java: type, name, value
String name = "Rosa";
let age = 30; // JavaScript: can be reassigned
const PI = 3.14159; // cannot be reassigned
W C typ decyduje też o tym, ile pamięci zajmuje zmienna. int ma 4 bajty w prawie każdym współczesnym systemie, double ma 8, a char dokładnie 1. Aby trzymać wiele wartości pod jedną nazwą, na przykład wszystkie wyniki w grze, używasz tablicy albo listy i sięgasz do każdej wartości po jej pozycji, na przykład scores[0].
Pudełka i etykiety
Popularny obraz zmiennej to pudełko, w którym leży wartość. Ten obraz dobrze pasuje do C: int x; to naprawdę stały obszar pamięci, a y = x; kopiuje wartość do drugiego obszaru.
Python działa bardziej jak etykiety. Każda wartość jest obiektem, a zmienna to przyczepiona do niego nazwa. Różnica wychodzi na jaw, gdy dwie nazwy odnoszą się do tej samej listy:
5 6
[1, 2, 3, 4]
W przypadku liczb y = y + 1 tworzy nową liczbę i przenosi na nią etykietę y, więc x nadal odnosi się do 5. W przypadku listy b = a niczego nie kopiuje: obie nazwy odnoszą się do jednej listy, więc zmiana wprowadzona przez b jest widoczna przez a. Napisz b = a.copy(), gdy chcesz mieć osobną listę. Obiekty i tablice w Javie i JavaScripcie zachowują się tak samo.
Zasięg: gdzie istnieje zmienna
Zmienna jest widoczna tylko w części programu, nazywanej jej zasięgiem. Zmienna utworzona wewnątrz funkcji jest lokalna: istnieje, dopóki funkcja działa, i znika, gdy funkcja zwraca wynik. Zmienna utworzona na najwyższym poziomie pliku jest globalna i można ją odczytać w dowolnym miejscu tego pliku.
Zmienne lokalne łatwiej zrozumieć, bo każda linia, która może je zmienić, jest w jednej funkcji. Programy oparte na wielu zmiennych globalnych trudniej debugować z przeciwnego powodu.
Nazywanie zmiennych
Dobre nazwy mówią, co oznacza wartość: total_price, is_logged_in, retries_left. Większość języków ma te same zasady:
- nazwa składa się z liter, cyfr i podkreśleń i nie może zaczynać się od cyfry;
- nazwa nie może być słowem kluczowym języka, takim jak
if,forczyclass; - wielkość liter ma znaczenie, więc
totaliTotalto dwie różne zmienne.
Styl zależy od języka. Python używa snake_case (user_name), a Java i JavaScript camelCase (userName). Wartości, które nigdy nie powinny się zmieniać, często nazywa się wielkimi literami, na przykład MAX_SIZE.
Typowe błędy
Użycie zmiennej, zanim ma wartość. Python zatrzymuje się z NameError:
NameError: name 'total' is not defined
Ten sam błąd pojawia się przy literówce w nazwie, bo dla komputera totla i total to różne nazwy.
Pisanie = zamiast ==. W Pythonie if x = 5: to błąd składniowy, więc od razu się o nim dowiadujesz. W C i JavaScripcie if (x = 5) to poprawny kod: zapisuje 5 w x, a warunek jest zawsze prawdziwy. Program działa i daje złe wyniki, czyli ma błąd logiczny, którego szukanie może zająć dużo czasu.
Dawanie jednej zmiennej dwóch zadań. Zmienna, która na początku funkcji przechowuje cenę, a na końcu liczbę sztuk, nadal działa, ale każdy czytelnik musi śledzić, które znaczenie jest aktualne. Każdemu znaczeniu daj osobną nazwę.
Co dalej
Zmienne przechowują wartości, a kolejny krok to poznanie rodzajów wartości: przeczytaj, czym jest wartość logiczna, jeśli chodzi o prawdę i fałsz, oraz czym jest tablica, jeśli chodzi o wiele wartości pod jedną nazwą. Przewodnik po zmiennych w Pythonie dokładniej omawia przypisanie, zasady nazywania i wielokrotne przypisanie, a w kursie Pythona piszesz i zmieniasz zmienne od pierwszej lekcji.
Najczęściej zadawane pytania
Co to jest zmienna w Pythonie?
age = 30, bez deklarowania typu, a ta sama nazwa może później odnosić się do wartości innego typu. Zgodnie z konwencją nazwy zmiennych w Pythonie zapisuje się w stylu snake_case.Jaka jest prosta definicja zmiennej?
Jak wytłumaczyć dziecku, co to jest zmienna?
score, a w pudełku mieści się naraz jedna rzecz. Możesz zajrzeć do środka i sprawdzić, co tam jest, albo wyjąć zawartość i włożyć coś nowego, a etykieta zostaje ta sama.Czym różni się zmienna od stałej?
final, a JavaScript i C używają const. Python nie wymusza stałych, więc programiści zapisują nazwę wielkimi literami, na przykład MAX_USERS, żeby zasygnalizować, że nie powinna się zmieniać.