R12192efrJ5bH
Grafika przedstawia dwa splecione symbole węży. Jeden jest niebieski, a drugi żółty.

Czym są słowniki, krotki i zbiory?

Logo języka Python
Źródło: Dnu72, dostępny w internecie: commons.wikimedia.org, licencja: CC BY-SA 4.0.

Zmienną nazywamy pojemnik na dane. Do rozwiązywania prostych problemów wystarczają zmienne, które przechowują pojedyncze wartości podstawowych typów, np. liczby albo wartości logiczne. Bardziej rozbudowane zadania wymagają jednak pobrania i zapamiętania wielu wartości, często różnych typów. Wtedy potrzebujemy złożonych typów danych. W języku Python mamy do dyspozycji listy, krotki, słowniki oraz zbiory. Wszystkie wymienione typy ułatwiają gromadzenie i analizę danych.

Aby zrozumieć poruszane w tym materiale zagadnienia, przypomnij sobie:
Twoje cele
  • Obliczysz średnią ocen zapisanych przy użyciu krotki.

  • Użyjesz słownika do zapamiętania znaczeń wyrazów.

  • Dzięki operacjom na zbiorach znajdziesz liczbę trafionych liczb.

1

Średnia ocen

Zapewne wiele razy zdarzyło ci się liczyć średnią twoich ocen. Zastanówmy się, jak napisać program, który wykona to zadanie. Zacznijmy od czegoś prostego.

Do pisania programu możesz użyć środowiska IDLE.

Przykład 1

Skopiuj zaprezentowany kod, wklej do pustego pliku i zapisz pod nazwą oceny_abc.py.

Linia 1. ocena podkreślnik 1 znak równości 3. Linia 2. ocena podkreślnik 2 znak równości 4. Linia 3. ocena podkreślnik 3 znak równości 5. Linia 5. suma znak równości ocena podkreślnik 1 plus ocena podkreślnik 2 plus ocena podkreślnik 3. Linia 6. srednia znak równości suma prawy ukośnik 3. Linia 7. print otwórz nawias okrągły cudzysłów Średnia ocen dwukropek cudzysłów przecinek srednia zamknij nawias okrągły.
Polecenie 1
R4ivtpezdrOEF
Źródło: GroMar Sp. z o. o., licencja: CC BY-SA 3.0.

Wyciągnijmy wnioski. Program jest mało funkcjonalny, co wynika głównie z użycia osobnych zmiennych dla każdej oceny i ustawienia ich wartości na stałe. Jeżeli chcemy mieć możliwość podawania dowolnej liczby ocen, musimy skorzystać z takiego pojemnika na dane, który potrafi przechowywać wiele wartości. Jednym ze złożonych typów danychzłożony typ danychzłożonych typów danych, który możemy wykorzystać w języku Python, jest krotka (ang. tuple).

Krotka to podobna do listy struktura danychstruktura danychstruktura danych, która służy do przechowywania uporządkowanego ciągu wartości w kolejności ich wpisania, czyli inaczej sekwencjisekwencjasekwencji wartości. W języku Python elementami krotek mogą być dane różnego typu, np. liczby i ciągi znakowe. Pozycję elementu w krotce określa tzw. indeks. Pierwszy element krotki ma indeks 0, drugi 1 itd. Do elementów krotki możemy się odwoływać, korzystając z indeksów.

Zaprezentujmy to na przykładzie. Dana jest krotka oceny.

Linia 1. oceny znak równości otwórz nawias okrągły 3 przecinek 4 przecinek 5 zamknij nawias okrągły.

By odwołać się do elementu krotki o indeksie 2 i przypisać jego wartość nowej zmiennej wybrana_ocena, użyjemy instrukcji:

Linia 1. oceny znak równości otwórz nawias okrągły 3 przecinek 4 przecinek 5 zamknij nawias okrągły. Linia 2. wybrana podkreślnik ocena znak równości oceny otwórz nawias kwadratowy 2 zamknij nawias kwadratowy. Linia 4. print otwórz nawias okrągły wybrana podkreślnik ocena zamknij nawias okrągły.

Użyjmy krotki w programie.

Przykład 2

Plik oceny_abc.py zapisz pod nazwą oceny_krotka.py. Zmień kod na podany niżej.

Linia 1. kratka Zapisujemy oceny w krotce. Linia 2. oceny znak równości otwórz nawias okrągły 3 przecinek 4 przecinek 5 zamknij nawias okrągły. Linia 4. srednia znak równości sum otwórz nawias okrągły oceny zamknij nawias okrągły prawy ukośnik len otwórz nawias okrągły oceny zamknij nawias okrągły. Linia 5. print otwórz nawias okrągły cudzysłów Średnia ocen dwukropek cudzysłów przecinek srednia zamknij nawias okrągły.

Zastosowanie krotki oceny() pozwala podać dowolną liczbę ocen wejściowych. Dzięki funkcji sum() łatwo sumujemy wartości liczbowe zapisane w krotce, a funkcja len() zwraca nam liczbę jej elementów. Jak widać, krotka upraszcza rozwiązywanie zadań wymagających przechowywania wielu danych.

