Zmienna to nazwa
Zmienna w Pythonie to nazwa, którą przypinasz do wartości. Piszesz nazwę, znak równości i wartość:
Trzy zmienne, trzy wartości, trzy typy. Python bez problemu trzyma je obok siebie, a ty nie musisz mu niczego mówić o rodzaju tych wartości. Wartość stoi po =, a nazwa przed nim.
Gdy zmienna już istnieje, możesz jej używać wszędzie tam, gdzie użyłoby się samej wartości:
Dzięki nazwom przedostatnia linia sama się opisuje. To prawdziwa korzyść z dobrych nazw zmiennych: kod, który czyta się jak wyjaśnienie.
Przypisanie to nie matematyka
Jedna rzecz zaskakuje osoby przychodzące z lekcji matematyki: = w Pythonie nie znaczy "równa się". Znaczy "przypisz", czyli "weź wartość po = i przypnij ją do nazwy przed nim". Python najpierw oblicza wartość, a dopiero potem wykonuje przypisanie.
Zatem to jest całkowicie poprawne:
Linia count = count + 1 nie twierdzi, że count równa się count plus jeden (matematycznie niemożliwe). Mówi: oblicz count + 1, a potem przypisz wynik z powrotem do count. Python najpierw oblicza wyrażenie, 0 + 1, co daje 1, i dopiero wtedy aktualizuje zmienną.
count = count + 1 będziesz pisać tak często, że Python ma na to skrót: count += 1 robi to samo.
Ponowne przypisanie zmienia etykietę, nie wartość
Zmienna może w dowolnej chwili wskazywać inną wartość. Stara wartość nie jest modyfikowana: zmienna po prostu zaczyna odnosić się do czegoś innego:
Zwróć uwagę na ostatnią linię. mood przez dwie linie przechowuje napis, a potem nagle liczbę całkowitą. Python nie protestuje. To typowanie dynamiczne: zmienne nie mają stałego typu, mają go tylko wartości. Ta elastyczność pomaga przy prototypowaniu i boli, gdy zmienna niezauważenie zmienia znaczenie w środku funkcji. Bezpieczny nawyk to wybrać nazwę, która pasuje do tego, co wartość reprezentuje, i przez cały czas życia zmiennej trzymać się tego jednego znaczenia.
Zasady nazywania zmiennych
Python akceptuje nazwy, które:
- Zaczynają się od litery albo podkreślnika (
_). - Zawierają litery, cyfry i podkreślniki.
- Nie są zarezerwowanym słowem kluczowym (
if,for,class,returni kilkadziesiąt innych).
Te nazwy są więc poprawne:
A te nie:
2nd_user: nie może zaczynać się od cyfry.user-name: łączniki są niedozwolone (Python czyta je jako odejmowanie).class: zarezerwowane słowo kluczowe.user name: w nazwach nie ma spacji.
Jak już wiesz, wielkość liter ma znaczenie: total, Total i TOTAL to trzy różne zmienne. Python nie wyłapie za ciebie takiej literówki.
Konwencje nazewnictwa
Poza twardymi zasadami społeczność Pythona ma konwencje. Interpreter ich nie wymusza, ale obowiązują w całym ekosystemie:
lower_snake_casedla zwykłych zmiennych i funkcji:retry_count,fetch_profile.UPPER_SNAKE_CASEdla stałych:MAX_RETRIES = 5.PascalCasedla nazw klas (dojdziemy do nich później).- Podkreślnik na początku (
_something) sugeruje, że nazwa ma być prywatna. Nie jest to wymuszane, to tylko konwencja. - Podkreślnik na końcu (
class_) pozwala użyć nazwy, która inaczej kolidowałaby ze słowem kluczowym.
Trzymaj się ich, a twój kod będzie wyglądał jak Python pisany przez innych.
Nazwy powinny opisywać znaczenie
Nazwę zmiennej wpisuje się za darmo, ale czyta drogo. Kilka dodatkowych znaków na nazwę, która naprawdę opisuje znaczenie wartości, oszczędza przyszłym czytelnikom (zwykle tobie w przyszłości) sporo mrużenia oczu.
Porównaj:
Ten sam kod, ta sama odpowiedź, ale tylko druga wersja mówi, co się dzieje. Krótkie nazwy (i, n, x) są w porządku w bardzo małych zakresach, takich jak liczniki pętli, ale poza nimi pisz pełne nazwy.
Wielokrotne przypisanie (używaj oszczędnie)
Python pozwala przypisać tę samą wartość kilku zmiennym w jednej linii:
Albo rozpakować kilka wartości naraz:
Oba zapisy są w porządku, gdy poprawiają czytelność kodu (na przykład przy rozpakowywaniu wartości zwracanej przez funkcję). Przy pierwszej formie, łańcuchu = = =, warto chwilę uważać: wszystkie trzy zmienne wskazują ten sam obiekt, co ma znaczenie dla typów modyfikowalnych, takich jak listy (więcej o tym później).
Co warto zapamiętać
name = valuetworzy zmienną.- Zmienne nie mają typów; mają je wartości.
- Nazwy podlegają kilku twardym zasadom i wielu miękkim konwencjom. Warto szanować jedne i drugie.
- Opisowa nazwa to najtańsza forma dokumentacji.
Dalej: jakie rodzaje wartości obsługuje Python, czyli liczby całkowite, liczby zmiennoprzecinkowe, napisy, wartości logiczne, i dlaczego warto wiedzieć, która jest która.
Najczęściej zadawane pytania
Jak utworzyć zmienną w Pythonie?
Wybierz nazwę, postaw po niej =, a po prawej stronie wpisz wartość. age = 30 tworzy zmienną o nazwie age z wartością 30. Python sam ustala typ: nie deklarujesz go.
Jakie są zasady nazywania zmiennych w Pythonie?
Nazwa może zawierać litery, cyfry i podkreślniki, ale nie może zaczynać się od cyfry. Nie może być słowem kluczowym Pythona, takim jak if czy class. Wielkość liter ma znaczenie: total, Total i TOTAL to trzy różne zmienne. Konwencją społeczności jest lower_snake_case.
Czy zmienna w Pythonie może zmienić typ?
Tak. Python jest typowany dynamicznie, więc zmienna, która w jednej chwili przechowuje liczbę, w następnej może przechowywać napis. Ta elastyczność jest wygodna, ale potrafi zaskoczyć: jeśli znaczenie zmiennej zmienia się w połowie funkcji, zwykle to sygnał, żeby wybrać nową nazwę.