Zagadka Pythonowa #3

Zagadka Pythonowa #3

a = 11
b = (7, 8, 9)
c = 5,
d, e = 22, 99

Jakie to typy?

a - int

Zmienna 'a' jest typu int, czyli jeden z typów danych. Int to liczby całkowitoliczbowe.

b - tupla

W drugim przypadku mamy do czynienia z tuplą trójelementową. Ten zapisy są równoważne:

b = (7, 8, 9)
b = 7, 8, 9

c - tupla

Zmienna 'c' też jest tuplą, a nie liczbą. Wszystko za sprawą przecinka, który jest za liczbą. Jest to o tyle ważne, że taki przyczajony przecinek o którym zapomnimy, może nam całkiem sporo namieszać w kodzie. Zwłaszcza, gdy kopiujemy np. fragment listy razem z przecinkiem oddzielającym elementy.

c = 5,
c2 = (5) # to już nie tupla, a integer
c3 = (5,) # to też tupla

d - int, e - int

W ostatnim przykładzie nastąpiło rozpakowanie tupli (22, 99) do tupli (d, e). Tak - (d, e) (lub po prostu 'd, e') to również dwuelementowa tupla.

Zatem poniższe zapisy są równoważne:

d, e = 22, 99
d = 22
e = 99

Mechanizm rozpakowywania tupli bardzo się przydaje, np. gdy funkcja zwraca nam dwa elementy albo chcemy rozpakować większą ilość ustawień do poszczególnych zmiennych. Innym przykładem jest zamiana zmiennych wartościami:

x = 2
y = 8
x, y = y, x

Po zamianie 'x' ma wartość 8, a 'y' wartość 2.

Znasz inne osoby, którym przyda się ta zagadka? Podziel się ze znajomymi i rozwiązujcie razem :)

0 Komentarze