Ważne!

W języku Python zawartości krotek nie można zmieniać. Gdybyśmy chcieli pobierać oceny od użytkownika, musielibyśmy użyć listy, np.: oceny = [3, 4, 5].

Jak zapamiętać znaczenia wyrazu?

Kiedy zaglądamy do słownika języka obcego, na początku szukamy wyrazu obcego, a później odczytujemy odpowiadające mu znaczenia. Podobnie zbudowane są słowniki rozumiane jako struktury danych. Zawierają one klucze i odpowiadające im wartości. Relację między kluczem i wskazywaną wartością nazywamy odwzorowaniem (ang. mapping). Klucze pełnią podobną rolę jak indeksy w sekwencjach (listach i krotkach), ale słowniki to typ niesekwencyjny.

Od wersji 3.7 Pythona porządek dodawania kluczy i wartości do słownika jest zapamiętywany.

Napiszmy prosty program, który będzie pozwalał sprawdzać znaczenia obcych wyrazów. Jego najważniejszą częścią będzie baza słów, wykorzystamy słownik.

Przykład 3

Kopiujemy poniższy kod, wklejamy do pustego pliku i zapisujemy pod nazwą slownik_wyrazow.py.

Linia 1. wyrazy znak równości otwórz nawias klamrowy. Linia 2. apostrof go apostrof dwukropek otwórz nawias kwadratowy apostrof iść apostrof przecinek apostrof pójść apostrof przecinek apostrof chodzić apostrof zamknij nawias kwadratowy przecinek. Linia 3. apostrof see apostrof dwukropek otwórz nawias kwadratowy apostrof zobaczyć apostrof przecinek apostrof widzieć apostrof przecinek apostrof ujrzeć apostrof zamknij nawias kwadratowy przecinek. Linia 4. zamknij nawias klamrowy. Linia 5. otwórz nawias ostrokątny code style znak równości cudzysłów white minus space dwukropek pre średnik cudzysłów data minus inline zamknij nawias ostrokątny otwórz nawias ostrokątny prawy ukośnik code zamknij nawias ostrokątny.

Kluczami w naszym słowniku są ciągi znaków 'go', 'see', a wartości (znaczenia wyrazów), na które wskazują klucze, zapisane zostały w listach. Symbolem relacji między kluczem i wartością jest dwukropek.

Kluczami w słowniku mogą być napisy, liczby czy krotki. Klucze nie mogą się powtarzać. Wartościami mogą być ciągi znaków, liczby, listy, krotki czy słowniki.

1
Polecenie 2

Do pliku slownik_wyrazow.py dopisz podany kod:

Linia 1. wyraz znak równości input otwórz nawias okrągły apostrof Podaj wyraz obcy dwukropek apostrof zamknij nawias okrągły. Linia 3. print otwórz nawias okrągły cudzysłów Znaczenia wyrazu cudzysłów przecinek wyraz przecinek cudzysłów to dwukropek cudzysłów zamknij nawias okrągły. Linia 4. print otwórz nawias okrągły asterysk wyrazy otwórz nawias kwadratowy wyraz zamknij nawias kwadratowy zamknij nawias okrągły.

Skopiuj swój kod i umieść go tutaj:

R1GptLgNGRS7Z

Po pobraniu wyrazu obcego od użytkownika chcemy wydrukować jego znaczenia zapisane w słowniku. Odczytywanie danych ze słownika polega na podaniu jego nazwy i klucza w nawiasach kwadratowych, np. wyrazy[wyraz].

Symbol * (gwiazdki) w instrukcji print() jest opcjonalny, pozwala wydrukować elementy listy jako napisy oddzielone spacjami.

1
Polecenie 3
RnKw6k5Tn9UIC
Wymyśl pytanie na kartkówkę związane z tematem materiału.

Jeżeli po uruchomieniu programu podamy wyraz, który w słowniku nie występuje, zobaczymy komunikat błędu KeyError. Spróbujmy to poprawić. Drukowanie znaczenia wyrazu poprzedzimy sprawdzeniem, czy podany wyraz jest kluczem w słowniku. Posłuży nam do tego wyrażenie wyraz in wyrazy, które interpretujemy jako sprawdzenie, czy wyraz jest kluczem w słowniku wyrazy. Wartością tego wyrażenia jest prawda (True) albo fałsz (False), możemy więc użyć go w instrukcji warunkowej.

Operator in może być używany również w odniesieniu do list, krotek czy zbiorów. Pozwala sprawdzić, czy podany element należy do danej struktury. W dalszej części materiału znajdziesz kolejne przykłady.

1
Polecenie 4

W programie slownik_wyrazow.py dodaj instrukcję warunkową sprawdzającą, czy podany wyraz jest kluczem w słowniku. Jeżeli tak, wydrukuj jego znaczenia, w przeciwnym razie komunikat Brak wyrazu w słowniku.

