Matura informatyka 2022 maj (poziom rozszerzony) - zadanie 4.1

Treść zadania:
Podaj, ile jest w pliku liczby.txt takich liczb, których cyfry pierwsza i ostatnia są takie same.
Zapisz tę z nich, która występuje w pliku liczby.txt jako pierwsza.
W pliku z danymi jest co najmniej jedna taka liczba.
Odpowiedź dla danych z pliku przyklad.txt: 26 626
(26 takich liczb, które mają pierwszą i ostatnią cyfrę taką samą; pierwszą z nich w pliku przykładowym jest 626)
Rozwiązanie:
Odczytujemy dane z pliku - tym razem nie konwertujemy ich na int , ponieważ będziemy sprawdzać pierwszy i ostatni znak cyfry. Warto pamiętać o usunięciu białych znaków przy pomocy metody strip() .
with open("dane/liczby.txt", "r") as f:
nums = [num.strip() for num in f.readlines()]
total = 0
first_num = None
Następnie w prostej pętli sprawdzamy, czy pierwszy znak równa się ostatniemu. Jeśli tak - zwiększamy licznik. Gdy first_num jest None , możemy uznać, że spotkaliśmy pierwszą taką liczbę w pliku - zapisujemy ją do zmiennej.
for str_num in nums:
if str_num[0] == str_num[-1]:
total += 1
if first_num is None:
first_num = str_num
print(f"{total} {first_num}")
Dlaczego użyłem is zamiast == ? Można poczytać o tym np.: tutaj.
Cały program:
with open("dane/liczby.txt", "r") as f:
nums = [num.strip() for num in f.readlines()]
total = 0
first_num = None
for str_num in nums:
if str_num[0] == str_num[-1]:
total += 1
if first_num is None:
first_num = str_num
print(f"{total} {first_num}")
Wynik:
18 93639
Źródło: https://arkusze.pl/matura-informatyka-2022-maj-poziom-rozszerzony/




