Wróć do informacji o e-podręczniku Wydrukuj Pobierz materiał do PDF Pobierz materiał do EPUB Pobierz materiał do MOBI Zaloguj się, aby dodać do ulubionych Zaloguj się, aby skopiować i edytować materiał Zaloguj się, aby udostępnić materiał Zaloguj się, aby dodać całą stronę do teczki
Ważne!

Przedstawiony materiał stanowi rozszerzenie informacji, jakie zawarto w filmie. Zapoznaj się z nim, jeśli chcesz dowiedzieć się więcej na temat typów zmiennych w języku Python.

Wiesz już, że do przechowywania danych w programie wykorzystywane są zmienne. Różne języki programowania dysponują różnymi typami danych, jednak większość z nich jest bardzo podobna. Python oddaje nam do dyspozycji różne typy danych wbudowanych, m.in.:

Nazwa

Opis

Przykład

str

łańcuch znaków

'Adam Jurkiewicz'

int

liczba całkowita

2020

float

liczba zmiennoprzecinkowa

314151617

bool

wartość logiczna

True

Przykład 1

Oto przykład (w środowisku IDLE) przypisania wartości czterem zmiennym typów wbudowanych:

Linia 1. Python 3 kropka 6 kropka 7 otwórz nawias okrągły default przecinek Oct 22 2018 przecinek 11 dwukropek 32 dwukropek 17 zamknij nawias okrągły. Linia 2. otwórz nawias kwadratowy GCC 8 kropka 2 kropka 0 zamknij nawias kwadratowy on linux. Linia 3. Type cudzysłów help cudzysłów przecinek cudzysłów copyright cudzysłów przecinek cudzysłów credits cudzysłów or cudzysłów license otwórz nawias okrągły zamknij nawias okrągły cudzysłów for more information kropka. Linia 4. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny typ podkreślnik string znak równości apostrof to jest napis minus lubię Pythona apostrof. Linia 5. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny typ podkreślnik int znak równości 136. Linia 6. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny typ podkreślnik float znak równości 3 kropka 14. Linia 7. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny typ podkreślnik boolean znak równości True.
Dla zainteresowanych

W języku Python minimalne i maksymalne wartości dla liczb float są różne w zależności od architektury procesora i implementacji języka Python. W przypadku procesorów -bitowych i najpopularniejszej implementacji CPython wynoszą odpowiednio do , a do ich zapisu używane jest bajtów.

Z kolei zmienne typu int w języku Python są liczbami o nieograniczonym zakresie, a w zasadzie ograniczonym wyłącznie rozmiarem dostępnej pamięci. Oznacza to, że możemy wykonywać operacje na dowolnie dużych liczbach całkowitych. Dzieje się tak dzięki implementacji języka Python, która programowo pokonuje ograniczenia sprzętowe komputera. Warto jednak wspomnieć, że wewnętrznie dla procesorów -bitowych liczby całkowite są zapisywane na bajtach (a więc największą wartością w tym zapisie jest , czyli ).

Ważne!

W obiektach typu float część całkowitą od ułamkowej oddziela się za pomocą kropki, a nie przecinka.

Ważne!

Wartości True oraz False należy zapisywać, zwracając uwagę na wielkość liter. W języku Python rozróżniane są wielkie i małe litery.

Zapamiętaj: true nie oznacza w języku Python tego samego co True.

Przyjrzyjmy się oknu Python Console programu PyCharm z wprowadzonymi danymi oraz modułowi inspektor obiektówinspektor obiektówinspektor obiektów.

R1IrqwFWUWTIX
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Dane umieszczamy w zmiennych. Możemy wykonywać na nich wiele operacji za pomocą operatorów arytmetycznych oraz innych (więcej o tym dowiemy się w kolejnych materiałach). Teraz jednak spróbujmy wykonać proste działanie – dodawanie.

Polecenie 1

Zdefiniujmy dwie zmienne (dwa obiekty) typu str, dodajmy je do siebie i wyświetlmy wynik.

Polecenie 2

Zdefiniujmy dwie zmienne (dwa obiekty) typu int, dodajmy je do siebie i wyświetlmy wynik.

Polecenie 3

Zdefiniujmy dwie zmienne (dwa obiekty) typu float, dodajmy je do siebie i wyświetlmy wynik.

Polecenie 4

Zdefiniujmy zmienną (obiekt) typu bool i wyświetlmy ją.


Przykład 2