Wskazówka: użyj instrukcji if wyraz in wyrazy: ... else ...

Zwróć uwagę na poprawne wcięcia.

Skopiuj swój kod i umieść go tutaj:

RGTFiurvh8xos
1
Polecenie 5
RJJa1uis0HSIl
Wymyśl pytanie na kartkówkę związane z tematem materiału.

Ile liczb udało mi się trafić?

Znasz zapewne gry liczbowe polegające na odgadywaniu wylosowanych wcześniej liczb. Napiszemy program, który będzie sprawdzał, ile liczb spośród wylosowanych udało się odgadnąć.

1
Polecenie 6

Skopiuj zaprezentowany kod, wklej go do pustego pliku i zapisz pod nazwą ile_trafionych.py.

Linia 1. wylosowane podkreślnik liczby znak równości otwórz nawias okrągły 5 przecinek 7 przecinek 1 przecinek 3 zamknij nawias okrągły. Linia 2. moje podkreślnik typy znak równości otwórz nawias okrągły 3 przecinek 9 przecinek 1 zamknij nawias okrągły. Linia 4. ile podkreślnik trafionych znak równości 0. Linia 6. if moje podkreślnik typy otwórz nawias kwadratowy 0 zamknij nawias kwadratowy in wylosowane podkreślnik liczby dwukropek. Linia 7. ile podkreślnik trafionych znak równości ile podkreślnik trafionych plus 1. Linia 8. if moje podkreślnik typy otwórz nawias kwadratowy 1 zamknij nawias kwadratowy in wylosowane podkreślnik liczby dwukropek. Linia 9. ile podkreślnik trafionych znak równości ile podkreślnik trafionych plus 1. Linia 10. if moje podkreślnik typy otwórz nawias kwadratowy 2 zamknij nawias kwadratowy in wylosowane podkreślnik liczby dwukropek. Linia 11. ile podkreślnik trafionych znak równości ile podkreślnik trafionych plus 1. Linia 13. print otwórz nawias okrągły cudzysłów Liczba trafionych dwukropek cudzysłów przecinek ile podkreślnik trafionych zamknij nawias okrągły.

W programie używamy krotek do zapisania wylosowanych liczb oraz typowanych liczb. Elementy krotek, podobnie jak i list, możemy wskazywać za pomocą indeksów. Instrukcja warunkowa if moje_typy[0] in wylosowane_liczby: sprawdza, czy pierwsza liczba z krotki moje_typy znajduje się w krotce wylosowane_liczby. Dwie kolejne instrukcje robią to samo dla kolejnych typów i zwiększają zmienną ile_trafionych dla każdego trafienia.

1
Polecenie 7
R3QT03fAlDd6Q
Wymyśl pytanie na kartkówkę związane z tematem materiału.

Ręczne podawanie indeksów kolejnych typów oraz powtarzanie instrukcji warunkowych nie jest dobrym sposobem zliczania poprawnych typów. Do ulepszenia programu moglibyśmy użyć pętli, ale jeszcze szybciej uzyskamy wynik za pomocą operacji na zbiorach.

Zbiory zawierają niepowtarzające się elementy. Mogą to być liczby, ciągi znaków i inne typy danych. Struktury te nie zapisują pozycji dodawanych elementów, więc nie obsługują indeksacji.

1
Polecenie 8

Program ile_trafionych.py zapisz pod nazwą zbior_trafionych.py

Pozostaw w programie krotki z danymi, pozostały kod zastąp poniższym:

Linia 1. ile podkreślnik trafionych znak równości set otwórz nawias okrągły wylosowane podkreślnik liczby zamknij nawias okrągły ampersant set otwórz nawias okrągły moje podkreślnik typy zamknij nawias okrągły. Linia 2. print otwórz nawias okrągły cudzysłów Trafiłeś dwukropek cudzysłów przecinek len otwórz nawias okrągły ile podkreślnik trafionych zamknij nawias okrągły zamknij nawias okrągły.

Skopiuj swój kod i umieść go tutaj:

RtIAVG0uaWvwo

Polecenie set() przekształca podaną krotkę lub listę na zbiór, jednocześnie eliminuje ewentualne powtarzające się wartości. Operator & oznacza operację wyznaczania części wspólnej dwóch (lub więcej) zbiorów. W naszym wypadku otrzymamy zbiór zawierający liczby występujące w obydwu krotkach: {3, 1}. Funkcja len() – podobnie jak wypadku list i krotek – zwraca nam liczbę elementów w zbiorze.

1
Polecenie 9
R1JqzbO0ksTiD
Wymyśl pytanie na kartkówkę związane z tematem materiału.

Notatnik

R1DYMowiO2rTn
Miejsce na Twoje notatki: (Uzupełnij).
2

Prezentacja multimedialna

1
ReBxwkXD0WEdv

Krotki, słowniki i zbiory – złożone typy danych

