[ Pobierz całość w formacie PDF ]
.Zauważ inteligentneużycie cudzysłowów:["What's", 'my', 'name?', '"Grumby."']Pusty łańcuch, "", jest wartościowany do logicznego fałszu.Wszystkie inne łańcuchy sąwartościowane do logicznej prawdy.WielokrotkiWielokrotki (albo n-tki lub entki) (ang.tuples n-elementowe grupki), są jak niezmienne listy.Jeśli już raz zostały utworzone, to ich elementy najwyższego poziomu nie mogą być zmienione wpierwotnym położeniu.Wielokrotki są tworzone z pomocą operatora przecinka oraz zwykle (takjest zalecane) objęte nawiasami okrągłymi:>>> i = 5, "hello", 0.2>>> j = () # nawiasy okrągłe są wymagane dla pustej wielokrotki>>> k = (1,) # końcowy przecinek jest wymagany dla wielokrotki zpojedynczym elementem>>> print i, j, k(5, 'hello', 0.2) () (1,)Wielokrotki są ściśle niezmienne, jeśli zawierają tylko niezmienne elementy.Wielokrotka, którazawiera listę, nie jest ściśle niezmienna.Pusta wielokrotka, (), jest wartościowana do logicznego fałszu.Wszystkie inne wielokrotkiwartościują się do logicznej prawdy.SłownikiSłownik (ang.dictionary) jest odwzorowaniem: to struktura danych, która przyporządkowujeklucze wartościom, podobnie jak tablice asocjacyjne (zwane czasem haszami) w języku Awk lubPerl.Klucze słownika muszą być ściśle niezmiennymi typami danych (to jeden z powodów dlaktórych są wielokrotki i niezmienne łańcuchy!) ich wartości mogą być czymkolwiek.Słownikisą tworzone poprzez objęcie parami nawiasów klamrowych, oddzielonych przecinkami par'klucz':'wartość':>>> m = {'name':'Arthur, King of the Britons',.'quest':'To seek the Holy Grail'}Słowniki są indeksowane poprzez wartości klucza:>>> m ['name']'Arthur, King of the Britons'>>> m ['favourite colour'] = 'green' # tworzenie nowego klucza>>> m{'quest': 'To seek the Holy Grail', 'name': 'Arthur, King of Britons','favourite colour': 'green'}Słowniki pysznią się własnym zestawem metod:>>> m.has_key('quest') # test na istnienie klucza1>>> # tak samo jak m['name'], ale zwraca None jeśli klucz nieistnieje>>> m.get('name')'Arthur, King of Britons'>>> m.get('kids') # zwraca None, ponieważ klucz 'kids' nie istnieje>>> m.get('kids', 0) # domyślna wartość zwrócona: 0>>> m.items() # zwraca listę wielokrotek (klucz, wartość)[('quest', 'To seek the Holy Grail'), ('name', 'Arthur, King ofBritons'), ('favourite colour': 'green')]>>> m.keys() # zwraca listę kluczy (w losowym porządku)['quest', 'name', 'favourite colour']>>> m.values() # zwraca listę wartości (w losowym porządku)['To seek the Holy Grail', 'Arthur, King of Britons', 'green']>>> m.update({'hometown':'Camelot', 'wife':'Guinevere']>>> m{'favourite colour': 'green', 'hometown': 'Camelot','wife':'Guinevere', 'name': 'Arthur, King of Britons', 'quest': 'Toseek the Holy Grail'}>>> n = m.copy() # robi powierzchowną kopię>>> n{'name', 'Arthur, King of Britons', 'favourite colour': 'green','quest', 'To seek the Holy Grail'}>>> del n['name'] # usuwa jeden element>>> n{'quest': 'To seek the Holy Grail', 'favourite colour': 'green'}>>> n.clear() # wymazuje słownik>>> n{}Wpisy w słownikach są dowolnie uporządkowane.Jednakże, jeśli metody keys, values i itemssą wywołane bez żadnych ingerencji modyfikujących słownik, to uporządkowanie ich wynikówbędzie skorelowane.Pusty słownik, {}, jest wartościowany do logicznego fałszu.Wszystkie inne słownikiwartościowane do logicznej prawdy.ZmienneZmienne Pythona są to po prostu nazwy powiązane z obiektami, podobnie jak wskazniki w językuC, lub odsyłacze w Java lub C++.Ale w Pythonie, wszystkie zmienne są nazwami, zatem nie mapotrzeby wyraznego tworzenia odsyłaczy ani wyłuskiwania (ang.dereferencing).Przypisywaniejednej zmiennej do innej oznacza po prostu powiązanie obu nazw z tym samym obiektu.Jeśliobiekt jest zmienny, zmiana w pierwotnym miejscu jednej zmiennej wpłynie także na drugązmienną:>>> a = ["one", "two", "three"]>>> b = a # teraz a i b odnoszą się do tego samego obiektu>>> b[1] = "deux" # zatem zmiana b w pierwotnym położeniu>>> a #.także zmieni a:['one', 'deux', 'three']Składnia struktury blokowejWyróżniającą cechą składni Pythona jest wykorzystanie wcięć dla zagnieżdżenia bloku kodu.Jestto cecha, do której z początku programiści odnoszą się z niechęcią, ale jest bardzo łatwa doopanowania i szybko staje się nawykiem [ Pobierz całość w formacie PDF ]