Przed Tobą 10 zadań testowych. Sprawdź, czy Twoja wiedza z działu Świętość Maturalna: Pliki i Formatowanie wystarczy, by zdobyć komplet punktów na maturze.
Pytanie 1 / 10Programowanie
Dlaczego do otwierania plików w Pythonie na maturze zaleca się używanie konstrukcji `with open(...) as file:`?
▸ Wszystkie 10 pytań z wyjaśnieniamiRozwiń, jeśli wolisz przejrzeć zestaw bez rozwiązywania testu.
Każde zadanie programistyczne na maturze zaczyna się od pliku dane.txt i kończy na wyniki.txt. Opanuj operacje wejścia/wyjścia, parsowanie danych i bezpieczne zarządzanie plikami.
1.Dlaczego do otwierania plików w Pythonie na maturze zaleca się używanie konstrukcji `with open(...) as file:`?
A.Przyspiesza to proces odczytu z dysku twardego
B.Automatycznie zamyka plik po zakończeniu bloku kodu, nawet w przypadku błędu— poprawna
C.Konwertuje od razu wszystkie wczytane dane na liczby całkowite
D.Pozwala na ominięcie limitów pamięci RAM dla bardzo dużych plików
Dlaczego: Instrukcja `with` tworzy tzw. menedżera kontekstu (context manager). Gwarantuje on, że plik zostanie bezpiecznie zamknięty (wywołanie `file.close()`), gdy tylko program opuści wcięty blok kodu, zapobiegając wyciekom pamięci.
2.Co zwróci metoda `.readlines()` wywołana na obiekcie otwartego pliku tekstowego?
A.Jeden długi ciąg znaków (string) zawierający całą zawartość pliku
B.Listę, w której każdym elementem jest jeden wiersz z pliku— poprawna
C.Krotkę (tuple) ze słowami zawartymi w pliku
D.Słownik, gdzie kluczem jest numer linii, a wartością jej treść
Dlaczego: Metoda `.readlines()` czyta cały plik do końca i zwraca listę stringów. Warto pamiętać, że każdy taki string (linia z pliku) domyślnie posiada na końcu znak nowej linii (`\n`).
3.Wczytujesz dane z pliku i zauważasz, że na końcu każdego słowa znajduje się niewidoczny znak `\n`. Jakiej metody użyjesz na wczytanym stringu, aby go usunąć?
A.`.clean()`
B.`.trim()`
C.`.strip()`— poprawna
D.`.pop()`
Dlaczego: W języku Python metoda `.strip()` służy do usuwania białych znaków (spacji, tabulacji, `\n`) z początku i końca stringa. Do usunięcia ich tylko z prawej strony (z końca) można użyć `.rstrip()`.
4.Jaki tryb otwarcia pliku w funkcji `open("wyniki.txt", mode)` pozwoli na dopisywanie nowych linijek na końcu pliku, bez usuwania jego dotychczasowej zawartości?
A.`"w"` (write)
B.`"r"` (read)
C.`"a"` (append)— poprawna
D.`"x"` (exclusive creation)
Dlaczego: Tryb `"a"` (append) otwiera plik do zapisu, ale wskaźnik pliku jest ustawiany na jego końcu. Wszystkie nowe dane są dopisywane (dodawane) do już istniejącej zawartości.
5.Co się stanie, jeśli użyjesz trybu `"w"` przy otwieraniu pliku `wyniki.txt`, który już istnieje na dysku i zawiera cenne dane?
A.Python zgłosi błąd `FileExistsError` i zatrzyma program
B.Nowe dane zostaną dopisane na początku pliku
C.Plik zostanie całkowicie wyczyszczony (nadpisany) przed dodaniem nowych danych— poprawna
D.Wyskoczy monit systemowy z prośbą o potwierdzenie nadpisania pliku
Dlaczego: Tryb `"w"` (write) od razu tworzy nowy plik lub bezlitośnie nadpisuje (kasuje zawartość) już istniejący plik o tej samej nazwie, ustawiając jego rozmiar na 0 bajtów.
6.Linia w pliku wygląda tak: `12 45 67 89`. Jakiej metody użyjesz, by podzielić te liczby względem spacji i stworzyć z nich listę napisów?
A.`.split()`— poprawna
B.`.slice()`
C.`.divide()`
D.`.separate()`
Dlaczego: Metoda `.split()` domyślnie dzieli ciąg znaków w miejscach występowania białych znaków (spacji, twardych spacji, tabulacji) i zwraca tablicę (listę) podzielonych elementów.
7.Czy wywołanie metody `file.write("Odpowiedź")` automatycznie dodaje na końcu wstawionego tekstu znak nowej linii?
A.Tak, podobnie jak funkcja `print()`
B.Nie, znak nowej linii `\n` trzeba dopisać ręcznie wewnątrz stringa— poprawna
C.Tak, ale tylko jeśli plik otwarty jest w trybie `"a"`
D.Nie, aby dodać znak nowej linii trzeba użyć metody `file.writeline()`
Dlaczego: W przeciwieństwie do standardowej funkcji `print()`, metoda `.write()` wstawia wyłącznie dokładnie to, co zostało jej przekazane. Aby zejść linijkę niżej, musimy jawnie dopisać `file.write("Odpowiedź\n")`.
8.Jak najoptymalniej przeiterować linijka po linijce przez gigantyczny plik tekstowy, nie ładując go w całości do pamięci RAM?
A.`for line in file.read():`
B.`for line in file.readlines():`
C.`for line in file:`— poprawna
D.`while file.hasLines():`
Dlaczego: Otwarty obiekt pliku `file` jest domyślnie iteratorem (generatorem). Zapis `for line in file:` pobiera z dysku zawsze tylko jedną kolejną linijkę w danej iteracji, co minimalizuje zużycie pamięci.
9.Masz otwarty plik `file` z liczbami (po jednej w linii). Chcesz wczytać pierwszą linię i od razu rzutować ją na liczbę całkowitą. Jaki zapis jest bezpieczny i poprawny?
A.`x = int(file.read(1))`
B.`x = int(file.readline().strip())`— poprawna
C.`x = integer(file.next())`
D.`x = file.getline().to_int()`
Dlaczego: Najpierw `readline()` pobiera cały wiersz jako tekst z pliku. Następnie `.strip()` obcina znak `\n` z końca. Dopiero tak oczyszczony (string) wrzucamy do funkcji konwertującej `int()`.
10.Jeśli zapomnisz podać drugi argument (mode) w wywołaniu, np.: `open("dane.txt")`, w jakim trybie otworzy się domyślnie ten plik?
A.`"w"` (write)
B.`"a"` (append)
C.`"r"` (read)— poprawna
D.Wyrzuci błąd `ValueError: missing mode`
Dlaczego: Domyślnym trybem otwierania pliku wbudowanej funkcji `open()` jest zawsze `"r"` (odczyt tekstowy). Pozwala to na wczytywanie danych, bez ryzyka przypadkowego zamazania pliku.
O czym musisz pamiętać w zadaniach z Programowania?
Zadania z programowania na maturze to sprawdzian logicznego myślenia, znajomości klasycznych algorytmów (np. sortowania, wyszukiwania, operacji na liczbach i napisach) oraz czytania ze zrozumieniem.
✓ Pamiętaj, że w Pythonie indeksowanie struktur (jak listy czy napisy) zaczyna się od 0, natomiast w pseudokodzie CKE najczęściej od 1.
✓
Zwracaj szczególną uwagę na poprawne wczytywanie danych – pamiętaj o rzutowaniu na odpowiednie typy (np. int()) i pozbywaniu się białych znaków (strip()).
✓ Dbaj o złożoność obliczeniową. Jeśli to możliwe, unikaj wielokrotnie zagnieżdżonych pętli, aby Twój program zdążył się wykonać w regulaminowym czasie.
Strategia Maturalna (Python / Algorytmy):
"Zanim rzucisz się do pisania kodu na komputerze, zrozum problem na kartce papieru. Zawsze korzystaj z danych z pliku przyklad.txtw trakcie testowania swoich rozwiązań. Jeśli odpowiedź zgadza się z plikiem z odpowiedziami do przykładu, masz ogromne szanse, że Twój kod zadziała poprawnie również dla głównych danych z arkusza."
To nie koniec powtórki!
Przećwicz kolejny zestaw pytań i utrwal składnię oraz algorytmy.