RqifosjrbiPSx
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
RlZxsdDCSpQRj

Zmienne z jedną wartością

RpeCymjRC1oXp
Źródło: Pixabay, domena publiczna.
1,1
  • W prostych zmiennych możemy zapisać tylko pojedyncze wartości.

  • Kiedy chcemy zapamiętać nowe dane, musimy tworzyć nowe zmienne.

  • Związek między pojedynczymi wartościami nie jest oczywisty.

Przykładowe zmienne typu prostego, które przechowują jedną wartość:

Linia 1. bok1 znak równości 3. Linia 2. bok2 znak równości 4. Linia 3. bok3 znak równości 5. Linia 4. obwod znak równości bok1 plus bok2 plus bok3. Linia 5. imie znak równości cudzysłów Jan cudzysłów. Linia 6. nazwisko znak równości cudzysłów Dobry cudzysłów. Linia 7. ocena znak równości 3.
R1WsEkq8kSzhR

Typy złożone

Dzięki typom złożonym możemy zapisywać wiele wartości w jednym nazwanym pojemniku, czyli w strukturze danych.

Przykłady typów złożonych w języku Python:

  • listy;

  • krotki;

  • słowniki;

  • zbiory.

Poszczególne typy różnią się od siebie. W tym e‑materiale omawiamy trzy z nich: krotki, słowniki oraz zbiory.

R1EoiHypncOQK

Krotki

Struktura krotki:

Linia 1. krotka znak równości otwórz nawias okrągły x przecinek y przecinek z zamknij nawias okrągły.

ID

Imię

Nazwisko

Ocena

1

Anna 

Kowalska 

 4

Piotr 

Nowak 

 5

Jan 

Dobry 

 3

1,1

Przykładowy kod

Uruchom w interpreterze języka Python:

Linia 1. kratka Tworzenie krotek. Linia 2. osoba1 znak równości otwórz nawias okrągły 1 przecinek apostrof Anna apostrof przecinek apostrof Kowalska apostrof przecinek 4 zamknij nawias okrągły. Linia 3. osoba2 znak równości tuple otwórz nawias okrągły otwórz nawias kwadratowy 2 przecinek apostrof Piotr apostrof przecinek apostrof Nowak apostrof przecinek 5 zamknij nawias kwadratowy zamknij nawias okrągły. Linia 4. dane znak równości otwórz nawias kwadratowy apostrof 3 apostrof przecinek apostrof Jan apostrof przecinek apostrof Dobry apostrof przecinek apostrof 3 apostrof zamknij nawias kwadratowy. Linia 5. osoba3 znak równości tuple otwórz nawias okrągły dane zamknij nawias okrągły. Linia 7. kratka Odczytywanie wartości. Linia 8. print otwórz nawias okrągły osoba1 otwórz nawias kwadratowy 1 zamknij nawias kwadratowy przecinek osoba1 otwórz nawias kwadratowy 2 zamknij nawias kwadratowy przecinek osoba3 otwórz nawias kwadratowy 3 zamknij nawias kwadratowy zamknij nawias okrągły. Linia 10. kratka Modyfikacja elementu listy. Linia 11. dane otwórz nawias kwadratowy 1 zamknij nawias kwadratowy znak równości apostrof Adam apostrof. Linia 12. print otwórz nawias okrągły dane zamknij nawias okrągły. Linia 14. kratka Modyfikacja elementu krotki daje błąd. Linia 15. osoba3 otwórz nawias kwadratowy 0 zamknij nawias kwadratowy znak równości apostrof Ola apostrof.

Charakterystyka

  • Krotki to niemodyfikowalny typ danych. Raz stworzona krotka nie może zmieniać swojej zawartości, nie da się do niej dodawać elementów ani ich usuwać.

  • Do zawartości krotek można odwoływać się, wykorzystując indeksy.

  • Możemy iterować po zawartości krotki, wykorzystując pętlę.

  • Elementy krotki mogą być różnego typu.

RR6yzQHqlBFUr

Zastosowanie krotek

Uruchom w interpreterze języka Python:

Rlf3hlux4saKy
Film nawiązujący do treści materiału

Kod zaprezentowany w filmie:

Linia 1. boki podkreślnik trojkata znak równości otwórz nawias okrągły 3 przecinek 4 przecinek 5 zamknij nawias okrągły. Linia 2. oceny znak równości otwórz nawias okrągły 4 przecinek 5 przecinek 3 przecinek 4 przecinek 4 przecinek 4 zamknij nawias okrągły. Linia 4. oceny kropka count otwórz nawias okrągły 4 zamknij nawias okrągły. Linia 6. oceny kropka count otwórz nawias okrągły 5 zamknij nawias okrągły. Linia 8. obwod podkreślnik trojkata znak równości sum otwórz nawias okrągły boki podkreślnik trojkata zamknij nawias okrągły. Linia 10. len otwórz nawias okrągły oceny zamknij nawias okrągły. Linia 12. max otwórz nawias okrągły oceny zamknij nawias okrągły. Linia 14. min otwórz nawias okrągły oceny zamknij nawias okrągły.

