Szybki quiz – przypomnienie poprzedniej lekcji
Temat: input() i rzutowanie danych wejściowych
Pytanie 1. Co zostanie wyświetlone? (użytkownik wpisuje 4)
x = input("Podaj liczbę: ")
print(x * 3)
Odpowiedź
Odpowiedź: 444. input() zwraca string, więc * powtarza napis, a nie mnoży liczby.
Pytanie 2. Znajdź błąd w kodzie.
wiek = input("Podaj wiek: ")
print(wiek + 1)
Odpowiedź
Odpowiedź: wiek jest stringiem, więc dodanie 1 wywoła TypeError. Poprawnie: wiek = int(input("Podaj wiek: ")).
Pytanie 3. Co zostanie wyświetlone? (użytkownik wpisuje kolejno 19.99 i 3)
cena = float(input("Cena: "))
ile = int(input("Ilość: "))
print(f"Do zapłaty: {cena * ile:.2f} zł")
Odpowiedź
Odpowiedź: Do zapłaty: 59.97 zł. Zapis :.2f formatuje wynik do dwóch miejsc po przecinku.
Pytanie 4. Co stanie się po wykonaniu tego fragmentu? (użytkownik wpisuje abc)
try:
n = int(input("Liczba: "))
print(n * 2)
except ValueError:
print("Błąd!")
Odpowiedź
Odpowiedź: Wyświetli się Błąd!. int("abc") zgłasza ValueError, więc program przechodzi do except i pomija print(n * 2).
Pytanie 5. Co zostanie wyświetlone i jak zsumować te liczby? (użytkownik wpisuje 4 7 9)
dane = input("Liczby: ").split()
print(dane)
Odpowiedź
Odpowiedź: ['4', '7', '9']. To lista stringów, nie liczb. Każdy element trzeba zrzutować na int, np. [int(x) for x in dane], a dopiero potem sumować.
Listy – list []
Lista to uporządkowana, zmieniana kolekcja, która może przechowywać różne typy danych. Odpowiednik tablic dynamicznych z innych języków.
Tworzenie listy
# Lista z różnymi typami
lst = ["wartość1", 2, 1.22, ["lista w liście"], "Kama"]
print(lst)
print(type(lst)) # <class 'list'>
Indeksowanie list
Indeksy w Pythonie zaczynają się od 0.
lst = ["wartość1", 2, 1.22, ["lista w liście"], "Kama"]
# [0] [1] [2] [3] [4]
# Dostęp do elementów
print(lst[0]) # wartość1
print(lst[1]) # 2
print(lst[4]) # Kama
# Lista w liście (lista zagnieżdżona)
print(lst[3]) # ["lista w liście"]
print(lst[3][0]) # lista w liście
Indeksowanie od końca
Ujemne indeksy liczą od końca listy.
lst = ["wartość1", 2, 1.22, ["lista w liście"], "Kama"]
print(lst[-1]) # Kama (ostatni element)
print(lst[-2]) # ["lista w liście"] (przedostatni)
print(lst[-5]) # wartość1 (pierwszy element)
Wycinki (slicing)
lst = ["a", "b", "c", "d", "e"]
# Fragment listy od indeksu do indeksu
print(lst[1:4]) # ["b", "c", "d"] (od 1 do 4, bez 4)
# Od początku do indeksu
print(lst[:3]) # ["a", "b", "c"]
# Od indeksu do końca
print(lst[2:]) # ["c", "d", "e"]
# Cała lista
print(lst[:]) # ["a", "b", "c", "d", "e"]
# Od końca
print(lst[-3:]) # ["c", "d", "e"] (ostatnie 3 elementy)
Modyfikacja listy
lst = ["wartość1", 2, 1.22, "Kama"]
# Zmiana pojedynczego elementu
lst[1] = 4
print(lst) # ["wartość1", 4, 1.22, "Kama"]
# Zmiana wielu elementów
print(lst[1:3]) # [4, 1.22]
lst[1:3] = ['a', 'b', 'c'] # Zamieniamy 2 elementy na 3
print(lst) # ["wartość1", 'a', 'b', 'c', "Kama"]
Dodawanie elementów
lst = ["a", "b", "c"]
# append() - dodaj na końcu
lst.append("d")
print(lst) # ["a", "b", "c", "d"]
# insert() - wstaw na konkretnej pozycji
lst.insert(1, "x") # Wstaw "x" na indeks 1
print(lst) # ["a", "x", "b", "c", "d"]
# extend() - dodaj wiele elementów
lst.extend(["e", "f"])
print(lst) # ["a", "x", "b", "c", "d", "e", "f"]
Usuwanie elementów
lst = ["a", "b", "c", "d", "e"]
# remove() - usuń po wartości
lst.remove("c")
print(lst) # ["a", "b", "d", "e"]
# pop() - usuń i zwróć ostatni element
ostatni = lst.pop()
print(ostatni) # "e"
print(lst) # ["a", "b", "d"]
# pop(index) - usuń element na podanym indeksie
drugi = lst.pop(1)
print(drugi) # "b"
print(lst) # ["a", "d"]
# del - usuń przez indeks lub wycinek
del lst[0]
print(lst) # ["d"]
# clear() - wyczyść całą listę
lst.clear()
print(lst) # []
Operacje na listach
lst1 = [1, 2, 3]
lst2 = [4, 5, 6]
# Łączenie list
polaczona = lst1 + lst2
print(polaczona) # [1, 2, 3, 4, 5, 6]
# Mnożenie listy
powtorzona = lst1 * 3
print(powtorzona) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
# Długość listy
print(len(lst1)) # 3
# Sprawdzanie czy element jest w liście
print(2 in lst1) # True
print(10 in lst1) # False
Przydatne metody list
lst = [3, 1, 4, 1, 5, 9, 2]
# sort() - sortuj listę (modyfikuje oryginalną)
lst.sort()
print(lst) # [1, 1, 2, 3, 4, 5, 9]
# reverse() - odwróć kolejność
lst.reverse()
print(lst) # [9, 5, 4, 3, 2, 1, 1]
# count() - policz wystąpienia wartości
print(lst.count(1)) # 2
# index() - znajdź indeks pierwszego wystąpienia
print(lst.index(5)) # 1
# copy() - skopiuj listę
kopia = lst.copy()
Słowniki – dict {}
Słownik to kolekcja par klucz: wartość. Odpowiednik tablic asocjacyjnych z PHP lub Map z Javy.
Tworzenie słownika
# Podstawowy słownik
osoba = {
"name": "Kama",
"surname": "Kaczmarek",
"mail": "kamakaczmarek@zse-zdwola.pl"
}
print(osoba)
print(type(osoba)) # <class 'dict'>
Dostęp do wartości
osoba = {
"name": "Kama",
"surname": "Kaczmarek",
"age": 30
}
# Dostęp przez klucz
print(osoba["name"]) # Kama
print(osoba["surname"]) # Kaczmarek
# get() - bezpieczniejszy sposób (nie wyrzuca błędu)
print(osoba.get("name")) # Kama
print(osoba.get("city")) # None (klucz nie istnieje)
print(osoba.get("city", "Warszawa")) # Warszawa (wartość domyślna)
Modyfikacja słownika
osoba = {
"name": "Kama",
"surname": "Kaczmarek"
}
# Dodawanie nowego klucza
osoba["employment"] = "teacher"
print(osoba)
# {'name': 'Kama', 'surname': 'Kaczmarek', 'employment': 'teacher'}
# Zmiana wartości
osoba["name"] = "Kamila"
print(osoba)
# Usuwanie klucza
del osoba["surname"]
print(osoba)
# {'name': 'Kamila', 'employment': 'teacher'}
Przydatne metody słowników
osoba = {
"name": "Kama",
"age": 30,
"city": "Warsaw"
}
# keys() - wszystkie klucze
print(osoba.keys()) # dict_keys(['name', 'age', 'city'])
# values() - wszystkie wartości
print(osoba.values()) # dict_values(['Kama', 30, 'Warsaw'])
# items() - wszystkie pary klucz-wartość
print(osoba.items())
# dict_items([('name', 'Kama'), ('age', 30), ('city', 'Warsaw')])
# pop() - usuń i zwróć wartość
age = osoba.pop("age")
print(age) # 30
print(osoba) # {'name': 'Kama', 'city': 'Warsaw'}
# update() - zaktualizuj słownik
osoba.update({"age": 31, "country": "Poland"})
print(osoba)
# clear() - wyczyść słownik
osoba.clear()
print(osoba) # {}
Krotki – tuple ()
Krotka to uporządkowana, niezmieniana (immutable) kolekcja. Podobna do listy, ale nie można jej modyfikować po utworzeniu.
Tworzenie krotki
# Krotka z różnymi typami
animals = ("kot", "pies", "koń", "modliszka", "kot",)
# Przecinek na końcu zapewnia że Python rozpozna to jako krotkę
print(animals)
print(type(animals)) # <class 'tuple'>
# Krotka jednoelementowa WYMAGA przecinka
jednoelement = (5,)
print(type(jednoelement)) # <class 'tuple'>
# Bez przecinka to NIE jest krotka
nie_krotka = (5)
print(type(nie_krotka)) # <class 'int'>
Dostęp do elementów krotki
animals = ("kot", "pies", "koń", "modliszka")
# Indeksowanie (jak lista)
print(animals[0]) # kot
print(animals[-1]) # modliszka
# Wycinki (jak lista)
print(animals[1:3]) # ("pies", "koń")
Krotki są niemutowalne
animals = ("kot", "pies", "koń")
# ŹLE - nie możesz zmieniać krotki
# animals[0] = "ptak" # TypeError
# DOBRZE - musisz stworzyć nową krotkę
animals = ("ptak", "pies", "koń")
Dlaczego używać krotek?
- Szybsze niż listy
- Bezpieczniejsze – nie można przypadkowo zmienić
- Klucze w słownikach – krotki mogą być kluczami, listy nie
Metody krotek
Krotki mają tylko 2 metody (bo są niemutowalne).
animals = ("kot", "pies", "koń", "kot", "pies")
# count() - ile razy występuje wartość
print(animals.count("kot")) # 2
# index() - indeks pierwszego wystąpienia
print(animals.index("koń")) # 2
Zestawy – set {}
Zestaw to nieuporządkowana kolekcja unikalnych elementów. Kolejność nie jest gwarantowana.
Tworzenie zestawu
# Podstawowy zestaw
sets = {"wartość 1", "wartość 2", "wartość 3"}
print(sets)
print(type(sets)) # <class 'set'>
# UWAGA: Kolejność nie jest zachowana!
# Za każdym razem może być inna
Unikalne wartości
Zestawy automatycznie usuwają duplikaty.
# Duplikaty są ignorowane
sets = {"wartość 1", "wartość 2", "wartość 2", "wartość 3"}
print(sets) # {"wartość 1", "wartość 2", "wartość 3"}
# Praktyczne zastosowanie - usuwanie duplikatów z listy
lista_z_duplikatami = [1, 2, 2, 3, 3, 3, 4]
unikalne = set(lista_z_duplikatami)
print(unikalne) # {1, 2, 3, 4}
Operacje na zestawach
zestaw = {"a", "b", "c"}
# add() - dodaj element
zestaw.add("d")
print(zestaw)
# remove() - usuń element (błąd jeśli nie istnieje)
zestaw.remove("a")
print(zestaw)
# discard() - usuń element (bez błędu jeśli nie istnieje)
zestaw.discard("x") # Nie ma "x", ale nie ma błędu
# clear() - wyczyść zestaw
zestaw.clear()
print(zestaw) # set()
Operacje matematyczne na zestawach
A = {1, 2, 3, 4}
B = {3, 4, 5, 6}
# Suma (union)
print(A | B) # {1, 2, 3, 4, 5, 6}
print(A.union(B))
# Przecięcie (intersection)
print(A & B) # {3, 4}
print(A.intersection(B))
# Różnica
print(A - B) # {1, 2} (w A ale nie w B)
print(A.difference(B))
# Różnica symetryczna (XOR)
print(A ^ B) # {1, 2, 5, 6} (w A lub B, ale nie w obu)
print(A.symmetric_difference(B))
Ćwiczenia
Listy
- Stwórz listę zawierającą nazwy 5 twoich ulubionych owoców. Wyświetl całą listę.
- Z listy utworzonej w poprzednim zadaniu wyświetl pierwszy i ostatni element.
- Stwórz listę liczb od 1 do 10. Wyświetl elementy od indeksu 3 do 7.
- Stwórz pustą listę, dodaj do niej trzy elementy używając metody append(), a następnie wyświetl całą listę.
- Stwórz listę [1, 2, 3, 4, 5] i zmień wartość trzeciego elementu na 10. Wyświetl zmodyfikowaną listę.
- Stwórz listę z pięcioma liczbami. Usuń drugi element używając metody pop() i wyświetl usuniętą wartość oraz zmodyfikowaną listę.
- Stwórz dwie listy: jedną z liczbami [1, 2, 3], drugą z liczbami [4, 5, 6]. Połącz je w jedną listę i wyświetl wynik.
- Stwórz listę [„jabłko”, „banan”, „jabłko”, „gruszka”, „jabłko”]. Policz ile razy występuje „jabłko” używając odpowiedniej metody.
- Stwórz listę [5, 2, 8, 1, 9] i posortuj ją rosnąco. Wyświetl posortowaną listę.
- Stwórz listę z losowymi liczbami i użyj metody reverse() aby odwrócić kolejność elementów.
Słowniki
- Stwórz słownik zawierający informacje o sobie: imię, nazwisko, wiek, miasto. Wyświetl cały słownik.
- Z słownika utworzonego w poprzednim zadaniu wyświetl tylko wartość dla klucza „wiek”.
- Dodaj do słownika z zadania 1 nowy klucz „zawód” z odpowiednią wartością.
- Stwórz słownik z trzema parami klucz-wartość, a następnie usuń jeden klucz używając del.
- Stwórz słownik książki zawierający: tytuł, autor, rok wydania, liczba stron. Wyświetl wszystkie klucze tego słownika używając metody keys().
- Używając słownika z zadania 4, wyświetl wszystkie wartości używając metody values().
- Stwórz słownik produktu (nazwa, cena, ilość). Zaktualizuj cenę używając metody update().
- Stwórz słownik z trzema kluczami. Spróbuj pobrać wartość dla nieistniejącego klucza używając metody get() z wartością domyślną „Brak danych”.
Krotki
- Stwórz krotkę zawierającą nazwy 4 pór roku. Wyświetl całą krotkę.
- Z krotki utworzonej w poprzednim zadaniu wyświetl drugą porę roku (indeks 1).
- Stwórz krotkę z liczbami (1, 2, 3, 4, 5). Spróbuj zmienić pierwszy element na 10. Opisz co się stało.
- Stwórz krotkę („kot”, „pies”, „kot”, „papuga”, „kot”). Policz ile razy występuje „kot” używając odpowiedniej metody.
- Stwórz krotkę jednoelementową zawierającą liczbę 5. Sprawdź jej typ używając type().
- Stwórz dwie krotki i połącz je używając operatora +. Wyświetl wynik.
- Znajdź indeks pierwszego wystąpienia wartości „zima” w krotce zawierającej pory roku.
Zestawy (sets)
- Stwórz zestaw zawierający liczby: 1, 2, 3, 4, 5. Wyświetl zestaw.
- Stwórz zestaw z duplikatami: {1, 2, 2, 3, 3, 3, 4}. Wyświetl go i zaobserwuj co się stało z duplikatami.
- Stwórz listę z duplikatami [„a”, „b”, „a”, „c”, „b”] i przekształć ją w zestaw aby usunąć duplikaty.
- Stwórz zestaw {1, 2, 3} i dodaj do niego liczbę 4 używając metody add().
- Stwórz dwa zestawy: A = {1, 2, 3, 4} i B = {3, 4, 5, 6}. Znajdź ich sumę (union) używając operatora |.
- Używając zestawów z zadania 45, znajdź ich przecięcie (intersection) używając operatora &.
- Używając zestawów z zadania 45, znajdź różnicę A – B (elementy w A, których nie ma w B).
- Stwórz zestaw {10, 20, 30} i usuń z niego element 20 używając metody discard().
Zadania złożone
- Stwórz listę zawierającą różne typy danych: int, float, string, bool, None. Wyświetl typ każdego elementu.
- Stwórz słownik reprezentujący dane pracownika: imię, stanowisko, pensja (jako float), czy jest na etacie (bool). Wyświetl słownik i każdą wartość osobno z opisem.
- Stwórz listę liczb od 1 do 20. Stwórz z niej trzy nowe listy: jedną z liczbami parzystymi, drugą z nieparzystymi, trzecią z liczbami większymi od 10.
- Stwórz krotkę z trzema liczbami. Spróbuj przekształcić ją na listę, zmodyfikować pierwszy element, a następnie przekształcić z powrotem na krotkę. Wyświetl wynik końcowy.
- Stwórz słownik z danymi 3 książek (każda książka to zagnieżdżony słownik z tytułem, autorem, rokiem). Wyświetl wszystkie tytuły książek.
- Pobierz od użytkownika dwie liczby jako stringi (użyj input()), przekształć je na int, dodaj do siebie i wyświetl wynik.
- Stwórz dwa zestawy liczb. Znajdź wszystkie możliwe operacje na zestawach (union, intersection, difference, symmetric difference) i wyświetl wyniki z opisami.
- Stwórz listę z 10 losowymi liczbami (mogą się powtarzać). Przekształć ją na zestaw, policz ile było unikalnych wartości, a następnie przekształć z powrotem na posortowaną listę.
- Stwórz „bazę danych” studentów jako listę słowników. Każdy słownik to student z kluczami: imię, wiek, ocena. Stwórz minimum 3 studentów i wyświetl całą strukturę.
PODSUMOWANIE
W tej lekcji poznajesz cztery kolekcje, czyli typy przechowujące wiele wartości naraz.
| Typ | Zapis | Dostęp do elementów | Zmienny? | Duplikaty |
|---|---|---|---|---|
lista (list) | [1, 2, 3] | indeks (od 0) | tak | tak |
słownik (dict) | {"k": "v"} | klucz | tak | klucze unikalne |
krotka (tuple) | (1, 2, 3) | indeks (od 0) | nie | tak |
zestaw (set) | {1, 2, 3} | brak indeksów, kolejność nie jest gwarantowana | tak | nie (usuwane) |
Listy
- Indeksy zaczynają się od
0. Indeks-1to ostatni element. - Wycinek
lst[a:b]obejmuje elementy odadob, bezb. - Dodawanie:
append()na końcu,insert(indeks, wartość)w wybranym miejscu,extend()dodaje wiele elementów. - Usuwanie:
remove(wartość)działa po wartości,pop(indeks)po indeksie i zwraca usunięty element,delusuwa przez indeks lub wycinek,clear()czyści całą listę. sort()ireverse()zmieniają oryginalną listę, acopy()tworzy kopię.- Lista może zawierać inną listę:
lst[3][0]to pierwszy element listy zagnieżdżonej.
Słowniki
- Wartość pobierasz po kluczu:
osoba["name"]. - Nowy klucz dodajesz przypisaniem:
osoba["city"] = "Łódź". To samo przypisanie dla istniejącego klucza zmienia jego wartość. get(klucz, domyślna)nie zgłasza błędu, gdy klucza brak. Zapisosoba["brak"]zgłasza błąd.keys(),values()iitems()zwracają odpowiednio klucze, wartości i pary.
Krotki
- Nie można zmienić elementu po utworzeniu (
TypeError). Trzeba utworzyć nową krotkę. - Krotka jednoelementowa wymaga przecinka:
(5,). Zapis(5)to zwykła liczbaint. - Mają tylko dwie metody:
count()iindex().
Zestawy
- Duplikaty są usuwane automatycznie.
set(lista)to sposób na usunięcie duplikatów z listy. remove()zgłasza błąd, gdy elementu brak.discard()nie zgłasza.- Operacje:
|suma,&przecięcie,-różnica,^różnica symetryczna.
Typowe pułapki
- Pomylenie
remove()(po wartości) zpop()(po indeksie). - Zapomnienie, że koniec wycinka nie wchodzi do wyniku.
sort()zmienia listę i niczego nie zwraca, więc zapislst = lst.sort()zapisze wlstwartośćNone.- Krotka bez przecinka:
(5)nie jest krotką. - Pusty zestaw tworzy się przez
set(). Zapis{}tworzy pusty słownik.
Minimum, które powinno wejść w pamięć
Jeżeli masz zapamiętać tylko kilka rzeczy z tej lekcji, zapamiętaj te:
- Cztery nawiasy, cztery typy:
[]lista,{"k": "v"}słownik,()krotka,{1, 2}zestaw. - Indeksy zaczynają się od 0, a
-1to ostatni element. Wycinek[a:b]nie zawiera elementub. - Krotka jest niezmienna, a jednoelementowa musi mieć przecinek:
(5,). - Zestaw nie ma duplikatów i indeksów.
set(lista)usuwa duplikaty. - Słownik czyta się po kluczu.
["klucz"]zgłosi błąd, gdy klucza brak, a.get("klucz", domyślna)nie. remove()usuwa po wartości,pop()po indeksie (i zwraca element).append()dodaje jeden element na końcu,extend()wiele elementów,insert()w wybranym miejscu.- Operacje na zestawach:
|suma,&przecięcie,-różnica,^różnica symetryczna. - Lista może zawierać listy i słowniki, a słownik może zawierać słowniki. Do zagnieżdżonych danych sięgasz po kolei:
dane[1]["ocena"].
Ściągawka – najważniejsze polecenia i składnia
Lista
lst = [1, 2, 3]
lst[0] # pierwszy lst[-1] # ostatni
lst[1:3] # wycinek (bez indeksu 3)
lst[:2] lst[2:] lst[-3:]
lst[0] = 10 # zmiana elementu
lst[3][0] # element listy zagnieżdżonej
| Metoda / operator | Działanie |
|---|---|
lst.append(x) | dodaje x na końcu |
lst.insert(i, x) | wstawia x na indeks i |
lst.extend([x, y]) | dodaje wiele elementów |
lst.remove(x) | usuwa po wartości |
lst.pop() / lst.pop(i) | usuwa i zwraca ostatni / element z indeksu i |
del lst[i] | usuwa przez indeks lub wycinek |
lst.clear() | czyści listę |
lst.sort() / lst.reverse() | sortuje / odwraca (zmienia oryginał) |
lst.count(x) / lst.index(x) | liczba wystąpień / indeks pierwszego |
lst.copy() | kopia listy |
lst1 + lst2, lst * 3 | łączenie, powtarzanie |
len(lst), x in lst | długość, sprawdzenie obecności |
Słownik
osoba = {"name": "Kama", "age": 30}
osoba["name"] # odczyt (błąd, gdy brak klucza)
osoba.get("city", "brak") # odczyt bez błędu, z wartością domyślną
osoba["city"] = "Łódź" # nowy klucz lub zmiana wartości
del osoba["age"] # usunięcie klucza
osoba.keys() osoba.values() osoba.items()
osoba.pop("age") # usuwa i zwraca wartość
osoba.update({"age": 31}) # aktualizacja wielu kluczy
osoba.clear()
Krotka
k = ("kot", "pies", "kot")
k[0] k[-1] k[1:3] # jak w liście
k.count("kot") k.index("pies")
t = (5,) # jednoelementowa: przecinek obowiązkowy
# k[0] = "ptak" # TypeError
Zestaw
s = {1, 2, 3}
s.add(4)
s.remove(1) # błąd, gdy brak elementu
s.discard(99) # bez błędu
unikalne = set([1, 2, 2, 3])
A | B A & B A - B A ^ B
A.union(B) A.intersection(B) A.difference(B) A.symmetric_difference(B)
Zamiana typów kolekcji
set(lista) list(krotka) tuple(lista)
Quiz – sprawdź się
Pytanie 1. (teoria) Która kolekcja nie pozwala zmienić elementu po utworzeniu?
- A) lista
- B) słownik
- C) krotka
- D) zestaw
Pytanie 2. Co zostanie wyświetlone?
lst = ["a", "b", "c", "d", "e"]
print(lst[1:4])
print(lst[-2])
print(lst[:2])
Pytanie 3. Co zostanie wyświetlone?
lst = [1, 2, 3]
lst.append(4)
lst.insert(0, 9)
lst.pop()
print(lst)
Pytanie 4. Znajdź błąd w kodzie i napisz, jak go naprawić.
punkty = (10, 20, 30)
punkty[0] = 15
Pytanie 5. Jakie typy zostaną wyświetlone?
a = (7)
b = (7,)
print(type(a), type(b))
Pytanie 6. Co zostanie wyświetlone?
osoba = {"name": "Kama", "age": 30}
osoba["city"] = "Łódź"
osoba["age"] = 31
print(osoba["name"])
print(osoba.get("age"))
print(osoba.get("zawod", "brak"))
Pytanie 7. Dlaczego ten kod nie działa? Jak odczytać wartość bez błędu?
osoba = {"name": "Kama"}
print(osoba["age"])
Pytanie 8. Co zostanie wyświetlone?
A = {1, 2, 3, 4}
B = {3, 4, 5, 6}
print(A & B)
print(A - B)
print(A ^ B)
Pytanie 9. Uzupełnij kod tak, aby usunąć duplikaty z listy i wyświetlić wynik posortowany rosnąco.
liczby = [5, 3, 5, 1, 3, 9]
unikalne = ____(liczby)
unikalne = list(unikalne)
unikalne.____()
print(unikalne)
Pytanie 10. (wybór poprawnej składni) Który zapis usuwa z listy lst element o indeksie 1 i zwraca go?
- A)
lst.remove(1) - B)
lst.pop(1) - C)
lst.clear(1) - D)
lst.del(1)
Pytanie 11. (zadanie praktyczne) Dana jest lista:
studenci = [
{"imie": "Ola", "ocena": 5},
{"imie": "Jan", "ocena": 3}
]
Napisz jedną instrukcję, która wyświetli ocenę Jana.
Pytanie 12. (zadanie praktyczne z input()) Napisz kod, który pobierze od użytkownika w jednej linii liczby oddzielone spacją (np. 4 7 9 2), zapisze je jako listę liczb całkowitych i wyświetli pierwszą oraz ostatnią z nich.
Odpowiedzi
1. C. Krotka jest niemutowalna (niezmienna).
2.
['b', 'c', 'd']
d
['a', 'b']
Wycinek [1:4] nie zawiera elementu o indeksie 4. Indeks -2 to przedostatni element.
3. [9, 1, 2, 3]. Kolejne kroki: [1, 2, 3, 4], potem [9, 1, 2, 3, 4], a pop() bez argumentu usuwa ostatni element (4).
4. Krotki nie można zmieniać, więc kod zgłosi TypeError. Naprawa: utworzyć nową krotkę (punkty = (15, 20, 30)) albo zamienić na listę, zmienić element i zamienić z powrotem: p = list(punkty), p[0] = 15, punkty = tuple(p).
5. <class 'int'> <class 'tuple'>. Same nawiasy (7) nie tworzą krotki. Potrzebny jest przecinek.
6.
Kama
31
brak
osoba["age"] = 31 zmieniło istniejącą wartość. Klucza "zawod" nie ma, więc get() zwróciło wartość domyślną.
7. W słowniku nie ma klucza "age", więc odwołanie przez [] zgłosi błąd (KeyError). Bez błędu odczytasz tak: print(osoba.get("age")) (wynik None) lub print(osoba.get("age", "brak danych")).
8.
{3, 4}
{1, 2}
{1, 2, 5, 6}
9. unikalne = set(liczby) oraz unikalne.sort(). Wynik: [1, 3, 5, 9]. Zestaw usuwa duplikaty, ale nie ma kolejności ani metody sort(), dlatego najpierw zamieniamy go na listę.
10. B. pop(1) usuwa po indeksie i zwraca element. remove() działa po wartości, a clear() i del w tej formie nie są poprawne.
11. print(studenci[1]["ocena"]). Najpierw wybieramy drugi element listy (indeks 1), czyli słownik Jana, a potem klucz "ocena". Wynik: 3.
12. Przykładowe rozwiązanie:
liczby = [int(x) for x in input("Podaj liczby: ").split()]
print(liczby[0], liczby[-1])
Poprawne jest też rozwiązanie bez list comprehension: split(), a następnie zamiana każdego elementu na int osobno. Kluczowe jest rzutowanie na int i użycie indeksów 0 oraz -1.