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