Skrypt, który możesz wpisać i uruchomić:

Linia 1. boki podkreślnik trojkata znak równości otwórz nawias okrągły 3 przecinek 4 przecinek 5 zamknij nawias okrągły. Linia 2. oceny znak równości otwórz nawias okrągły 4 przecinek 5 przecinek 3 przecinek 4 przecinek 4 przecinek 4 zamknij nawias okrągły. Linia 4. print otwórz nawias okrągły oceny kropka count otwórz nawias okrągły 4 zamknij nawias okrągły zamknij nawias okrągły. Linia 6. print otwórz nawias okrągły oceny kropka count otwórz nawias okrągły 5 zamknij nawias okrągły zamknij nawias okrągły. Linia 8. obwod podkreślnik trojkata znak równości sum otwórz nawias okrągły boki podkreślnik trojkata zamknij nawias okrągły. Linia 10. print otwórz nawias okrągły obwod podkreślnik trojkata zamknij nawias okrągły. Linia 12. print otwórz nawias okrągły len otwórz nawias okrągły oceny zamknij nawias okrągły zamknij nawias okrągły. Linia 14. print otwórz nawias okrągły max otwórz nawias okrągły oceny zamknij nawias okrągły zamknij nawias okrągły. Linia 16. print otwórz nawias okrągły min otwórz nawias okrągły oceny zamknij nawias okrągły zamknij nawias okrągły.

Wynik działania programu:

Linia 1. 4. Linia 2. 1. Linia 3. 12. Linia 4. 6. Linia 5. 5. Linia 6. 3.
Re9Anc3cxbFZd

Słownik

Przykładem innej struktury złożonej jest słownik.

Struktura słownika:

Linia 1. słownik znak równości otwórz nawias klamrowy klucz dwukropek wartość zamknij nawias klamrowy.

Przykładowy kod

1,1

Uruchom w interpreterze języka Python:

Linia 1. kratka Tworzenie słownika. Linia 2. osoba podkreślnik 1 znak równości otwórz nawias klamrowy apostrof lp apostrof dwukropek 1 przecinek apostrof imie apostrof dwukropek apostrof Anna apostrof przecinek apostrof nazwisko apostrof dwukropek apostrof Kowalska apostrof zamknij nawias klamrowy. Linia 3. osoba podkreślnik 2 znak równości dict otwórz nawias okrągły lp znak równości 2 przecinek imie znak równości apostrof Jan apostrof przecinek nazwisko znak równości apostrof Nowak apostrof zamknij nawias okrągły. Linia 4. osoby znak równości otwórz nawias klamrowy 1 dwukropek osoba podkreślnik 1 przecinek 2 dwukropek osoba podkreślnik 2 zamknij nawias klamrowy. Linia 6. kratka Odczytywanie wartości. Linia 7. print otwórz nawias okrągły osoba podkreślnik 1 otwórz nawias kwadratowy apostrof imie apostrof zamknij nawias kwadratowy zamknij nawias okrągły. Linia 8. print otwórz nawias okrągły osoba podkreślnik 2 kropka get otwórz nawias okrągły apostrof imie apostrof zamknij nawias okrągły zamknij nawias okrągły. Linia 9. print otwórz nawias okrągły osoby otwórz nawias kwadratowy 1 zamknij nawias kwadratowy otwórz nawias kwadratowy apostrof imie apostrof zamknij nawias kwadratowy zamknij nawias okrągły. Linia 10. print otwórz nawias okrągły osoba podkreślnik 1 kropka values otwórz nawias okrągły zamknij nawias okrągły zamknij nawias okrągły. Linia 12. kratka Dodawanie i zmienianie wartości. Linia 13. osoba podkreślnik 2 otwórz nawias kwadratowy apostrof ocena apostrof zamknij nawias kwadratowy znak równości 4. Linia 14. osoba podkreślnik 2 otwórz nawias kwadratowy apostrof imie apostrof zamknij nawias kwadratowy znak równości apostrof Piotr apostrof. Linia 15. osoba podkreślnik 2.

Charakterystyka

  • W słowniku przechowujemy pary elementów (klucze oraz wartości). Są one modyfikowalne.

  • Do wartości znajdujących się w słowniku odwołujemy się za pomocą klucza.

  • Klucze oraz wartości mogą być dowolnego typu.

  • Możliwe jest iterowanie po elementach słownika.

RvjcyRc1wpCMg
RqUCXEeXMWnFh

Zastosowanie słowników

