Space Python Ładowanie Pythona…

Przefiltruj dziennik

Napisz kodŚredni 2 etapy

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.

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.

Przefiltruj dziennik
Nowa lista, dziennik nietknięty

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.

Filtruj według poziomu
Działa dla każdego poziomu
Nie jesteś zalogowany, więc postęp zostaje tylko w tej przeglądarce. Zaloguj się, aby go zapisać i korzystać z podpowiedzi oraz rozwiązań.

Podpowiedzi

Pętla for - podstawy

Pętla for przechodzi przez każdy element sekwencji. Działa na listach, stringach, zakresach. Podstawowy sposób iteracji w Pythonie.
petla-for-podstawy.py
# 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!")
Otwórz cały przykład
script.py
PythonWiersz 1, kol. 1Spacje: 4
Ładowanie środowiska Pythona…

Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].