Dziennik klasowy jako struktura danych

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.
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ą.

klucz
niezmiennyniezmiennaniezmienny

wartość
zmiennazmiennazmienna

int

int

str

int

tuple

str

int

list

str

dict

Ważne!

Słownik, jak każdy rozbudowany obiekt w języku Python, może zawierać obiekty różnych typów.

Oto przykład zapisu ze słownika:

Linia 1. pusty podkreślnik slownik znak równości otwórz nawias klamrowy zamknij nawias klamrowy. Linia 3. slownik znak równości otwórz nawias klamrowy. Linia 4. apostrof klucz podkreślnik 01 apostrof dwukropek apostrof Wartość klucza apostrof przecinek. Linia 5. 33 dwukropek cudzysłów Tu kluczem jest int cudzysłów przecinek. Linia 6. apostrof klucz podkreślnik 02 apostrof dwukropek 137 przecinek. Linia 7. 1 dwukropek otwórz nawias okrągły cudzysłów Tupla cudzysłów przecinek 22 zamknij nawias okrągły przecinek. Linia 8. apostrof klucz podkreślnik 03 apostrof dwukropek otwórz nawias kwadratowy apostrof Python apostrof przecinek 12 przecinek otwórz nawias okrągły 1 przecinek apostrof A apostrof przecinek 2 kropka 3 zamknij nawias okrągły przecinek True przecinek 3 kropka 14 zamknij nawias kwadratowy przecinek. Linia 9. zamknij nawias klamrowy.
Ciekawostka

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.:

Linia 1. slownik znak równości otwórz nawias klamrowy. Linia 2. apostrof klucz podkreślnik 01 apostrof dwukropek apostrof Wartość klucza apostrof przecinek. Linia 3. 33 dwukropek cudzysłów Tu kluczem jest int cudzysłów przecinek. Linia 4. apostrof klucz podkreślnik 02 apostrof dwukropek 137 przecinek. Linia 5. 1 dwukropek otwórz nawias okrągły cudzysłów Tupla cudzysłów przecinek 22 zamknij nawias okrągły przecinek. Linia 6. apostrof klucz podkreślnik 03 apostrof dwukropek otwórz nawias kwadratowy apostrof Python apostrof przecinek 12 przecinek otwórz nawias okrągły 1 przecinek apostrof A apostrof przecinek 2 kropka 3 zamknij nawias okrągły przecinek True przecinek 3 kropka 14 zamknij nawias kwadratowy przecinek. Linia 7. zamknij nawias klamrowy. Linia 9. print otwórz nawias okrągły slownik otwórz nawias kwadratowy 1 zamknij nawias kwadratowy zamknij nawias okrągły. Linia 10. otwórz nawias okrągły cudzysłów Tupla cudzysłów przecinek 22 zamknij nawias okrągły. Linia 12. print otwórz nawias okrągły slownik otwórz nawias kwadratowy apostrof klucz podkreślnik 01 apostrof zamknij nawias kwadratowy zamknij nawias okrągły. Linia 13. apostrof Wartość klucza apostrof. Linia 15. print otwórz nawias okrągły slownik otwórz nawias kwadratowy apostrof klucz podkreślnik 03 apostrof zamknij nawias kwadratowy zamknij nawias okrągły. Linia 16. otwórz nawias kwadratowy apostrof Python apostrof przecinek 12 przecinek otwórz nawias okrągły 1 przecinek apostrof A apostrof przecinek 2 kropka 3 zamknij nawias okrągły przecinek True przecinek 3 kropka 14 zamknij nawias kwadratowy.

Dodawanie kolejnych elementów do słownika polega na przypisaniu nowego klucza i jego początkowej wartości, np.:

