Programming4Fun

Programming4Fun - programujemy z pasją :)

  • Nie jesteś zalogowany.

Ogłoszenie


#1 2014-07-10 21:59:47

 Hoguzzos

http://winclub.pl/public/style_extra/team_icons/mod.png

Skąd: Za górami za lasami :D
Zarejestrowany: 2014-07-09
Posty: 56
Punktów :   

Kurs Pythona. Część 6.

ŹRÓDŁO : http://szgrabowski.kis.p.lodz.pl/Python-podstawy.html
Krótki (typ tuple)
Krotka przypomina listę, tyle że jest niemutowalna (niezmienialna).  Składnia:

Kod:

kolor = (128, 0, 255)   # nawiasy okrągłe

Próba zmiany jakiejś składowej nie powiedzie się:

Kod:

kolor[1] = 20

Jeżeli więc chcesz zmienić krotkę, to powołaj do życia nowy obiekt (o tej samej nazwie):

Kod:

kolor = (128, 20, 255)

(Przy okazji: stary obiekt kolor zostanie wkrótce „w tle” (i bez Twojej wiedzy) usunięty przez odśmiecacz pamięci (garbage collector).)



Po krotce można iterować:

Kod:

for skladowa in kolor:

  print skladowa,

Można ją „rozpakowywać”:

Kod:

r, g, b = kolor   # podstawienie hurtowe

Tudzież robić parę innych rzeczy, ale nie da się ukryć, że krotka przypomina listę, ale jest jednak od niej mniej elastyczna.  Po co więc w ogóle zadawać się z krotkami?



Powodów jest kilka.  Najważniejszy chyba taki, że tylko typy niemutowalne (a więc m.in. krotka – ale już nie lista) mogą być kluczami w słownikach i zbiorach (o tych strukturach danych niebawem).  Ponadto krotka może być (nieco) szybsza, a także zabezpieczać programistę przez pewnymi błędami.



Krotka może mieć tylko jedną składową; zapis wygląda nieco zaskakująco:

Kod:

t = (12,)

Są funkcje do konwersji listy na krotkę i vice versa: ale uwaga, nie zmieniają one obiektu na którym działają, lecz zwracają nowy:

Kod:

li = [2, 7, -3.5]

tu = tuple(li)

type(li)

type(tu)

Wypróbuj analogicznie funkcję list().



Przy okazji: listę możemy posortować (zmienia się bieżący obiekt), a krotki nie:

Kod:

li.sort()   # wyświetl teraz li

tu.sort()  # AttributeError: 'tuple' object has no attribute 'sort'

Funkcje max, min i sum natomiast działają na krotkach i listach:

Kod:

print max(tu)

print max(li[:-1])

print sum((4, 1, 12))  # podwójne nawiasy: wewnętrzne wskazują, że argumentem jest krotka

http://img208.imageshack.us/img208/623/mnd1.jpg
http://images.cooltext.com/3860851.png

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi

[ Generated in 0.074 seconds, 8 queries executed ]


Darmowe Forum | Ciekawe Fora | Darmowe Fora
www.djronnie.pun.pl www.chemiaumcs.pun.pl www.akatsukifreinds.pun.pl www.sgaming.pun.pl www.talesofshinobi.pun.pl