Pierwszy błąd
Gdy na pokładzie coś pójdzie nie tak, inżynierowie szukają w dzienniku pierwszego błędu: późniejsze błędy to często tylko skutki pierwszego. W długim dzienniku nie ma sensu czytać dalej, gdy już go znaleziono.
Znajdź pierwszy błąd, zatrzymaj tam wyszukiwanie i zgłoś, co zrobiło wyszukiwanie.
Ukończ etap 1, aby odblokować ten etap.
Znajdź pierwszy wpis ERROR, wypisz jego numer linii, licząc od 1, razem z samym wpisem i zakończ tam szukanie:
Pierwszy błąd w linii 4: [T+00:14:47] ERROR Fuel valve 2 not responding
Użyj pętli z enumerate(log, start=1). Szukaj "] ERROR", jak w „Policz ostrzeżenia”, żeby wiadomość, która tylko wspomina to słowo, się nie liczyła. break kończy pętlę.
Ukończ etap 1, aby odblokować ten etap.
Pokaż, jaką część dziennika musiało przejrzeć wyszukiwanie: licz sprawdzone linie i wypisz sumę po pętli. Gdy nie ma żadnego błędu, najpierw wypisz Brak błędów:
Pierwszy błąd w linii 4: [T+00:14:47] ERROR Fuel valve 2 not responding Sprawdzono 4 z 6 linii
Gdy w dzienniku nie ma błędów:
Brak błędów Sprawdzono 6 z 6 linii
Ustaw checked = 0 i found = False przed pętlą. W pętli dodawaj 1 do checked dla każdej linii, a found = True ustaw tuż przed break.
Podpowiedzi
Break i continue w pętlach
# break - przerywa pętlę całkowicie
print("Szukanie anomalii:")
data = [10, 12, 11, 9, 50, 8, 7]
for value in data:
if value > 20:
print(f"ANOMALIA: {value}")
break
print(f"Wartość OK: {value}")
# continue - pomija resztę iteracji
print("\nFiltrowanie danych:")
results = [5, -2, 10, -8, 15, -3]
for result in results:
if result < 0:
continue # Pomijamy ujemne
print(f"Poprawny wynik: {result}")
Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].