Wprowadzenie
Python to język programowania, który jest często używany do celów integracji systemów. Ten język używa czegoś, co nazywa się ‘typami danych’. Te typy danych pomagają sklasyfikować lub zdefiniować dany typ danych. Oznacza to, że określony typ danych dotyczy konkretnych wartości i operacji, które można na nim wykonać. Każdy typ danych jest programowany i edytowany w inny sposób. Wynika to z faktu, że każdy typ danych ma inną naturę. Na przykład możesz mieć do czynienia z ciągami znaków lub liczbami całkowitymi.
Celem tego przewodnika jest zapoznanie Cię z różnymi typami danych w języku Python. Oprócz tego szczegółowo omówimy sposób konwersji poszczególnych typów danych między sobą. Pod koniec tego samouczka powinieneś znać typy danych, takie jak liczby, ciągi znaków, krotki i listy, oraz wiedzieć, jak je konwertować.
Konwersja liczb
Kiedy mówimy o liczbach w Pythonie, możemy mieć na myśli jedną z dwóch opcji. Możemy mieć do czynienia z liczbami całkowitymi lub liczbami zmiennoprzecinkowymi. Czasami może zajść potrzeba konwersji jednego typu na drugi. Możesz łatwo konwertować liczby całkowite na liczby zmiennoprzecinkowe i liczby zmiennoprzecinkowe na liczby całkowite.
-
Konwersja: liczby całkowite na zmiennoprzecinkowe
Najpierw zaczniemy od zbadania, jak można konwertować liczby całkowite na zmiennoprzecinkowe. Służy do tego polecenie o nazwie float(). Ta funkcja skonwertuje dowolną podaną liczbę całkowitą na liczbę zmiennoprzecinkową z częścią dziesiętną. Wszystko, co musisz zrobić, to umieścić liczbę całkowitą w nawiasach. Na przykład, powiedzmy, że chcesz przekonwertować liczbę całkowitą 57 na typ danych float. Oto jak należy przeprowadzić tę konwersję:
|
1 |
float(57) |
W wyniku uruchomienia tego polecenia liczba całkowita 57 zmieni się w liczbę zmiennoprzecinkową 57.0.
Innym sposobem na zrobienie tego byłoby użycie zmiennej. Możesz oznaczyć swoją liczbę całkowitą za pomocą zmiennej, a następnie wydrukować liczbę zmiennoprzecinkową za pomocą powyższego polecenia. Załóżmy, że deklarujesz zmienną f jako równą 57. Oto jak wyglądałaby konwersja w tym przypadku:
|
1 2 3 |
f = 57 print(float(f)) |
|
1 2 3 |
Wynik 57.0 |
-
Konwersja: liczby zmiennoprzecinkowe na całkowite
Możliwa jest również konwersja liczb zmiennoprzecinkowych na całkowite. Podobnie jak w przypadku poprzedniego polecenia, konwersję tę można wykonać za pomocą funkcji int(). Podobnie jak poprzednio, wystarczy dodać liczbę zmiennoprzecinkową w nawiasach po nazwie funkcji.
W naszym przykładzie przekonwertujemy liczbę zmiennoprzecinkową 390 na liczbę całkowitą. Aby dokonać konwersji, uruchomilibyśmy następujące polecenie:
|
1 |
int(390.8) |
W wyniku uruchomienia tej funkcji, 390 zmieni się w swoją formę zmiennoprzecinkową: 390.8.
Podobnie można przeprowadzić konwersję za pomocą zmiennych. Co więcej, można wykonywać wiele konwersji jednocześnie. Załóżmy, że b jest równe 125.0 a c jest równe 390.8. Oto jak można wydrukować te wartości zmiennoprzecinkowe:
|
1 2 3 4 5 |
b = 125.0 c = 390.8 print(int(b)) print(int(c)) |
|
1 2 3 4 |
Wynik 125 390 |
Jak widać, liczby całkowite zostały pomyślnie zamienione na liczby zmiennoprzecinkowe.
Jedną ważną rzeczą, o której należy pamiętać podczas konwersji liczby zmiennoprzecinkowej na całkowitą, jest to, że funkcja nie zaokrągla wartości w górę. Oznacza to, że część dziesiętna liczby zmiennoprzecinkowej jest po prostu usuwana. Funkcja nie zaokrągli wartości takiej jak 390.8 do 390 - po prostu usunie 0.8, aby dać liczbę całkowitą.
-
Konwersja: przez dzielenie
Możliwa jest również konwersja liczb całkowitych na zmiennoprzecinkowe poprzez dzielenie. Dzielenie liczb całkowitych przez siebie może dać iloraz będący liczbą zmiennoprzecinkową. Na przykład przy dzieleniu 5 przez 2 otrzymany wynik to 2.5, co jest liczbą zmiennoprzecinkową. Spójrz:
|
1 2 |
a = 5 / 2 print(a) |
|
1 2 3 |
Wynik 2.5 |
To specjalna funkcja Pythona 3. W Pythonie 2 wykonanie takiego dzielenia dałoby w wyniku tylko liczbę całkowitą, na przykład tak: 5 / 2 = 2.
Konwersja z ciągami znaków
Zanim zaczniemy rozmawiać o tym, jak przeprowadzić konwersję z ciągami znaków, musisz wiedzieć, czym właściwie są ciągi znaków (strings). Jeśli jeszcze tego nie wiesz, ciągi znaków to sekwencje znaków. Może to być ciąg liter, cyfr, symboli lub jakichkolwiek innych znaków. Możesz kojarzyć ciągi znaków z danymi komputerowymi. Dzieje się tak, ponieważ komputery często używają tego typu danych do wykonywania swoich operacji.
Jeśli masz do czynienia z danymi generowanymi przez użytkowników, będziesz musiał często wykonywać te konwersje. Dlatego warto wiedzieć, jak zamieniać liczby na ciągi znaków i konwertować ciągi znaków na liczby.
-
Konwersja: liczby na ciągi znaków
Możesz użyć funkcji str(), aby przekonwertować liczby na ciągi znaków. Tak jak poprzednio, umieścisz wartość, którą chcesz przekonwertować, w nawiasie. Wartością tą może być liczba lub zmienna. Na początek przyjrzyjmy się, jak przekonwertować liczbę całkowitą, taką jak 12, na wartość tekstową:
|
1 |
str(12) |
|
1 2 3 |
Wynik '12' |
Jak widać, wynik pokazuje wartość tekstową. Wartość tekstowa jest oznaczona cudzysłowami.
Z drugiej strony, zamiast liczb całkowitych możesz również umieścić w funkcji zmienne. To właśnie tutaj funkcja staje się naprawdę przydatna. Załóżmy na przykład, że chcesz śledzić i raportować, ile linii kodu użytkownik pisze w danym przedziale czasowym. Aby pokazać te informacje użytkownikowi, musisz wydrukować zarówno ciąg znaków, jak i wartości całkowite, w ten sposób:
|
1 2 3 4 |
user = "Sammy" lines = 50 print("Gratulacje, " + user + "! Właśnie napisałeś " + lines + " linii kodu.") |
Niestety, jeśli spróbujesz uruchomić powyższy kod, otrzymasz błąd taki jak ten:

