Przejdź do treści
Matura 2027 • Zadania praktyczne

Świętość Maturalna: Pliki i Formatowanie

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.

Dalej: Struktury Danych (Kolekcje)