1,1
Uruchom w interpreterze języka Python:
Linia 2. rzymskie znak równości otwórz nawias klamrowy 1 dwukropek apostrof I apostrof przecinek 2 dwukropek apostrof II apostrof przecinek 3 dwukropek apostrof III apostrof zamknij nawias klamrowy. Linia 3. rzymskie otwórz nawias kwadratowy 2 zamknij nawias kwadratowy. Linia 5. kolory znak równości otwórz nawias klamrowy zamknij nawias klamrowy kratka Pusty słownik. Linia 6. kolory otwórz nawias kwadratowy apostrof red apostrof zamknij nawias kwadratowy znak równości apostrof kratka FF0000 apostrof. Linia 7. kolory otwórz nawias kwadratowy apostrof blue apostrof zamknij nawias kwadratowy znak równości apostrof kratka 00FF00 apostrof. Linia 8. kolory otwórz nawias kwadratowy apostrof blue apostrof zamknij nawias kwadratowy. Linia 10. samochod znak równości otwórz nawias klamrowy apostrof nazwa apostrof dwukropek apostrof syrena apostrof przecinek apostrof model apostrof dwukropek apostrof 105 apostrof przecinek apostrof rocznik apostrof dwukropek 1972 zamknij nawias klamrowy. Linia 11. print otwórz nawias okrągły samochod otwórz nawias kwadratowy apostrof nazwa apostrof zamknij nawias kwadratowy przecinek samochod otwórz nawias kwadratowy apostrof model apostrof zamknij nawias kwadratowy zamknij nawias okrągły. Linia 12. samochod kropka get otwórz nawias okrągły apostrof rocznik apostrof zamknij nawias okrągły. Linia 14. list otwórz nawias okrągły kolory zamknij nawias okrągły kratka Zwraca listę kluczy. Linia 15. len otwórz nawias okrągły kolory zamknij nawias okrągły kratka Liczba elementów. Linia 16. del kolory otwórz nawias kwadratowy apostrof blue apostrof zamknij nawias kwadratowy kratka Usunięcie wartości. Linia 17. print otwórz nawias okrągły kolory zamknij nawias okrągły.
R1BKZihIh1R3T
RoqF1JiyeIjOE
1,1

Zbiór

Inną strukturą złożoną jest zbiór.

Struktura zbioru:

Linia 1. zbiór znak równości otwórz nawias klamrowy apostrof a apostrof przecinek apostrof b apostrof przecinek apostrof c apostrof zamknij nawias klamrowy.
R9cb2quX3wqnk
Źródło: Contentplus sp. z o.o., licencja: CC BY 3.0.

Zbiory

1,1
Uruchom w interpreterze języka Python:
Linia 1. kratka Tworzenie zbioru. Linia 2. samogloski znak równości set otwórz nawias okrągły zamknij nawias okrągły. Linia 3. samogloski. Linia 5. unikalne podkreślnik liczby znak równości set otwórz nawias okrągły otwórz nawias kwadratowy 1 przecinek 3 przecinek 3 przecinek 5 przecinek 7 przecinek 9 przecinek 9 zamknij nawias kwadratowy zamknij nawias okrągły. Linia 6. unikalne podkreślnik liczby. Linia 8. unikalne podkreślnik litery znak równości set otwórz nawias okrągły apostrof abrakadabra apostrof zamknij nawias okrągły. Linia 9. unikalne podkreślnik litery. Linia 10. gloski znak równości otwórz nawias klamrowy apostrof b apostrof przecinek apostrof c apostrof przecinek apostrof d apostrof zamknij nawias klamrowy. Linia 12. kratka Wartości w zbiorach nie są indeksowane. Linia 13. print otwórz nawias okrągły gloski otwórz nawias kwadratowy 0 zamknij nawias kwadratowy zamknij nawias okrągły.
R1c1mP8Gp3Sz3
RybXDLM6aVqPz

Zastosowanie zbiorów

1,1
Uruchom w interpreterze języka Python:
Linia 1. pola znak równości otwórz nawias klamrowy apostrof A1 apostrof przecinek apostrof A2 apostrof przecinek apostrof A3 apostrof zamknij nawias klamrowy. Linia 2. zajete znak równości otwórz nawias klamrowy apostrof A2 apostrof przecinek apostrof A3 apostrof zamknij nawias klamrowy. Linia 3. inne znak równości otwórz nawias klamrowy apostrof B1 apostrof przecinek apostrof B2 apostrof przecinek apostrof B3 apostrof zamknij nawias klamrowy. Linia 5. kratka Dodawanie i usuwanie elementów. Linia 6. pola kropka add otwórz nawias okrągły apostrof A4 apostrof zamknij nawias okrągły. Linia 7. print otwórz nawias okrągły pola zamknij nawias okrągły. Linia 8. pola kropka discard otwórz nawias okrągły apostrof A1 apostrof zamknij nawias okrągły. Linia 9. print otwórz nawias okrągły pola zamknij nawias okrągły. Linia 11. kratka Operacje na zbiorach. Linia 12. len otwórz nawias okrągły pola zamknij nawias okrągły kratka Liczba elementów. Linia 13. pola kreska pionowa inne kratka Suma zbiorów. Linia 14. pola ampersant zajete kratka Część wspólna. Linia 15. pola minus zajete kratka Różnica zbiorów.
R1ZXsQFeerjSA
R7GAQggkb1Ano