Oznacza to, że musisz przekonwertować zmienną lines na wartość tekstową, aby móc uruchomić kod.
|
1 2 3 4 |
user = "Sammy" lines = 50 print("Gratulacje, " + user + "! Właśnie napisałeś " + str(lines) + " linii kodu.") |
Teraz, gdy umieściłeś funkcję konwersji, będziesz mógł pomyślnie uruchomić polecenie. Jako wynik zobaczysz coś takiego:
|
1 2 3 |
Wynik Gratulacje, Sammy! Właśnie napisałeś wrote 50 linii koducode. |
Podobnie, jeśli chcesz dodać liczbę zmiennoprzecinkową zamiast liczby całkowitej do ciągu znaków, musisz zrobić to samo. Tak jak poprzednio, możesz dodać wartość bezpośrednio lub użyć zmiennej. Na przykład:
|
1 2 3 |
print(str(421.034)) f = 5524.53 print(str(f)) |
|
1 2 3 4 |
Wynik 421.034 5524.53 |
Jeśli chcesz się upewnić, że wartość jest poprawna, możesz połączyć ją z ciągiem znaków w ten sposób:
|
1 2 |
f = 5524.53 print("Sammy ma " + str(f) + " punktów.") |
|
1 2 3 |
Wynik Sammy ma 5524.53 punktów. |
Ponieważ nie otrzymałeś błędu, oznacza to, że konwersja zakończyła się sukcesem.
-
Konwersja: ciągi znaków na liczby
Podobnie możesz również konwertować ciągi znaków na liczby. Jeśli Twój ciąg znaków nie ma miejsc dziesiętnych, lepiej przekonwertować go na liczbę całkowitą. Możesz przekonwertować go na liczbę całkowitą za pomocą funkcji int() .
Będziemy nadal korzystać z naszego poprzedniego przykładu z konwersji na liczbę całkowitą. Załóżmy zatem, że użytkownik o imieniu Sammy chce codziennie śledzić swoje postępy w pisaniu kodu. Jako programista chcesz przedstawić te informacje użytkownikowi w kreatywny sposób. Ponieważ jednak te wartości są przechowywane jako ciągi znaków, nie możesz zastosować do nich podstawowych operatorów, takich jak – (odejmowanie). Możesz to zaobserwować w poniższym przykładzie:
|
1 2 3 4 5 6 |
lines_yesterday = "50" lines_today = "108" lines_more = lines_today - lines_yesterday print(lines_more) |

