Podstawy programowania w Pythonie
Transkrypt
Podstawy programowania w Pythonie
Podstawy programowania w Pythonie Wykład 8 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Cz˛estochowie 5 grudnia 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 05.12.2012 1 / 17 Podstawy jezyka ˛ Python Krotki Krotka (ang. tuple) to struktura danych bed ˛ aca ˛ odzwierciedleniem matematycznej n-ki, tj. uporzadkowanego ˛ ciagu ˛ wartości. Elementy krotki nie musza˛ być tego samego typu. Krotki sa˛ niemodyfikowalne, ale ich elementy moga˛ być wartościami typów modyfikowalnych. Odczyt elementu krotki wymaga podania indeksu liczbowego żadanego ˛ elementu. Przykłady >>> t = () >>> t = (6,) dr Andrzej Zbrzezny (IMI AJD) # krotka pusta # krotka jednoelementowa Podstawy programowania w Pythonie 05.12.2012 2 / 17 Podstawy jezyka ˛ Python – krotki Przykłady >>> anais = "Anais Nin", 1903 anais (’Anais Nin’, 1903) >>> anais[0] ’Anais Nin’ >>> anais[1] 1903 >>> # Pakowanie >>> an = ("Anais", "Nin", 1903, "pisarka", "Delta Wenus") >>> an[2] 1903 # Rozpakowanie >>> imie, nazwisko, rok_ur, profesja, ksiazka = an >>> profesja ’pisarka’ dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 05.12.2012 3 / 17 Podstawy jezyka ˛ Python Funkcje zwracajace ˛ krotki Funkcja może zawsze zwrócić tylko jedna˛ wartość, ale poprzez zgrupowanie dowolnie wielu wartości w krotk˛e, może zwrócić ja˛ jako pojedyncza˛ wartość. import math def main(): r = float(input("Podaj promień koła: ")) op = obwod_i_pole(r) print(op[0], op[1]) def obwod_i_pole(r): obwod = 2 * math.pi * r pole = math.pi * r * r return (obwod, pole) dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 05.12.2012 4 / 17 Podstawy jezyka ˛ Python Listy Istnieje w Pythonie pewna liczba złożonych typów danych, używanych do grupowania innych wartości. Najbardziej użytecznym typem jest lista, która˛ można zapisać jako liste˛ elementów poprzedzielanych przecinkami, umieszczona˛ w kwadratowych nawiasach. Elementy listy nie musza˛ być tego samego typu. Przykład >>> a = ['spam', 'eggs', 6, 123] >>> a ['spam', 'eggs', 6, 123] dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 05.12.2012 5 / 17 Podstawy jezyka ˛ Python Listy Podobnie jak indeksy łańcuchów znaków, indeksy listy rozpoczynaja˛ sie˛ od wartości 0. Przykład >>> a = ['spam', 'eggs', 6, 123] >>> a[0] 'spam' >>> a[3] 123 >>> a[-2] 6 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 05.12.2012 6 / 17 Podstawy jezyka ˛ Python Listy Listy moga˛ być przedmiotem operacji wykrawania, sklejania itd. Przykład >>> a = ['spam', 'eggs', 6, 123] >>> a[1:-1] ['eggs', 6] >>> a[:2] + ['bacon', 2 * 2] ['spam', 'eggs', 'bacon', 4] >>> 2 * a[:3] + ['hi!'] ['spam', 'eggs', 6, 'spam', 'eggs', 6, 'hi!'] dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 05.12.2012 7 / 17 Podstawy jezyka ˛ Python Listy Odmiennie niż w przypadku napisów, które sa˛ niezmienne, można zmieniać poszczególne elementy listy. Przykład >>> a = ['spam', 'eggs', 6, 123] >>> a[2] = a[2] + 23 >>> a ['spam', 'eggs', 29, 123] dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 05.12.2012 8 / 17 Podstawy jezyka ˛ Python Listy Możliwe jest także przypisanie do wycinka, co może zmienić długość listy. Przykład >>> >>> ... >>> [1, >>> ... >>> [6, a = ['spam', 'eggs', 6, 123] # Zastap ˛ pewne elementy: a[0:2] = [1, 12] a 12, 6, 123] # Usuń pewne elementy: a[0:2] = [] a 123] dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 05.12.2012 9 / 17 Podstawy jezyka ˛ Python Przykład (dokończenie) >>> [6, >>> ... >>> [6, >>> ... >>> [6, >>> ... >>> [] a 123] # Wstaw pewne elementy: a[1:1] = ['ab ', 'xy '] a 'ab ', 'xy ', 123] # Wstaw kopi˛ e siebie na poczatek: ˛ a[:0] = a a 'ab ', 'xy ', 123, 6, 'ab ', 'xy ', 123] # Wyczyść list˛ e: a[:] = [] a dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 05.12.2012 10 / 17 Podstawy jezyka ˛ Python Listy Wbudowana funkcja len może być stosowana także do list. Przykład >>> a = ["spam", "eggs", 6, 123] >>> a ['spam', 'eggs', 6, 123] >>> len(a) 4 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 05.12.2012 11 / 17 Podstawy jezyka ˛ Python Listy Możliwe jest zagnieżdżanie list, tzn. tworzenie list, których elementami sa˛ inne listy. Przykład >>> >>> >>> [1, >>> 3 >>> [2, >>> 2 b = [2, 3] a = [1, b, 4] a [2, 3], 4] len(a) a[1] 3] a[1][0] dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 05.12.2012 12 / 17 Podstawy jezyka ˛ Python Listy Można dodać dowolny element na końcu listy przy pomocy metody append. Przykład >>> b = [2, 3] >>> a = [1, b, 4] >>> a [1, [2, 3], 4] >>> a[1].append('dodany') >>> a [1, [2, 3, 'dodany'], 4] >>> b [2, 3, 'dodany'] >>> a[1] \IS\ b True dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 05.12.2012 13 / 17 Podstawy jezyka ˛ Python Listy Można usunać ˛ element listy o podanym indeksie, jak również wycinek listy, przy pomocy instrukcji del. Przykład >>> a = [-1, 1, 66.25, 333, 333, 1234.5] >>> del a[0] >>> a [1, 66.25, 333, 333, 1234.5] >>> del a[2:4] >>> a 1, 66.25, 1234.5] >>> del a[:] >>> a [] dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 05.12.2012 14 / 17 Podstawy jezyka ˛ Python– napisy Wybrane metody klasy str partition(sep) Dzieli łańcuch znaków w miejscu pierwszego wystapieniu ˛ separatora sep i zwraca trójelementowa˛ krotk˛e zawierajac ˛ a˛ cz˛eść przed separatorem, separator, oraz cz˛eść po separatorze. Jeżeli separator nie zostanie znaleziony, zwraca trójelementowa˛ krotk˛e zawierajac ˛ a˛ cały łańcuch jako pierwsza˛ składowa˛ krotki oraz dwa ciagi ˛ puste jako pozostałe składowe krotki. split(sep = None, maxsplit = -1) Zwraca liste˛ słów w łańcuchu, używajac ˛ separatora set jako ogranicznika. Jeżeli został podany argument maxsplit, wynikowa lista bedzie ˛ mieć co najwyżej maxsplit + 1 elementów. Jeżeli argument maxsplit nie jest określony, lub równy -1, to nie ma limitu na liczbe˛ podziałów. dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 05.12.2012 15 / 17 Podstawy jezyka ˛ Python– napisy Dodatkowe uwagi o argumencie sep metody split 1 Jeżeli podano argument sep, to kolejne jego wystapienia ˛ w łańcuchu nie sa˛ grupowane razem i uważa sie, ˛ że oddzielaja˛ one puste łańcuchy. 2 Jeśli argument sep nie jest określony lub jego wartość jest równa None, to stosowany jest inny algorytm podziału: sasiaduj ˛ ace ˛ białe znaki sa˛ traktowane jako jeden separator, a wynik podziału nie bedzie ˛ zawierać pustych ciagów ˛ 3 W konsekwencji, podział ciagu ˛ pustego lub ciag ˛ składajacego ˛ sie˛ tylko z białych znaków da w wyniku liste˛ pusta. ˛ dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 05.12.2012 16 / 17 Podstawy jezyka ˛ Python Przykład >>> "".split(",") [’’] >>> "".split() [] >>> s = "Ala ma kota, który łowi \tmyszy" print(s) Ala ma kota, który łowi myszy >>> s.split() [’Ala’, ’ma’, ’kota,’, ’który’, ’łowi’, ’myszy’] >>> s.split(",") [’Ala ma kota’, ’ który łowi \tmyszy’] >>> s.split("ma") [’Ala ’, ’ kota, który łowi \tmyszy’] dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania w Pythonie 05.12.2012 17 / 17