Krotki, słowniki, zbiory – podobieństwa

1,1

Uruchom w interpreterze języka Python:

Linia 1. krotka znak równości otwórz nawias okrągły 7 przecinek 3 przecinek 5 zamknij nawias okrągły. Linia 2. slownik znak równości otwórz nawias klamrowy 7 dwukropek apostrof g apostrof przecinek 3 dwukropek apostrof c apostrof przecinek 5 dwukropek apostrof e apostrof zamknij nawias klamrowy. Linia 3. zbior znak równości otwórz nawias klamrowy 8 przecinek 4 przecinek 6 przecinek 5 zamknij nawias klamrowy. Linia 5. kratka Liczba elementów. Linia 6. print otwórz nawias okrągły len otwórz nawias okrągły krotka zamknij nawias okrągły przecinek len otwórz nawias okrągły slownik zamknij nawias okrągły przecinek len otwórz nawias okrągły zbior zamknij nawias okrągły zamknij nawias okrągły. Linia 8. kratka Czy w strukturze jest element znak zapytania. Linia 9. 3 in krotka. Linia 10. 4 in zbior. Linia 11. 5 in slownik. Linia 12. 4 in slownik. Linia 14. kratka Suma wartości liczbowych lub kluczy. Linia 15. print otwórz nawias okrągły sum otwórz nawias okrągły krotka zamknij nawias okrągły przecinek sum otwórz nawias okrągły zbior zamknij nawias okrągły przecinek sum otwórz nawias okrągły slownik zamknij nawias okrągły zamknij nawias okrągły. Linia 17. kratka Wartość minimalna i maksymalna. Linia 18. print otwórz nawias okrągły min otwórz nawias okrągły krotka zamknij nawias okrągły przecinek min otwórz nawias okrągły zbior zamknij nawias okrągły przecinek min otwórz nawias okrągły slownik zamknij nawias okrągły zamknij nawias okrągły. Linia 19. print otwórz nawias okrągły max otwórz nawias okrągły krotka zamknij nawias okrągły przecinek max otwórz nawias okrągły zbior zamknij nawias okrągły przecinek max otwórz nawias okrągły slownik zamknij nawias okrągły zamknij nawias okrągły.
RvfMPWyef6BBi
Głośność lektora
Głośność muzyki

mmm

Indeks górny Źródło: Robert Bednarz, licencja: CC BY 3.0. Indeks górny koniec

1
Polecenie 10

Napisz i uruchom program, który sprawdzi, ile jest zer i ile jedynek wśród podanych liczb.

Dane wejściowe:

  • podane liczby: 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1

Wynik:

  • Program wyświetla, ile zer i ile jedynek znajduje się wśród podanych liczb.

Wskazówka: dane zapisz w krotce i użyj metody count.

Rq5olOExTPvVH
Miejsce na Twoje notatki: (Uzupełnij).
1
Polecenie 11

Napisz i uruchom program, który sprawdzi, ile unikalnych samogłosek występuje łącznie w obu podanych wyrazach.

Dane wejściowe:

  • wyrazy do sprawdzenia: walizka, drzwi

Wynik:

  • liczby unikalnych samogłosek występujących łącznie w wyrazach

Wskazówka: wykorzystaj zbiór:

Linia 1. samogloski znak równości otwórz nawias klamrowy apostrof a apostrof przecinek apostrof ą apostrof przecinek apostrof o apostrof przecinek apostrof ó apostrof przecinek apostrof u apostrof przecinek apostrof e apostrof przecinek apostrof ę apostrof przecinek apostrof y apostrof przecinek apostrof i apostrof zamknij nawias klamrowy.

Użyj operacji: wyznaczanie części wspólnej (operator &) oraz sumy zbiorów (operator |)

REDTTB2Nyzg71
Wymyśl pytanie na kartkówkę związane z tematem materiału.
1
Polecenie 12

Napisz i uruchom program, który wyświetli odpowiednie informacje przechowywane w słowniku.

Dane wejściowe:

  • S, small, 42‑44

  • M, medium, 46‑48

  • L, large, 50‑52

Wynik:

  • Program wyświetla informacje przechowywane w podanym miejscu w słowniku (rozmiary['M'][1]).

Wskazówki: zdefiniuj pusty słownik rozmiary. Dodaj za pomocą przypisania slownik[klucz] = wartość informacje o rozmiarach.

Kluczami powinny być literowe oznaczenia rozmiarów. Wartościami powinny być krotki zawierające pozostałe dane związane z rozmiarem.

R1H9ZDx4nHQiS
Wymyśl pytanie na kartkówkę związane z tematem materiału.

Zestaw ćwiczeń interaktywnych

