Przefiltruj dziennik
Pełny dziennik misji zawiera każdą regulację grzałek i każde sprawdzenie prędkości kół. Ekran kierownika lotu pokazuje tylko wpisy, które wymagają uwagi: ostrzeżenia i błędy.
Zbuduj taką przefiltrowaną listę z dziennika, a potem spraw, żeby filtr dało się regulować, tak jak w prawdziwych narzędziach do logów.
Ukończ etap 1, aby odblokować ten etap.
Zbuduj nową listę o nazwie alerts z samymi wpisami WARN i ERROR, w kolejności z dziennika. Potem wypisz, ile ich jest, i każdy z nich:
Alerty: 4 [T+00:12:05] WARN Battery 3 temperature high [T+00:14:47] ERROR Fuel valve 2 not responding [T+00:15:42] WARN Star tracker lost lock [T+00:16:03] ERROR Fuel valve 2 still closed
Zacznij od alerts = [], przejdź pętlą po dzienniku i dodawaj przez append() każdą linię, która zawiera "] WARN" albo "] ERROR". Sam dziennik ma zostać kompletny.
Ukończ etap 1, aby odblokować ten etap.
Spraw, żeby filtr dało się regulować. Dodaj dwie linie poniżej pod dziennikiem, a potem zostawiaj każdy wpis, którego poziom to min_level albo poważniejszy, i użyj min_level w pierwszej linii wyniku:
LEVELS = ["INFO", "WARN", "ERROR"] # od najmniej do najbardziej poważnego min_level = "WARN" # pokaż ten poziom i wyższe
WARN i wyżej: 4 [T+00:12:05] WARN Battery 3 temperature high [T+00:14:47] ERROR Fuel valve 2 not responding [T+00:15:42] WARN Star tracker lost lock [T+00:16:03] ERROR Fuel valve 2 still closed
Poziom to drugie słowo każdego wpisu: line.split()[1]. LEVELS.index(level) daje jego rangę, od 0 dla INFO do 2 dla ERROR, więc porównuj rangi.
Podpowiedzi
Pętla for - podstawy
# Pętla for - przechodzi przez elementy
planets = ["Merkury", "Wenus", "Ziemia", "Mars"]
# Podstawowa pętla for
print("Planety skaliste:")
for planet in planets:
print(f" - {planet}")
# Iterowanie po stringu
name = "NASA"
for letter in name:
print(letter, end=" ")
print()
# Range - generuje liczby
print("Odliczanie:")
for i in range(5, 0, -1):
print(i, end="... ")
print("START!")
Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].