Zmienne typu string umożliwiają odwołanie się do pojedynczych znaków w przechowywanych napisach, używając wyrażenia indeksującegowyrażenie indeksującewyrażenia indeksującego. Oto przykład w środowisku IDLE:

Linia 1. Python 3 kropka 6 kropka 7 otwórz nawias okrągły default przecinek Oct 22 2018 przecinek 11 dwukropek 32 dwukropek 17 zamknij nawias okrągły. Linia 2. otwórz nawias kwadratowy GCC 8 kropka 2 kropka 0 zamknij nawias kwadratowy on linux. Linia 3. Type cudzysłów help cudzysłów przecinek cudzysłów copyright cudzysłów przecinek cudzysłów credits cudzysłów or cudzysłów license otwórz nawias okrągły zamknij nawias okrągły cudzysłów for more information kropka. Linia 4. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny napis znak równości apostrof Adam uczy się pilnie Pythona apostrof. Linia 5. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny napis otwórz nawias kwadratowy 0 zamknij nawias kwadratowy kratka pierwszy element sekwencji ma indeks otwórz nawias kwadratowy 0 zamknij nawias kwadratowy. Linia 6. apostrof A apostrof. Linia 7. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny napis otwórz nawias kwadratowy 1 zamknij nawias kwadratowy kratka drugi element sekwencji. Linia 8. apostrof d apostrof. Linia 9. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny napis otwórz nawias kwadratowy 10 zamknij nawias kwadratowy kratka jedenasty element. Linia 10. apostrof s apostrof. Linia 11. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny napis otwórz nawias kwadratowy 10 dwukropek 13 zamknij nawias kwadratowy kratka wycinek otwórz nawias okrągły ang kropka asterysk slice asterysk zamknij nawias okrągły minus weź elementy od jedenastego do trzynastego. Linia 12. apostrof się apostrof.

Okno Python Console programu PyCharm z wprowadzonymi danymi oraz moduł inspektor obiektów prezentuje się następująco:

R10iIX3Y2Hu8Y
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
Ważne!

Obiekt typu string jest uporządkowanym ciągiem znaków, czyli sekwencją. Jest również niezmiennyniezmienialnaniezmienny.

Przykład 3

W przykładzie chcemy zmienić wartość czwartego znaku ciągu na „X”. Program zwróci jednak błąd, ponieważ – jak wspomnieliśmy – nie możemy zmienić części sekwencji znaków obiektu typu string; musimy zmienić cały obiekt (TypeError: 'str' object does not support item assignment).

Drugi błąd (NameError: name 'obiekt_str' is not defined) wynika z tego, że nie została zadeklarowana zmienna obiekt_str.

Linia 1. Python 3 kropka 6 kropka 7 otwórz nawias okrągły default przecinek Oct 22 2018 przecinek 11 dwukropek 32 dwukropek 17 zamknij nawias okrągły. Linia 2. otwórz nawias kwadratowy GCC 8 kropka 2 kropka 0 zamknij nawias kwadratowy on linux. Linia 3. Type cudzysłów help cudzysłów przecinek cudzysłów copyright cudzysłów przecinek cudzysłów credits cudzysłów or cudzysłów license otwórz nawias okrągły zamknij nawias okrągły cudzysłów for more information kropka. Linia 4. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny zmienna podkreślnik str znak równości cudzysłów Napis cudzysłów. Linia 5. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny zmienna podkreślnik str otwórz nawias kwadratowy 3 zamknij nawias kwadratowy znak równości cudzysłów X cudzysłów. Linia 6. Traceback otwórz nawias okrągły most recent call last zamknij nawias okrągły dwukropek. Linia 7. File cudzysłów otwórz nawias ostrokątny pyshell kratka 4 zamknij nawias ostrokątny cudzysłów przecinek line 1 przecinek in otwórz nawias ostrokątny module zamknij nawias ostrokątny. Linia 8. zmienna podkreślnik str otwórz nawias kwadratowy 3 zamknij nawias kwadratowy znak równości cudzysłów X cudzysłów. Linia 9. TypeError dwukropek apostrof str apostrof object does not support item assignment. Linia 10. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny obiekt podkreślnik str otwórz nawias kwadratowy 4 zamknij nawias kwadratowy znak równości cudzysłów X cudzysłów. Linia 11. Traceback otwórz nawias okrągły most recent call last zamknij nawias okrągły dwukropek. Linia 12. File cudzysłów otwórz nawias ostrokątny pyshell kratka 5 zamknij nawias ostrokątny cudzysłów przecinek line 1 przecinek in otwórz nawias ostrokątny module zamknij nawias ostrokątny. Linia 13. obiekt podkreślnik str otwórz nawias kwadratowy 4 zamknij nawias kwadratowy znak równości cudzysłów X cudzysłów. Linia 14. NameError dwukropek name apostrof obiekt podkreślnik str apostrof is not defined. Linia 15. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny.