RHYcILWTiVABD
Ćwiczenie 1
Uzupełnij podane zdania.
Ry5Ev7ssMxBCi
Ćwiczenie 2
Połącz w pary {97: 'a', 98: 'b'} Możliwe odpowiedzi: 1. słownik, 2. krotka, 3. zbiór, 4. lista (97, 98) Możliwe odpowiedzi: 1. słownik, 2. krotka, 3. zbiór, 4. lista [97, 98] Możliwe odpowiedzi: 1. słownik, 2. krotka, 3. zbiór, 4. lista {97, 98} Możliwe odpowiedzi: 1. słownik, 2. krotka, 3. zbiór, 4. lista
Źródło: Robert Bednarz, licencja: CC BY 3.0.
RBIxH3ppr3kPk
Ćwiczenie 3
Zaznacz wyrażenia, które tworzą krotkę: Możliwe odpowiedzi: 1. (1), 2. '1', 'I', 3. tuple([[5, 4, '3']]), 4. [5, 4, '3']
Źródło: Robert Bednarz, licencja: CC BY 3.0.
RJXQd4eOEmetW
Ćwiczenie 4
Zaznacz struktury danych, które nie są sekwencjami: Możliwe odpowiedzi: 1. {97: 'a', 98: 'b'}, 2. (97, 98), 3. [97, 98], 4. {97, 98}
Źródło: Robert Bednarz, licencja: CC BY 3.0.
RM6xHAMoEZHuK
Ćwiczenie 5
Mamy następujące dane: znaki = ('+', '-', '+', '.', '.', '!'). Wskaż instrukcje, które pozwolą sprawdzić, ile razy w danych wystąpił znak "+": Możliwe odpowiedzi: 1. znaki.count('+'), 2. len(znaki), 3. set(znaki), 4. znaki.index('+')
Źródło: Robert Bednarz, licencja: CC BY 3.0.
R1Z6rFyTB8oxC
Ćwiczenie 6
Dany jest słownik liczby = {1: 'I', 2: 'II', 3: 'III'}. Zapisz wynik polecenia list(liczby). Pamiętaj o użyciu właściwych nawiasów i oddzieleniu wartości znakiem przecinka i spacji.
R1XbOndNn42IR
Ćwiczenie 7
Wskaż instrukcję, która z następujących danych odczyta wiek Ali. dane = {'ala': {'wiek': 15, 'wzrost': '160'}, 'piotr': {'wiek': 16, 'wzrost': '170'}} Możliwe odpowiedzi: 1. dane['ala'], 2. dane['ala']['wiek'], 3. dane['ala'].wiek, 4. dane.index('ala')
Źródło: Robert Bednarz, licencja: CC BY 3.0.
REi8yUUchgbEV
Ćwiczenie 8
Żeby szybko policzyć z ilu różnych liter składa się podany przez użytkownika wyraz, można użyć instrukcji: Możliwe odpowiedzi: 1. len(set(wyraz)), 2. len(dict(wyraz)), 3. wyraz.count('a'), 4. sum(wyraz)
Źródło: Robert Bednarz, licencja: CC BY 3.0.
1
Ćwiczenie 9
RoG5g7agGouvq
Wysłuchaj fragmentu książki innego filozofa, Oswalda Spenglera, pt. Zmierzch Zachodu (1918). Zastanów się i wyjaśnij tezę, iż cywilizacja jest dopełnieniem i zakończeniem kultury. Jak ma się ona do kryzysu Zachodu? (Uzupełnij).

Słownik

sekwencja
sekwencja

struktura danych zawierająca uporządkowane elementy; w języku Python sekwencjami są: napisy, listy i krotki; kolejność elementów ustalana jest podczas ich dodawania; elementy wskazywane są przez indeksy zaczynające się od zera

struktura danych
struktura danych

sposób przechowywania danych w pamięci komputera; dobór odpowiedniej struktury decyduje o złożoności i wydajności programu

złożony typ danych
złożony typ danych

typ danych pozwalający przechowywać wiele wartości; typy złożone w języku Python to napisy, listy, krotki, słowniki i zbiory

5

Bibliografia

  • Adam Jurkiewicz, Python 3 – Projekty dla początkujących i pasjonatów, Helion, Gliwice 2021,

  • Mark Pilgrim (autor książki Dive into Python), tłumaczenie: Warszk, Piotr Kieć, Roman Frołow, Andrzej Saski, Adam Kubiczek, Krotki, w: Zanurkuj w Pythonie, pl.wikibooks.org/wiki/Zanurkuj_w_Pythonie/Krotki, dostęp 23.02.2024,

  • Mark Pilgrim (autor książki Dive into Python), tłumaczenie: Warszk, Piotr Kieć, Roman Frołow, Andrzej Saski, Adam Kubiczek, Słowniki, w: Zanurkuj w Pythonie, pl.wikibooks.org/wiki/Zanurkuj_w_Pythonie/S%C5%82owniki, dostęp 23.02.2024,

  • Julita Gawełko, Struktury danych w Pythonie #1. Listy i krotki, pogromcykodu.pl/struktury‑danych‑w-pythonie‑listy‑i-krotki/, dostęp 23.02.2024.