2.3 Największa liczba w pliku przykładowym
Matura maj 2023 - Matura z informatyki: arkusze krok po kroku (Python)
Zadanie 2.3 (2 pkt): największa liczba z pliku. Pułapka: `max(numbers)` porównuje napisy znak po znaku, a wtedy "111" jest większe niż "1000". `key=lambda s: int(s, 2)` każe porównywać wartości. Dla pliku przykładowego arkusz podaje: 10001111110111100000.
def blocks(n):
b = 1
previous = n % 2 # ostatnia cyfra zapisu binarnego
n = n // 2
while n > 0:
digit = n % 2
if digit != previous: # inna cyfra niż poprzednia: zaczyna się nowy blok
b = b + 1
previous = digit
n = n // 2
return b
with open("bin_przyklad.txt") as f:
numbers = [line.strip() for line in f] # zapisy binarne jako napisy
# 2.3 największa liczba: porównujemy wartości, a nie napisy (jako napisy "111" > "1000")
largest = max(numbers, key=lambda s: int(s, 2))
print("2.3", largest)Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu Matura z informatyki: arkusze krok po kroku·Zaloguj się, aby zapisać postęp na koncie.