Co wypisze pętla for i in range(3): z instrukcją print(i) w środku?
Jakie liczby daje range(1, 11)?
Kiedy wybieramy pętlę for, a kiedy while?
Część 1 · Po co lista
Pięć zmiennych czy jedna nazwa?
Lista (angielskie list) to jedna nazwa, pod którą siedzi wiele wartości ustawionych w kolejności. Zapisujemy je w nawiasie kwadratowym, oddzielone przecinkami.
# bez listy: osobna zmienna na każdą ocenę
grade1 = 4
grade2 = 5
grade3 = 3
# z listą: jedna nazwa na wszystkie
grades = [4, 5, 3]
print(grades)
Na ekranie: [4, 5, 3]
Przy trzech ocenach różnica jest mała. Przy trzydziestu osobne zmienne robią się nie do prowadzenia: każdą trzeba nazwać, każdą wypisać osobno.
Z życia: szuflada z przegródkami. Szuflada ma jedną nazwę, a w środku jest wiele ponumerowanych miejsc, każde z inną rzeczą.
Podręcznik Informatyka na czasie 2 (Nowa Era), s. 113 (7.4, „Lista – struktura danych”) · docs.python.org, The Python Tutorial, rozdz. 3.1.3 (Lists)
Część 1 · Indeks
Numerujemy od zera
Indeks to numer miejsca na liście. Python liczy te miejsca od 0, więc pierwsza wartość ma indeks 0, druga 1 i tak dalej. Po wartość sięgamy nazwą listy i indeksem w nawiasie kwadratowym.
Podręcznik Informatyka na czasie 2 (Nowa Era), s. 113 (7.4, rys. 7.10 „Interpretacja graficzna listy o 8 wartościach liczbowych”) i s. 223 (dodatek 6, listy)
Część 2 · Długość listy
Ile jest wartości: funkcja len
Funkcja len (od angielskiego length, długość) oddaje liczbę wartości na liście. Na liście z pięcioma wartościami indeksy idą od 0 do 4, więc ostatni indeks to zawsze len minus jeden.
Reguła: na liście o n wartościach pierwszy indeks to 0, a ostatni to n - 1. Indeks 5 na liście pięciu wartości nie istnieje, dlatego program się zatrzymuje.
Podręcznik Informatyka na czasie 2 (Nowa Era), s. 115 (7.4, ramka „Zapamiętaj”) · docs.python.org, The Python Tutorial, rozdz. 3.1.3 (Lists, funkcja len)
Część 2 · Dodawanie wartości
Metoda append: dopisz na koniec
Metoda to funkcja przypisana do konkretnego obiektu, wywołujemy ją po kropce. Metoda append (angielskie „dołącz”) dokłada jedną wartość na koniec listy i powiększa ją o jedno miejsce.
W praktyce: pusta lista i append to typowy początek programu, który zbiera dane: nie wiemy z góry, ile ich będzie, więc lista rośnie razem z tym, co wpisuje użytkownik.
Podręcznik Informatyka na czasie 2 (Nowa Era), s. 114 (7.4, metoda append, program „Cyfry wspak”) · docs.python.org, The Python Tutorial, rozdz. 5.1 (More on Lists, list.append)
Część 3 · Indeks ujemny
Liczenie od końca
Ujemny indeks liczy miejsca od końca listy: -1 to ostatnia wartość, -2 przedostatnia. Dzięki temu po ostatnią wartość sięgamy bez liczenia, ile ich w ogóle jest.
Dla grades = [4, 5, 3, 6, 2] zapis grades[-1] daje 2, a grades[-2] daje 6.
docs.python.org, The Python Tutorial, rozdz. 3.1.3 (Lists, indeksowanie i squares[-1])
Część 3 · Operator in
Czy to jest na liście?
Operator in sprawdza, czy podana wartość jest gdzieś na liście. Wynikiem jest True albo False, więc można go wstawić wprost do warunku if. Zaprzeczenie zapisujemy jako not in.
fruits = ["jabłko", "gruszka", "śliwka"]
print("gruszka" in fruits)
print("banan" in fruits)
if "banan" not in fruits:
print("Trzeba dokupić banany.")
True
False
Trzeba dokupić banany.
Python przegląda listę wartość po wartości i zatrzymuje się, gdy znajdzie pasującą.
docs.python.org, The Python Tutorial, rozdz. 5.7 (More on Conditions, operatory in i not in)
Ćwiczenie · przy komputerze · 12 minut
Ćwiczenie: twoja pierwsza lista
Utwórz plik lists.py i rozwiąż trzy zadania po kolei. Po każdym uruchom program i porównaj wynik z tym, czego się spodziewasz.
Utwórz listę temperatures z pięcioma liczbami: 21, 19, 24, 23, 18. Wypisz pierwszą wartość, ostatnią (użyj indeksu ujemnego) i liczbę wartości.
Utwórz pustą listę shopping. Dopisz do niej metodą append trzy produkty: chleb, mleko, jajka. Wypisz całą listę i jej długość.
Sprawdź operatorem in, czy na liście shopping jest „mleko”, a potem czy jest „ser”. Na koniec wypisz wartość spod indeksu 1.
Jak sprawdzić, czy wynik jest poprawny
Napis Python wypisuje wewnątrz listy w apostrofach (['chleb', 'mleko']), ale pojedynczy napis z print bez nich (mleko). Jeśli pojawia się IndexError: list index out of range, sięgasz po indeks, którego na liście nie ma: policz wartości i odejmij jeden.
Sprawdzenie
Trzy pytania na koniec
Lista ma sześć wartości. Jaki indeks ma ostatnia z nich?
Czym różni się append od len?
Co daje w wyniku zapis "mleko" in shopping?
Podsumowanie
A jak to wygląda w produkcji?
Na lekcji
W produkcji
Status
grades = [4, 5, 3]
Koszyk w sklepie internetowym to lista produktów, nie osobna zmienna na każdy towar
codziennie
append
Czat dokłada każdą nową wiadomość na koniec listy wiadomości w rozmowie
codziennie
Indeks od 0
Ta sama zasada obowiązuje w językach C, Java i JavaScript, więc nawyk przenosi się dalej
standard
in
Sprawdzenie, czy użytkownik ma uprawnienie z listy uprawnień, zanim program wpuści go do panelu