Złożone typy danych

Omówione dotychczas zmienne (liczby, ciągi znaków i wartości logiczne) są prostymi (podstawowymi) typami danych. Język Python obsługuje również typy złożone. Są nimi np.:

Nazwa

Opis

Przykład

list

(lista) uporządkowany zbiór obiektów tego samego lub różnego typu bez ograniczeń dotyczących rozmiaru; elementy listy są zmienialnezmienialnazmienialne

1, 'Python', 467

tuple

(tupla lub krotka) – lista, której nie da się zmodyfikować (lista niezmienialna)

1, 'Python', 467

dict

(słownik lub odwzorowanie) – zbiór obiektów różnego typu, skojarzonych z odpowiadającymi im kluczami; do obiektów odwołujemy się przez klucze, a nie przez pozycję w zbiorze (odwzorowania łączą klucze z wartościami, a wewnątrz słownika obiekty nie zachowują określonej kolejności); słownik jest zmienialny, ale klucze słownika muszą być niezmienialne i niepowtarzalne

1 'Wartość 1'

set

(zbiór) – kolekcja unikatowych, nieuporządkowanych i niezmienialnych obiektów, obsługująca działania teorii zbiorów

1, 4, 7, 8

Polecenie 5

Innym typem złożonym są liczby zespolone. Poszukaj informacji na ich temat.

Przykład 4

Oto przykłady zmiennych opisanych typów:

Linia 1. typ podkreślnik lista znak równości otwórz nawias kwadratowy 1 przecinek 3 przecinek 2 przecinek 1 kropka 04 przecinek 5 przecinek apostrof a apostrof przecinek apostrof c apostrof przecinek apostrof a apostrof przecinek 1 kropka 04 przecinek 5 kropka 34 przecinek True przecinek 3 zamknij nawias kwadratowy. Linia 2. typ podkreślnik tupla znak równości otwórz nawias okrągły 1 przecinek 3 przecinek 2 przecinek 1 kropka 04 przecinek 5 przecinek apostrof a apostrof przecinek apostrof c apostrof przecinek apostrof a apostrof przecinek 1 kropka 04 przecinek 5 kropka 34 przecinek True przecinek 3 zamknij nawias okrągły. Linia 3. typ podkreślnik slownik znak równości otwórz nawias klamrowy apostrof klucz podkreślnik 03 apostrof dwukropek 1 kropka 75 przecinek 1 dwukropek apostrof wartość podkreślnik 1 apostrof przecinek apostrof a apostrof dwukropek typ podkreślnik lista zamknij nawias klamrowy. Linia 4. typ podkreślnik set znak równości set otwórz nawias okrągły typ podkreślnik lista zamknij nawias okrągły. Linia 6. print otwórz nawias okrągły typ podkreślnik set zamknij nawias okrągły. Linia 7. print otwórz nawias okrągły typ podkreślnik lista zamknij nawias okrągły. Linia 8. print otwórz nawias okrągły typ podkreślnik tupla zamknij nawias okrągły. Linia 9. print otwórz nawias okrągły typ podkreślnik slownik zamknij nawias okrągły.

Zauważmy:

  • elementy zbioru (zestawu) przy każdym jego wywołaniu zostaną wyświetlone w losowej kolejności – skopiuj kod i sprawdź;

  • elementy zestawu nie powtarzają się;

  • w zbiorze nie pojawia się wartość True – dlaczego? W zbiorze jest już wartość jeden; program interpretuje wartość typu bool True jako jedynkę (analogicznie jest z wartością False – interpretuje ją jako 0), więc nie wyświetli jej po raz kolejny; podmień w liście wartość True na False, uruchom program i sprawdź, co się stanie.

Okno Python Console programu PyCharm z wprowadzonymi danymi oraz inspektor obiektów.

R11RcsMl1ZGZC
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Przykłady zastosowania metod