Jak widać, operator nie działa na wartościach tekstowych. Zamiast tego otrzymujesz błąd. Aby móc pracować na tych wartościach, musisz przekonwertować ciągi znaków na liczby całkowite za pomocą funkcji int() :
|
1 2 3 4 5 6 |
lines_yesterday = "50" lines_today = "108" lines_more = int(lines_today) - int(lines_yesterday) print(lines_more) |
|
1 2 3 |
Wynik 58 |
Tutaj lines_more jest zmienną. Ta zmienna jest liczbą całkowitą i jest równa wynikowej wartości, która w naszym przykładzie wynosi 58.
Z drugiej strony, możesz przekonwertować ciągi znaków na liczby zmiennoprzecinkowe (floats), używając funkcji float() jeśli występują części dziesiętne. W tym przykładzie użyjemy punktów, które zdobywa użytkownik Sammy, w przeciwieństwie do liczby pisanych przez niego linii. Punkty są zapisywane z częścią dziesiętną:
|
1 2 3 4 5 6 |
total_points = "5524.53" new_points = "45.30" new_total_points = total_points + new_points print(new_total_points) |
|
1 2 3 |
Wynik 5524.5345.30 |
Choć wynik nie wskazuje na błąd, nadal nie jest poprawny. Operator + lub dodawanie zadziałało w tym przypadku. Jednak zamiast dodać obie liczby, po prostu umieściło dwie wartości tekstowe obok siebie.
Dlatego najpierw musisz przekonwertować te ciągi znaków na wartości zmiennoprzecinkowe za pomocą funkcji float() :
|
1 2 3 4 5 6 |
total_points = "5524.53" new_points = "45.30" new_total_points = float(total_points) + float(new_points) print(new_total_points) |
|
1 2 3 |
Wynik 5569.83 |
Jak widać powyżej, obie wartości zostały dodane do siebie. Pamiętaj: jeśli spróbujesz przekonwertować wartość tekstową z częścią dziesiętną na liczbę całkowitą, otrzymasz błąd taki jak ten:
|
1 2 |
f = "54.23" print(int(f)) |

