Space Python Ładowanie Pythona…

Wpisy według poziomu

Napisz kodŁatwy 2 etapy

Na koniec każdego okrążenia kierownik lotu dostaje jedną linię o dzienniku: ile było wpisów każdego poziomu. Nagły wzrost liczby ostrzeżeń mówi więcej niż pojedynczy wpis.

Policz wpisy według poziomu, a potem spraw, żeby liczenie przetrwało poziom, którego nikt nie przewidział.

Policz wpisy każdego poziomu w słowniku o nazwie counts, a potem wypisz każdy poziom z jego liczbą:

INFO: 4
WARN: 3
ERROR: 1

Zacznij od counts = {"INFO": 0, "WARN": 0, "ERROR": 0}. Poziom to drugie słowo wpisu, line.split()[1], a counts[level] += 1 dodaje jeden do jego licznika.

Licz według poziomu
Słownik liczników, dowolny dziennik

Ukończ etap 1, aby odblokować ten etap.

Inżynierowie włączyli logowanie DEBUG i kod startowy zatrzymuje się teraz z błędem KeyError: 'DEBUG'. Licz każdy poziom, który się pojawi, i wypisz poziomy w kolejności alfabetycznej, żeby raport wyglądał tak samo, w jakiejkolwiek kolejności się pojawią:

DEBUG: 2
ERROR: 1
INFO: 4
WARN: 3

Zacznij od pustego słownika i użyj counts.get(level, 0) + 1. sorted(counts) daje poziomy od A do Z.

Licz każdy poziom
Działa dla każdego dziennika
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

Iterowanie po słowniku

Pętla for domyślnie iteruje po kluczach. values() zwraca wartości. items() zwraca pary klucz-wartość do rozpakowania.
iterowanie-po-slowniku.py
# Iterowanie po słowniku

distances = {
    "Księżyc": 384400,
    "Mars": 225000000,
    "Wenus": 108000000
}

# Iterowanie po kluczach
print("Cele:")
for target in distances:
    print(f"  - {target}")

# Iterowanie po wartościach
print("\nOdległości:")
for km in distances.values():
    print(f"  {km:,} km")

# Iterowanie po parach
print("\nKompletne dane:")
for target, km in distances.items():
    print(f"  {target}: {km:,} km")
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:].