Na zmiennych można wykonywać różne operacje, np. dodawania, mnożenia. Więcej informacji na ten temat znajdziesz w e‑materiale Operatory w języku PythonPy3DDq8mCOperatory w języku Python. W języku Python mamy możliwość wykorzystania metod, czyli funkcji specyficznych dla obiektów konkretnego typu.

Python jest językiem programowania typowanym dynamicznietypowanie dynamicznetypowanym dynamicznie. Typy obiektów są silne; oznacza to, że na obiekcie można wykonać metody zdefiniowane dla konkretnego typu.

Ważne!

W języku Python nazwę metody oddziela się od nazwy obiektu znakiem kropki. Oto polecenie wywołania funkcji metoda() dla obiektu o nazwie obiekt:

Linia 1. obiekt kropka metoda otwórz nawias okrągły zamknij nawias okrągły.
Przykład 5

Przeanalizujmy przykład – chcemy poznać liczbę wystąpień litery „a” w zmiennej tekstowej:

Linia 1. Python 3 kropka 6 kropka 7 otwórz nawias okrągły default przecinek Oct 22 2018 przecinek 11 dwukropek 32 dwukropek 17 zamknij nawias okrągły. Linia 2. otwórz nawias kwadratowy GCC 8 kropka 2 kropka 0 zamknij nawias kwadratowy on linux. Linia 3. Type cudzysłów help cudzysłów przecinek cudzysłów copyright cudzysłów przecinek cudzysłów credits cudzysłów or cudzysłów license otwórz nawias okrągły zamknij nawias okrągły cudzysłów for more information kropka. Linia 4. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny zmienna znak równości cudzysłów To jest długi tekst przecinek a Python to świetny język programowania kropka cudzysłów. Linia 5. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny print otwórz nawias okrągły zmienna kropka count otwórz nawias okrągły cudzysłów a cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 6. 4. Linia 7. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny.

Wynik wskazuje, że w podanym ciągu znaków litera „a” występuje cztery razy.

Dokumentacja w języku Python

Informacje na temat obiektów oraz odpowiadających im metod można otrzymać, korzystając z następujących funkcji:

  • dir(obiekt_do_sprawdzenia) – wyświetla wszystkie metody przypisane do obiektu;

  • help(obiekt_do_sprawdzenia.nazwa_metody) – wyświetla opis metody (tzw. docstring);

  • help(nazwa_funkcji) – wyświetla opis funkcji (tzw. docstring).

Okno Python Console programu PyCharm z przykładowymi wywołaniami:

RiXqrNzOmTkOJ
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
Polecenie 6

Korzystając z funkcji dir() oraz help(), znajdź metody, które potrafią:

  • sprawdzić, czy zmienna str zawiera tylko cyfry typu int;

  • zamienić podany ciąg znaków w zmiennej str na inny;

  • podać liczbę wystąpień zadanego ciągu znaków w zmiennej str.

Ważne!

Przedstawione polecenia są jednym ze sposobów uzyskania pomocy w języku Python. W wierszu polecenia można również wpisać komendę: pydoc -p 1234, a następnie w przeglądarce wybrać adres http://localhost:1234. Dostępna będzie wówczas dokumentacja w wersji HTML.

Słownik

inspektor obiektów
inspektor obiektów

w środowisku PyCharm moduł umożliwiający podgląd w czasie rzeczywistym obiektów, ich wartości oraz typu

niezmienialna
niezmienialna

(ang. immutable) sekwencja, która jest niemodyfikowalna: nie można zmienić żadnego jej elementu; aby dokonać modyfikacji, trzeba zmienić cały obiekt

typowanie dynamiczne
typowanie dynamiczne

określanie typu zmiennej w momencie przypisywania jej wartości; w języku Python nie deklaruje się typu zmiennej z góry (tak jak w języku C++); typ zmiennej może wielokrotnie zmieniać się w czasie działania programu

wyrażenie indeksujące
wyrażenie indeksujące

(ang. slice) zawarte w nawiasach kwadratowych wyrażenie, które pozwala określić wybraną część sekwencji; nazywane także wycinkiem; wycinek 310 oznacza: weź znaki od czwartego do dziesiątego – pamiętajmy, że w języku Python indeksujemy, licząc od , a więc pierwszy element sekwencji posiada indeks 0

zmienialna
zmienialna

(ang. mutable) sekwencja, która jest modyfikowalna; oznacza to, że można zmienić dowolny jej element bez konieczności modyfikowania całego obiektu