Od zera do mistrza Big Data i uczenia maszynowego w Pythonie. Część 3

wpis w: migawka, Python | 0

Po zapoznaniu się z podstawowymi typami zmiennych skalarnych warto zdobyć wiedzę o  typach sekwencyjnych

Należą do nich głównie

  • Listy (lists)
  • Krotki (tuples)
  • Słowniki (dictionaries)
  • Zbiory  (sets)

Dzielimy je na zmienialne (mutable) i  niezmienialne (immutable)

Listy i zbiory, słowniki są przedstawicielami tej pierwszej grupy, a krotki i , napisy i zbiory niezmienne (frozenset) są przedstawicielami tej drugiej..
Typów niezmienialnych nie można bezpośrednio modyfikować
Postanowiłem poświęcić na początek nieco uwagi na rozszerzenie wiedzy o napisach, sposobie indeksowania i generowania podciągów.
Warto zapamiętać: Indeksy zaczynamy od zera, więc pierwszy element zmiennej napisowej s to s[0], ostatni to s[len[s]-1]. Mamy też do dyspozycji indeksy ujemne  s[-1] to ostatni element napisu, a s[-len(s)] pierwszy.

Ważne jest uzmysłowienie sobie informacji o tym, że Python jest nie tylko dynamicznie typowany, ale również silnie typowany, dlatego musimy uważać na wszelkie konwersje typów. Poniżej prosty kod, na trzy instrukcje print, tylko jedna wykona się poprawnie.

https://www.python.org/dev/peps/pep-0020/
The Zen of Python: “Explicit is better than implicit.”

a=1
f=1.0
s="Napis"

print(a+f) # 2.0
print(f+s) #TypeError: unsupported operand type(s) for +: 'float' and 'str'
print(s+a) #TypeError: must be str, not int

Postaram się utrwalić rzutowanie, nie tylko między zmiennymi skalarnymi, ale również sekwencyjnymi.

Notatnik umieszczony na GitHub

Podgląd:

https://nbviewer.jupyter.org/github/djkormo/PythonForML/blob/master/intro/Kurs_2_typy_sekwencyjne_iterowane.ipynb

Uruchomienie:

https://mybinder.org/v2/gh/djkormo/PythonForML/master?filepath=intro/Kurs_2_typy_sekwencyjne_iterowane.ipynb

Po uruchomieniu kontenera należy wyczyścić informacje wyjściowe za pomocą menu Kernel -> Restart & Clear Output.

Reenderowane wtyczką WP:

 

Poprzednia część

Następna część

 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

This site uses Akismet to reduce spam. Learn how your comment data is processed.