Dlatego najpierw musisz przekonwertować tekstowy typ danych na liczby. Następnie możesz z łatwością wykonywać inne operacje i konwertować wartości numeryczne.
Konwersja na krotki i listy
Listy i krotki to jedne z innych typów danych, których można używać w Pythonie 3. Oba składają się z sekwencji elementów. Różnica między nimi polega na tym, że lista jest modyfikowalna (mutable), a krotka jest niemodyfikowalna (immutable). Ponadto, podczas gdy elementy listy są umieszczane w nawiasach kwadratowych [ ], elementy krotki są umieszczane w nawiasach okrągłych ( ).
-
Konwersja: Listy na krotki
Przede wszystkim przyjrzyjmy się, jak można przekonwertować listę na krotkę. Taka konwersja może być potrzebna, jeśli wymagany jest niemodyfikowalny typ danych. W tym celu należy użyć funkcji tuple():
|
1 |
print(tuple(['pull request', 'open source', 'repository', 'branch'])) |
|
1 2 3 |
Wynik ('pull request', 'open source', 'repository', 'branch') |
Jak widać, elementy listy znajdują się teraz w krotce. Wskazują na to nawiasy okrągłe otaczające elementy.
Możesz również użyć funkcji tuple() ze zmienną, która odpowiada liście elementów:
|
1 2 3 |
sea_creatures = ['shark', 'cuttlefish', 'squid', 'mantis shrimp'] print(tuple(sea_creatures)) |
|
1 2 3 |
Wynik ('shark', 'cuttlefish', 'squid', 'mantis shrimp') |
Co wygodne, na krotkę można przekonwertować dowolny typ danych. Na przykład, oto jak można przekonwertować ciąg znaków na krotkę:
|
1 |
print(tuple('Sammy')) |
|
1 2 3 |
Wynik ('S', 'a', 'm', 'm', 'y') |
Ciągi znaków można konwertować na krotki, ponieważ są one iterowalne. Co zrozumiałe, typy danych, które nie są iterowalne, nie mogą być konwertowane na krotki. Załóżmy, że chcesz przekonwertować liczby całkowite lub liczbę zmiennoprzecinkową na krotkę. Gdyby uruchomić funkcję tuple(), otrzymasz błąd taki jak ten:
|
1 |
print(tuple(5000)) |
|
1 2 3 |
Wynik TypeError: 'int' object is not iterable |
Błąd typu pokazuje, że liczba całkowita nie jest iterowalna. Dlatego konwersja nie może dojść do skutku. Skomplikowanym sposobem byłoby najpierw przekonwertowanie liczby całkowitej na ciąg znaków, a następnie na krotkę. Można to zrobić za pomocą następującej funkcji: tuple(str(5000)). Zalecamy jednak unikanie takich komplikacji.
-
Konwersja: krotki na listy
I odwrotnie, może zajść potrzeba przekonwertowania krotki na listę, jeśli wymagane są dane modyfikowalne. W tym celu należy użyć funkcji list() w następujący sposób:
|
1 |
print(list(('blue coral', 'staghorn coral', 'pillar coral'))) |
|
1 2 3 |
Wynik ['blue coral', 'staghorn coral', 'pillar coral'] |
Obecność nawiasów kwadratowych wskazuje, że wynik końcowy jest krotką. Podczas pisania kodu do konwersji krotki na listę za pomocą list(), musisz upewnić się, że dołączysz nawiasy dla metody list() jak również dla metody print() . Jednak to sprawia, że kod staje się nieco nieczytelny. Aby uczynić go mniej skomplikowanym, możesz usunąć jedną parę nawiasów, używając zamiast tego zmiennej:
|
1 2 3 |
coral = ('blue coral', 'staghorn coral', 'pillar coral') list(coral) |
Podobnie jak w przypadku krotek, możesz również bezpośrednio konwertować ciągi znaków na listy:
|
1 |
print(list('shark')) |
|
1 2 3 |
Wynik ['s', 'h', 'a', 'r', 'k'] |
Podsumowanie
Ten poradnik pomoże Ci, jeśli szukasz sposobów na konwersję typów danych w Pythonie 3. Omówiliśmy szczegółowo różne typy danych i sposoby ich wzajemnej konwersji za pomocą wbudowanych funkcji Pythona. Znajomość tych konwersji sprawi, że programowanie stanie się znacznie łatwiejsze i bardziej kompleksowe.
Aby dowiedzieć się więcej o możliwościach Pythona, zapoznaj się z naszymi innymi poradnikami:
- Sprawdź, jak zainstalować Pythona 3 i skonfigurować lokalne środowisko programistyczne na Ubuntu 16.04.
- Przejdź dalej, aby dowiedzieć się, jak pobierać dane z Twittera za pomocą Pythona.
- Dowiedz się, jak pobierać dane NASDAQ minuta po minucie za pomocą Pythona.
- Możesz również sprawdzić, jak wykorzystać skrypt Python CloudSigma do automatyzacji konwersji migawki dysku w pełny dysk na naszej platformie.
Miłego kodowania!
Komentarze
Brak komentarzy. Bądź pierwszy.