Język Python w przeciwieństwie do języka C++ nie udostępnia struktury jako oddzielnej konstrukcji. Jak zatem poradzić sobie z tym problemem?
Odpowiedzią jest użycie innego elementu tego języka, fundamentu programowania obiektowegoprogramowanie obiektoweprogramowania obiektowego – klasy. Pojęcia klasy i obiektowości zostaną szczegółowo omówione w kolejnych e‑materiałach. Do implementacji klasy pełniącej funkcję struktury potrzebujemy jedynie podstawowych informacji.
Wyobraźmy sobie, że chcemy stworzyć program, który będzie przechowywał informacje o ocenach wszystkich uczniów w klasie. Te informacje to:
numer w dzienniku,
imię i nazwisko,
poszczególne oceny z każdego przedmiotu, o ile uczeń ma jakąkolwiek ocenę.
Skupimy się na zdefiniowaniu obiektu, który będzie przechowywał przedstawione informacje. Główną strukturą będzie listalistalista. Tak bowiem najłatwiej jest odwoływać się do jej elementów indeksem numerycznym, identycznym z numerem w dzienniku. Pierwszym elementem listy jest wartość None, ponieważ w klasie nie ma ucznia z numerem 0 w dzienniku.
Linia 1. klasa znak równości otwórz nawias kwadratowy None przecinek dane podkreślnik o podkreślnik uczniu podkreślnik 1 przecinek dane podkreślnik o podkreślnik uczniu podkreślnik 2 przecinek.
Linia 2. dane podkreślnik o podkreślnik uczniu podkreślnik 3 przecinek kropka kropka kropka przecinek dane podkreślnik o podkreślnik uczniu podkreślnik n zamknij nawias kwadratowy.
klasa = [None, dane_o_uczniu_1, dane_o_uczniu_2,
dane_o_uczniu_3, ..., dane_o_uczniu_n]
Ważne!
W języku Python możemy pisać kod programu oraz wartości zmiennych w wielu liniach. Powinniśmy uwzględniać zasady, które zostały spisane w specjalnych dokumentach, jak np.: PEP 8, PEP 484, PEP 526, czy też Google Python Style Guide.
Dane o każdym uczniu muszą zawierać różne informacje osobowe (imię, nazwisko, adres e‑mail do korespondencji) oraz wszystkie oceny ucznia, otrzymane z różnych przedmiotów. Ważne, aby przedmioty pojawiły się wśród danych dopiero wówczas, gdy uczeń otrzyma ocenę.
Do spełnienia takich wymagań nadaje się wbudowany typ danych, jakim jest dict (słowniksłowniksłownik). Zmienna typu dict jest podobna do zwykłego słownika. W nim szukamy wytłumaczenia dla poszukiwanego elementu (np. odpowiednika w języku obcym dla słowa głowa). Szukany element nazywamy kluczem, a jego tłumaczenie – wartością.
Na końcu ostatniej linijki wartości słownika, dla definicji 'klucz_03', jest znak przecinka. Nie ma tam jednak kolejnego elementu. W języku Python nie jest to błąd. Taki zapis pozwala programiście wygodnie dodawać kolejne pozycje.
Do elementów słownika możemy odwoływać się, podobnie jak do elementów listy. Zamiast indeksu numerycznego podajemy wartość klucza, np.:
W języku Python elementy typu list są ułożone wg kolejności ich dodawania, natomiast elementy typu dict występują w losowej kolejności – to interpreter decyduje o ich kolejności, pisząc program, odwołujemy się do nich przez nazwę klucza.
Przykład 1
Spróbujmy zapisać dane o uczniu Adam Jurkiewicz, którego e‑mail to adam.jurkiewicz@brak.domeny.pl. Adam ma oceny z trzech przedmiotów (informatyka, fizyka, język polski). Jego numer w dzienniku to 7, a więc będzie na ósmej pozycji w obiekcie typu list, reprezentującym wszystkich 10 uczniów w klasie 3E.
Linia 1. klasa podkreślnik 3E znak równości otwórz nawias kwadratowy None przecinek None przecinek None przecinek None przecinek None przecinek None przecinek None przecinek None przecinek None przecinek None przecinek None przecinek zamknij nawias kwadratowy.
Linia 3. dane podkreślnik ucznia znak równości otwórz nawias klamrowy.
Linia 4. apostrof imie podkreślnik nazwisko apostrof dwukropek apostrof Adam Jurkiewicz apostrof przecinek.
Linia 5. apostrof email apostrof dwukropek apostrof adam kropka jurkiewicz at brak kropka domeny kropka pl apostrof przecinek.
Linia 6. apostrof informatyka apostrof dwukropek otwórz nawias kwadratowy 4 przecinek 3 zamknij nawias kwadratowy przecinek.
Linia 7. apostrof fizyka apostrof dwukropek otwórz nawias kwadratowy 5 przecinek 6 przecinek 1 zamknij nawias kwadratowy przecinek.
Linia 8. apostrof jezyk podkreślnik polski apostrof dwukropek otwórz nawias kwadratowy 3 przecinek 4 przecinek 4 zamknij nawias kwadratowy przecinek.
Linia 9. zamknij nawias klamrowy.
Linia 11. klasa podkreślnik 3E otwórz nawias kwadratowy 7 zamknij nawias kwadratowy znak równości dane podkreślnik ucznia.
Możemy również sprawdzić, czy uczeń ma jakiekolwiek oceny z danego przedmiotu. Spróbujmy znaleźć w dokumentacji języka Python sposób, aby sprawdzić, czy istnieje w obiekcie typu dict określony klucz.
Linia 1. print otwórz nawias okrągły apostrof matematyka apostrof in klasa podkreślnik 3E otwórz nawias kwadratowy 7 zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 2. False.
Linia 3. print otwórz nawias okrągły apostrof informatyka apostrof in klasa podkreślnik 3E otwórz nawias kwadratowy 7 zamknij nawias kwadratowy zamknij nawias okrągły.
Linia 4. True.
print('matematyka' in klasa_3E[7])
False
print('informatyka' in klasa_3E[7])
True
Program przetwarzający dane
By zaprezentować działanie słownika, stwórzmy program, który będzie wykonywał proste operacje na danych o uczniach. Nazwijmy go: „Elektroniczny dziennik klasowy”. Będzie miał funkcje pozwalające na następujące operacje:
Nazwa funkcji
operacja realizowana przez funkcję
dane wejściowe
dane wyjściowe
dodaj_ocene_uczniowi
dodaje ocenę z przedmiotu; jeśli przedmiot nie istnieje, jest dodawany automatycznie; jeśli uczeń nie istnieje, automatycznie funkcja pyta o imię i nazwisko i zapisuje je
numer w dzienniku, imię i nazwisko ucznia, nazwa przedmiotu, ocena
None
wypisz_oceny
jeśli uczeń istnieje w dzienniku i ma oceny z przedmiotu, są one wyświetlane
numer w dzienniku, przedmiot
oceny lub komunikat „Brak ocen z przedmiotu”
Przykład 2
Niech zapis programu wygląda następująco:
Linia 1. elektroniczny podkreślnik dziennik klasowy.
Linia 2. w pętli wyświetlamy menu z pozycjami dwukropek.
Linia 3. asterysk dodaj dane o uczniu.
Linia 4. asterysk wyświetl dane o uczniu.
Linia 5. asterysk zakończ program.
Linia 7. funkcja dodaj podkreślnik dane podkreślnik o podkreślnik uczniu.
Linia 8. pobieramy nr w dzienniku.
Linia 9. sprawdzamy przecinek czy dla tego nr istnieje imię i nazwisko.
Linia 10. jeśli nie przecinek pobieramy je od użytkownika i dodajemy.
Linia 11. pobieramy nazwę przedmiotu i ocenę.
Linia 12. sprawdzamy przecinek czy dla tego przedmiotu istnieją już jakiekolwiek oceny.
Linia 13. jeśli nie przecinek inicjujemy tablicę ocen dla tego przedmiotu.
Linia 14. dodajemy aktualną ocenę do tablicy ocen.
Linia 16. funkcja pokaz podkreślnik dane podkreślnik o podkreślnik uczniu.
Linia 17. pobieramy nr w dzienniku.
Linia 18. sprawdzamy przecinek czy dla tego nr istnieje imię i nazwisko.
Linia 19. jeśli nie przecinek wypisujemy komunikat dwukropek cudzysłów Brak danych o uczniu o nr dwukropek podkreślnik numer podkreślnik cudzysłów.
Linia 20. pobieramy nazwę przedmiotu.
Linia 21. sprawdzamy przecinek czy dla tego przedmiotu istnieją już jakiekolwiek oceny.
Linia 22. jeśli nie przecinek wypisujemy komunikat dwukropek cudzysłów Brak ocen z przedmiotu dwukropek podkreślnik przedmiot podkreślnik cudzysłów.
Linia 23. wypisujemy na ekranie informację dwukropek cudzysłów Uczeń podkreślnik imie podkreślnik i podkreślnik nazwisko podkreślnik z przedmiotu podkreślnik przedmiot podkreślnik ma oceny dwukropek podkreślnik lista podkreślnik ocen podkreślnik kropka cudzysłów.
elektroniczny_dziennik klasowy
w pętli wyświetlamy menu z pozycjami:
* dodaj dane o uczniu
* wyświetl dane o uczniu
* zakończ program
funkcja dodaj_dane_o_uczniu
pobieramy nr w dzienniku
sprawdzamy, czy dla tego nr istnieje imię i nazwisko
jeśli nie, pobieramy je od użytkownika i dodajemy
pobieramy nazwę przedmiotu i ocenę
sprawdzamy, czy dla tego przedmiotu istnieją już jakiekolwiek oceny
jeśli nie, inicjujemy tablicę ocen dla tego przedmiotu
dodajemy aktualną ocenę do tablicy ocen
funkcja pokaz_dane_o_uczniu
pobieramy nr w dzienniku
sprawdzamy, czy dla tego nr istnieje imię i nazwisko
jeśli nie, wypisujemy komunikat: "Brak danych o uczniu o nr: _numer_"
pobieramy nazwę przedmiotu
sprawdzamy, czy dla tego przedmiotu istnieją już jakiekolwiek oceny
jeśli nie, wypisujemy komunikat: "Brak ocen z przedmiotu: _przedmiot_"
wypisujemy na ekranie informację: "Uczeń _imie_i_nazwisko_ z przedmiotu _przedmiot_ ma oceny: _lista_ocen_."
Przykład 3
Napiszmy program, który grupuje dane wprowadzone do dziennika elektronicznego:
Linia 1. def elektroniczny podkreślnik dziennik podkreślnik klasowy otwórz nawias okrągły zamknij nawias okrągły dwukropek.
Linia 3. ILU podkreślnik UCZNIOW znak równości 31.
Linia 4. PRZEDMIOTY znak równości otwórz nawias kwadratowy cudzysłów matematyka cudzysłów przecinek cudzysłów język polski cudzysłów przecinek cudzysłów informatyka cudzysłów przecinek cudzysłów fizyka cudzysłów zamknij nawias kwadratowy.
Linia 5. KLASA znak równości otwórz nawias kwadratowy None for x in range otwórz nawias okrągły ILU podkreślnik UCZNIOW plus 1 zamknij nawias okrągły zamknij nawias kwadratowy.
Linia 8. def pobierz podkreślnik dane otwórz nawias okrągły zamknij nawias okrągły dwukropek.
Linia 9. nr znak równości input otwórz nawias okrągły cudzysłów Podaj nr w dzienniku dwukropek cudzysłów zamknij nawias okrągły.
Linia 10. if not nr kropka isdigit otwórz nawias okrągły zamknij nawias okrągły dwukropek.
Linia 11. print otwórz nawias okrągły f cudzysłów Podany nr otwórz nawias klamrowy nr zamknij nawias klamrowy nie jest liczbą wykrzyknik cudzysłów zamknij nawias okrągły.
Linia 12. return 0.
Linia 14. nr znak równości int otwórz nawias okrągły nr zamknij nawias okrągły kratka zamieniamy na liczbę.
Linia 16. if nr zamknij nawias ostrokątny ILU podkreślnik UCZNIOW dwukropek.
Linia 17. print otwórz nawias okrągły f cudzysłów Podany nr otwórz nawias klamrowy nr zamknij nawias klamrowy jest większy niż liczba osób w klasie dwukropek otwórz nawias klamrowy ILU podkreślnik UCZNIOW zamknij nawias klamrowy wykrzyknik cudzysłów zamknij nawias okrągły.
Linia 18. return 0.
Linia 20. if KLASA otwórz nawias kwadratowy nr zamknij nawias kwadratowy is None dwukropek.
Linia 21. print otwórz nawias okrągły f cudzysłów Brak danych dla osoby nr otwórz nawias klamrowy nr zamknij nawias klamrowy kropka cudzysłów zamknij nawias okrągły.
Linia 22. if input otwórz nawias okrągły f cudzysłów Podasz dane osoby nr otwórz nawias klamrowy nr zamknij nawias klamrowy otwórz nawias okrągły t prawy ukośnik n zamknij nawias okrągły znak zapytania cudzysłów zamknij nawias okrągły znak równości znak równości cudzysłów t cudzysłów dwukropek.
Linia 23. dane podkreślnik osoby znak równości otwórz nawias klamrowy zamknij nawias klamrowy.
Linia 24. dane podkreślnik osoby otwórz nawias kwadratowy cudzysłów nr cudzysłów zamknij nawias kwadratowy znak równości nr.
Linia 25. dane podkreślnik osoby otwórz nawias kwadratowy cudzysłów imie podkreślnik nazwisko cudzysłów zamknij nawias kwadratowy znak równości input otwórz nawias okrągły cudzysłów Podaj imię i nazwisko dwukropek cudzysłów zamknij nawias okrągły.
Linia 26. dane podkreślnik osoby otwórz nawias kwadratowy cudzysłów email cudzysłów zamknij nawias kwadratowy znak równości input otwórz nawias okrągły cudzysłów Podaj adres email dwukropek cudzysłów zamknij nawias okrągły.
Linia 27. for przedmiot in PRZEDMIOTY dwukropek.
Linia 28. dane podkreślnik osoby otwórz nawias kwadratowy przedmiot zamknij nawias kwadratowy znak równości otwórz nawias kwadratowy zamknij nawias kwadratowy.
Linia 29. KLASA otwórz nawias kwadratowy nr zamknij nawias kwadratowy znak równości dane podkreślnik osoby.
Linia 30. else dwukropek.
Linia 31. return 0.
Linia 33. return nr.
Linia 35. def menu podkreślnik programu otwórz nawias okrągły zamknij nawias okrągły dwukropek.
Linia 36. cudzysłów cudzysłów cudzysłów menu główne cudzysłów cudzysłów cudzysłów.
Linia 38. menu znak równości cudzysłów cudzysłów cudzysłów minus minus minus minus minus minus minus minus minus minus minus minus minus.
Linia 39. MENU GŁÓWNE dwukropek.
Linia 40. 1 minus Dodaj ocenę osobie.
Linia 41. 2 minus Pokaż oceny osoby.
Linia 42. 3 minus KONIEC cudzysłów cudzysłów cudzysłów.
Linia 43. print otwórz nawias okrągły menu zamknij nawias okrągły.
Linia 44. opcja znak równości input otwórz nawias okrągły cudzysłów Wybierz opcję dwukropek cudzysłów zamknij nawias okrągły.
Linia 46. if not opcja kropka isdigit otwórz nawias okrągły zamknij nawias okrągły dwukropek.
Linia 47. print otwórz nawias okrągły f cudzysłów Podana opcja otwórz nawias klamrowy opcja zamknij nawias klamrowy nie jest liczbą wykrzyknik cudzysłów zamknij nawias okrągły.
Linia 48. return 0.
Linia 49. return int otwórz nawias okrągły opcja zamknij nawias okrągły.
Linia 52. def dodaj podkreślnik ocene otwórz nawias okrągły zamknij nawias okrągły dwukropek.
Linia 53. cudzysłów cudzysłów cudzysłów Dodaje ocenę z przedmiotu cudzysłów cudzysłów cudzysłów.
Linia 54. nr znak równości pobierz podkreślnik dane otwórz nawias okrągły zamknij nawias okrągły.
Linia 55. dane podkreślnik osoby znak równości KLASA otwórz nawias kwadratowy nr zamknij nawias kwadratowy.
Linia 56. if dane podkreślnik osoby is None dwukropek.
Linia 57. return None.
Linia 59. kratka pobieramy dane o przedmiocie i ocenie.
Linia 60. print otwórz nawias okrągły f cudzysłów Dozwolone przedmioty to dwukropek otwórz nawias klamrowy PRZEDMIOTY zamknij nawias klamrowy kropka cudzysłów zamknij nawias okrągły.
Linia 61. przedmiot znak równości input otwórz nawias okrągły cudzysłów Podaj nazwę przedmiotu dwukropek cudzysłów zamknij nawias okrągły.
Linia 63. kratka sprawdzamy przecinek czy podany przedmiot jest w liście.
Linia 64. if przedmiot not in PRZEDMIOTY dwukropek.
Linia 65. print otwórz nawias okrągły f cudzysłów Brak przedmiotu otwórz nawias klamrowy przedmiot zamknij nawias klamrowy dla osoby nr otwórz nawias klamrowy nr zamknij nawias klamrowy kropka cudzysłów zamknij nawias okrągły.
Linia 66. return None.
Linia 68. kratka dodajemy ocenę.
Linia 69. ocena znak równości int otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Podaj ocenę otwórz nawias okrągły jako cyfrę 1 minus 6 zamknij nawias okrągły dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły.
Linia 70. dane podkreślnik osoby otwórz nawias kwadratowy przedmiot zamknij nawias kwadratowy kropka append otwórz nawias okrągły ocena zamknij nawias okrągły.
Linia 72. kratka zapisujemy dane osoby w dzienniku klasowym.
Linia 73. KLASA otwórz nawias kwadratowy nr zamknij nawias kwadratowy znak równości dane podkreślnik osoby.
Linia 74. print otwórz nawias okrągły cudzysłów Dane zostały zapisane w dzienniku kropka cudzysłów zamknij nawias okrągły.
Linia 75. return None.
Linia 77. def wypisz podkreślnik oceny otwórz nawias okrągły zamknij nawias okrągły dwukropek.
Linia 78. cudzysłów cudzysłów cudzysłów Wypisuje oceny cudzysłów cudzysłów cudzysłów.
Linia 79. nr znak równości pobierz podkreślnik dane otwórz nawias okrągły zamknij nawias okrągły.
Linia 80. dane podkreślnik osoby znak równości KLASA otwórz nawias kwadratowy nr zamknij nawias kwadratowy.
Linia 81. if dane podkreślnik osoby is None dwukropek.
Linia 82. return None.
Linia 84. kratka pobieramy dane o przedmiocie.
Linia 85. przedmiot znak równości input otwórz nawias okrągły cudzysłów Podaj nazwę przedmiotu dwukropek cudzysłów zamknij nawias okrągły.
Linia 87. kratka sprawdzamy przecinek czy dana osoba ma podany przedmiot.
Linia 88. if przedmiot not in dane podkreślnik osoby dwukropek.
Linia 89. print otwórz nawias okrągły f cudzysłów Dla osoby nr otwórz nawias klamrowy nr zamknij nawias klamrowy brak ocen z przedmiotu otwórz nawias klamrowy przedmiot zamknij nawias klamrowy kropka cudzysłów zamknij nawias okrągły.
Linia 90. else dwukropek.
Linia 91. oceny podkreślnik txt znak równości f cudzysłów Z przedmiotu otwórz nawias klamrowy przedmiot zamknij nawias klamrowy osoba nr otwórz nawias klamrowy nr zamknij nawias klamrowy posiada oceny dwukropek otwórz nawias klamrowy dane podkreślnik osoby otwórz nawias kwadratowy przedmiot zamknij nawias kwadratowy zamknij nawias klamrowy kropka cudzysłów.
Linia 92. print otwórz nawias okrągły oceny podkreślnik txt zamknij nawias okrągły.
Linia 94. return None.
Linia 96. kratka główna pętla programu.
Linia 97. wybrana podkreślnik opcja znak równości 0.
Linia 98. while wybrana podkreślnik opcja wykrzyknik znak równości 3 dwukropek.
Linia 99. wybrana podkreślnik opcja znak równości menu podkreślnik programu otwórz nawias okrągły zamknij nawias okrągły.
Linia 100. if wybrana podkreślnik opcja znak równości znak równości 1 dwukropek.
Linia 101. dodaj podkreślnik ocene otwórz nawias okrągły zamknij nawias okrągły.
Linia 102. if wybrana podkreślnik opcja znak równości znak równości 2 dwukropek.
Linia 103. wypisz podkreślnik oceny otwórz nawias okrągły zamknij nawias okrągły.
Linia 105. else dwukropek.
Linia 106. print otwórz nawias okrągły cudzysłów Koniec programu kropka cudzysłów zamknij nawias okrągły.
Linia 108. elektroniczny podkreślnik dziennik podkreślnik klasowy otwórz nawias okrągły zamknij nawias okrągły.
def elektroniczny_dziennik_klasowy():
ILU_UCZNIOW = 31
PRZEDMIOTY = [ "matematyka", "język polski", "informatyka", "fizyka" ]
KLASA = [ None for x in range(ILU_UCZNIOW + 1) ]
def pobierz_dane():
nr = input("Podaj nr w dzienniku: ")
if not nr.isdigit():
print(f"Podany nr {nr} nie jest liczbą!")
return 0
nr = int(nr) # zamieniamy na liczbę
if nr > ILU_UCZNIOW:
print(f"Podany nr {nr} jest większy niż liczba osób w klasie: {ILU_UCZNIOW}!")
return 0
if KLASA[nr] is None:
print(f"Brak danych dla osoby nr {nr}.")
if input(f"Podasz dane osoby nr {nr} (t/n)? ") == "t":
dane_osoby = {}
dane_osoby["nr"] = nr
dane_osoby["imie_nazwisko"] = input("Podaj imię i nazwisko: ")
dane_osoby["email"] = input("Podaj adres email: ")
for przedmiot in PRZEDMIOTY:
dane_osoby[przedmiot] = []
KLASA[nr] = dane_osoby
else:
return 0
return nr
def menu_programu():
"""menu główne"""
menu = """-------------
MENU GŁÓWNE:
1 - Dodaj ocenę osobie
2 - Pokaż oceny osoby
3 - KONIEC"""
print(menu)
opcja = input("Wybierz opcję: ")
if not opcja.isdigit():
print(f"Podana opcja {opcja} nie jest liczbą!")
return 0
return int(opcja)
def dodaj_ocene():
"""Dodaje ocenę z przedmiotu"""
nr = pobierz_dane()
dane_osoby = KLASA[nr]
if dane_osoby is None:
return None
# pobieramy dane o przedmiocie i ocenie
print(f"Dozwolone przedmioty to: {PRZEDMIOTY}.")
przedmiot = input("Podaj nazwę przedmiotu: ")
# sprawdzamy, czy podany przedmiot jest w liście
if przedmiot not in PRZEDMIOTY:
print(f"Brak przedmiotu {przedmiot} dla osoby nr {nr}.")
return None
# dodajemy ocenę
ocena = int(input("Podaj ocenę (jako cyfrę 1-6): "))
dane_osoby[przedmiot].append(ocena)
# zapisujemy dane osoby w dzienniku klasowym
KLASA[nr] = dane_osoby
print("Dane zostały zapisane w dzienniku.")
return None
def wypisz_oceny():
"""Wypisuje oceny"""
nr = pobierz_dane()
dane_osoby = KLASA[nr]
if dane_osoby is None:
return None
# pobieramy dane o przedmiocie
przedmiot = input("Podaj nazwę przedmiotu: ")
# sprawdzamy, czy dana osoba ma podany przedmiot
if przedmiot not in dane_osoby:
print(f"Dla osoby nr {nr} brak ocen z przedmiotu {przedmiot}.")
else:
oceny_txt = f"Z przedmiotu {przedmiot} osoba nr {nr} posiada oceny: {dane_osoby[przedmiot]}."
print(oceny_txt)
return None
# główna pętla programu
wybrana_opcja = 0
while wybrana_opcja != 3:
wybrana_opcja = menu_programu()
if wybrana_opcja == 1:
dodaj_ocene()
if wybrana_opcja == 2:
wypisz_oceny()
else:
print("Koniec programu.")
elektroniczny_dziennik_klasowy()
Ważne!
Nasz program nie zapamiętuje danych wprowadzonych przez użytkownika.
Dla zainteresowanych
W kodzie niektóre elementy powtarzają się. Jeśli jednak chcemy, możemy dokonać optymalizacji, wydzielając powtarzający się kod do funkcji, która będzie wywoływana. Należy to do dobrych praktyk programistycznych, ponieważ porządkuje kod.
Dla zainteresowanych
Typ dict jest także nazywany „tablicą haszującą”. Zainteresowani mogą przeanalizować kod pliku dictobject.c w repozytorium Pythona w serwisie GitHub.
Już wiesz
W programach zachodzi konieczność używania zaawansowanych struktur danych.
Struktura danych typu dict jest zmienna, podobnie jak typ list.
Elementy typu dict są przechowywane w pamięci w sposób nieuporządkowany, odwołujemy się do nich poprzez klucz.
Słownik
lista
lista
struktura danych służąca do reprezentacji zbiorów dynamicznych, w praktyce różni się od tablicy tym, że jej elementy można na bieżąco modyfikować
niezmienna
niezmienna
(ang. immutable) sekwencja, która jest niemodyfikowalna „w miejscu”, a więc nie można zmienić żadnego z jej elementów wewnątrz – trzeba stworzyć nowy obiekt, który zawiera zmienione elementy
słownik
słownik
w języku Python jest zmienny (modyfikowalny, mutowalny); możemy dowolnie dodawać, usuwać oraz modyfikować jego elementy
zmienna
zmienna
(ang. mutable) sekwencja, która jest modyfikowalna „w miejscu”, a więc można zmienić dowolny z jej elementów wewnątrz, bez konieczności przypisywania nowych wartości do kolejnego obiektu