Linia 1. slownik otwórz nawias kwadratowy apostrof klucz podkreślnik 11 apostrof zamknij nawias kwadratowy znak równości apostrof Początkowa wartość apostrof. Linia 2. slownik otwórz nawias kwadratowy apostrof klucz podkreślnik 21 apostrof zamknij nawias kwadratowy znak równości apostrof Początkowa wartość apostrof. Linia 3. slownik otwórz nawias kwadratowy apostrof klucz podkreślnik 22 apostrof zamknij nawias kwadratowy znak równości apostrof Początkowa wartość apostrof. Linia 4. slownik otwórz nawias kwadratowy apostrof klucz podkreślnik 33 apostrof zamknij nawias kwadratowy znak równości apostrof Początkowa wartość apostrof.

W tym momencie obiekt słownik zawiera wartości:

Linia 1. print otwórz nawias okrągły slownik zamknij nawias okrągły. Linia 2. otwórz nawias klamrowy apostrof klucz podkreślnik 01 apostrof dwukropek apostrof Wartość klucza apostrof przecinek. Linia 3. 33 dwukropek apostrof Tu kluczem jest int apostrof przecinek. Linia 4. apostrof klucz podkreślnik 02 apostrof dwukropek 137 przecinek. Linia 5. 1 dwukropek otwórz nawias okrągły apostrof Tupla apostrof przecinek 22 zamknij nawias okrągły przecinek. Linia 6. apostrof klucz podkreślnik 03 apostrof dwukropek otwórz nawias kwadratowy apostrof Python apostrof przecinek 12 przecinek otwórz nawias okrągły 1 przecinek apostrof A apostrof przecinek 2 kropka 3 zamknij nawias okrągły przecinek True przecinek 3 kropka 14 zamknij nawias kwadratowy przecinek. Linia 7. apostrof klucz podkreślnik 11 apostrof dwukropek apostrof Początkowa wartość apostrof przecinek. Linia 8. apostrof klucz podkreślnik 21 apostrof dwukropek apostrof Początkowa wartość apostrof przecinek. Linia 9. apostrof klucz podkreślnik 22 apostrof dwukropek apostrof Początkowa wartość apostrof przecinek. Linia 10. apostrof klucz podkreślnik 33 apostrof dwukropek apostrof Początkowa wartość apostrof zamknij nawias klamrowy.
Ważne!

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.

Po takich operacjach możemy spróbować pokazać dane o uczniu, np:

Linia 1. klasa podkreślnik 3E otwórz nawias kwadratowy 7 zamknij nawias kwadratowy otwórz nawias kwadratowy apostrof email apostrof zamknij nawias kwadratowy. Linia 2. apostrof adam kropka jurkiewicz at brak kropka domeny kropka pl apostrof. Linia 4. kratka wszystkie oceny z przedmiotu. Linia 5. klasa podkreślnik 3E otwórz nawias kwadratowy 7 zamknij nawias kwadratowy otwórz nawias kwadratowy apostrof fizyka apostrof zamknij nawias kwadratowy. Linia 6. otwórz nawias kwadratowy 5 przecinek 6 przecinek 1 zamknij nawias kwadratowy. Linia 8. kratka średnia ocen z przedmiotu. Linia 9. sum otwórz nawias okrągły klasa podkreślnik 3E otwórz nawias kwadratowy 7 zamknij nawias kwadratowy otwórz nawias kwadratowy apostrof fizyka apostrof zamknij nawias kwadratowy zamknij nawias okrągły prawy ukośnik len otwórz nawias okrągły klasa podkreślnik 3E otwórz nawias kwadratowy 7 zamknij nawias kwadratowy otwórz nawias kwadratowy apostrof fizyka apostrof zamknij nawias kwadratowy zamknij nawias okrągły. Linia 10. 4 kropka 0. Linia 12. klasa podkreślnik 3E otwórz nawias kwadratowy 7 zamknij nawias kwadratowy otwórz nawias kwadratowy apostrof imie podkreślnik nazwisko apostrof zamknij nawias kwadratowy. Linia 13. apostrof Adam Jurkiewicz apostrof.
Polecenie 1

Dla kilku przykładowych osób zdefiniuj przykładowe obiekty typu dict i przypisz je do odpowiednich pozycji w obiekcie klasy typu list.

1
Polecenie 2

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.

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.
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.
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