Menu
Coddy logo textTech

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.

Autor: Kevin Spektor, Współzałożyciel i CTO

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:

  1. 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;.
  2. Przypisanie. Wartość zapisuje się pod nazwą za pomocą =. Kolejne przypisanie zastępuje starą wartość.
  3. 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, for czy class;
  • wielkość liter ma znaczenie, więc total i Total to 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?
Zmienna w Pythonie to nazwa, która odnosi się do wartości. Tworzysz ją, przypisując do niej wartość, na przykład 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?
Zmienna to nazwa wartości, którą program przechowuje i może zmieniać. Nazwa pozostaje ta sama, a wartość pod nią można podmienić, tak jak tablica wyników zachowuje napis „Gospodarze”, a liczba pod nim rośnie.
Jak wytłumaczyć dziecku, co to jest zmienna?
Porównaj ją do pudełka z etykietą. Etykieta to nazwa, na przykład 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?
Wartość zmiennej można zmienić po jej ustawieniu, a wartość stałej jest niezmienna od chwili przypisania. Java oznacza stałe słowem 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ć.
Jakie są rodzaje zmiennych w programowaniu?
Zmienne grupuje się zwykle według tego, gdzie są widoczne: zmienne lokalne istnieją wewnątrz jednej funkcji, zmienne globalne są widoczne w całym pliku lub programie, a zmienne instancji należą do jednego obiektu klasy. Opisuje się je też według typu przechowywanej wartości, na przykład liczba całkowita, liczba zmiennoprzecinkowa, napis lub wartość logiczna.
Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