Python – zmienne i podstawowe typy danych
Witaj w kolejnej części notatek z nauki Pythona. Dzisiaj będą typy danych – od razu uprzedzam – sporo tego i materiał będzie podzielony na dwie części – podstawowe oraz złożone typy danych.
Podejście do zmiennych w Pythonie odbiega od tego znanego z C++ czy Javy – otóż nie musimy deklarować typu. Mamy tutaj do czynienia z tzw. typowaniem dynamicznym. Typ zmiennej jest określany na podstawie jej zawartości podczas przypisania ALE typowanie jest silne – jak mamy w zmiennej tekstowej liczbę, to nie zostanie ona automatycznie przekonwertowana. Pokażę to później w przykładach.
„Ale ale” – zanim zaczniemy tworzyć zmienne – poznaj listę słów kluczowych zastrzeżonych dla Pythona, które nie mogą być nazwami zmiennych.
- False
- None
- True
- and
- as
- assert
- async
- await
- break
- class
- continue
- def
- del
- elif
- else
- except
- finally
- for
- from
- global
- if
- import
- in
- is
- lambda
- nonlocal
- not
- or
- pass
- raise
- return
- try
- while
- with
- yield
W przyszłości oczywiście może się to zmienić – aktualną listę można zawsze sprawdzić za pomocą poniższego skryptu:
import keyword
print(keyword.kwlist)
O czym jeszcze warto pamiętać przy nazywaniu zmiennych w Pythonie?
- nazwa może składać się z liter i cyfr oraz znaku podkreślenia (bez spacji)
- wielkość znaków ma znaczenie
- nazwa zmiennej nie może zaczynać się cyfrą
Podstawowe typy danych
Typ | Opis | Przykłady |
int (integer) | Liczba całkowita | 4, -5, 150 |
float | Liczba zmiennoprzecinkowa | 0.5, -20.0, .1, 0.2f |
str (string) | Łańcuch znaków | ’wyraz’, „dwa wyrazy” |
complex | Zmora początkujących elektroników – liczby urojone | (3 + 2j) |
bool (boolean) | Typ logiczny Prawda lub Fałsz | True, False |
Dozwolone nazwy zmiennych
_a = 5
_12_b = 30
NazwaPliku = "test.txt"
powiedz_cos = 'mowie cos'
kwota = 10.0
Samego przypisania dokonujemy za pomocą znaku równości.
Typy zmiennych
W większości języków zmienne danego typu mają zadane wielkości – tzn. jak duże liczby/łańcuchy mogą przechowywać. W Pythonie roboczo możemy przyjąć, że ograniczeniem jest rozmiar pamięci dostępnej w systemie, w którym uruchamiamy nasz program. Są tam pewne niuanse – wrócę do tego w osobnej notce, na tym etapie na pewno nam tej pamięci wystarczy;)
Typ zmiennej sprawdzamy za pomocą funkcji type():

W ramach ćwiczeń zachęcam do uruchomienia IDLE i sprawdzenia powyższych komend a także zabaw ze zmianą typu zmiennej – na przykład:

Jak widać po każdym przypisaniu aktualizowany jest także typ – o ile rzeczywiście się zmienił.
Rzutowanie (konwersja) typu danych
Mimo iż typowanie jest silne – czyli na przykład liczba całkowita zapisana w łańcuchu znaków nie zostanie samoistnie przekonwertowana tak, żeby pasowała do naszych obliczeń:

Czasami zachodzi niejawna konwersja typów – na przykład liczba całkowita użyta jako boolean będzie traktowania jako False gdy jest zerem oraz True przy każdej innej wartości.
O konwersję najlepiej jednak samemu zadbać rzutując zmienną do potrzebnego typu za pomocą operatorów funkcji int(), float(), str(), complex() oraz bool() – w nawiasach umieszczamy nazwę zmiennej lub wartość, którą chcemy przekonwertować. Program wstawi w tym miejscu wynik konwersji:

Ale też możemy potraktować zmienne jako łańcuchy znaków i dodać je do siebie – nie będzie to wtedy dodanie liczb, a dodanie do siebie dwóch tekstów:

Znając już podstawowe typy danych – możemy się zabrać za podstawowe operacje na zmiennych w Pythonie. Na zaawansowane typy danych przyjdzie jeszcze pora;)