Space Python Ładowanie Pythona…

Funkcja parsera

Napraw kodŚredni 2 etapy

Parser danych z „Z linii rekord” żyje w jednej pętli w jednym programie. Kontrola alarmów i raport dzienny też chcą parsować linie telemetrii, a kopiowanie pętli do każdego z nich to sposób, w jaki błędy zostają naprawione w jednym miejscu, a w drugim nie.

Zamień parsowanie w funkcję, którą może wywołać każdy program, a potem pozwól jej samej decydować, które linie zasługują na rekord.

Przenieś parsowanie jednej linii do funkcji parse_line(line), która zwraca słownik rekordu, i wywołuj ją w pętli. Wynik musi zostać dokładnie taki sam:

Rekordy: 4
{'time': '09:30:05', 'sensor': 'ENG-2', 'value': 412.5, 'unit': 'C'}
{'time': '09:30:05', 'sensor': 'TANK-1', 'value': 78.3, 'unit': '%'}
{'time': '09:30:10', 'sensor': 'CABIN', 'value': 101.2, 'unit': 'kPa'}
{'time': '09:30:10', 'sensor': 'ENG-2', 'value': 415.0, 'unit': 'C'}

Funkcja przyjmuje jedną linię, dzieli ją i zwraca przez return słownik. Pętla nadal pomija puste linie i komentarze, a potem dodaje parse_line(line).

Zachowaj wynik
Funkcja, która zwraca rekord

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

Przenieś do funkcji także pomijanie. parse_line() usuwa spacje z końców linii, żeby nie trafiły do pól dobrej linii, i zwraca None dla pustej linii, komentarza albo linii, która nie ma dokładnie czterech pól. Pętla zachowuje po prostu wszystko, co nie jest None. Wynik zostaje taki sam:

Rekordy: 4
{'time': '09:30:05', 'sensor': 'ENG-2', 'value': 412.5, 'unit': 'C'}
{'time': '09:30:05', 'sensor': 'TANK-1', 'value': 78.3, 'unit': '%'}
{'time': '09:30:10', 'sensor': 'CABIN', 'value': 101.2, 'unit': 'kPa'}
{'time': '09:30:10', 'sensor': 'ENG-2', 'value': 415.0, 'unit': 'C'}

W pętli: record = parse_line(line), a potem dodaj go, if record is not None.

Pomijaj w funkcji
parse_line() decyduje
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

Zwracanie słownika lub listy

Funkcje mogą zwracać słowniki, listy i inne złożone struktury. Przydatne do grupowania powiązanych danych.
zwracanie-slownika-listy.py
# Zwracanie złożonych struktur danych

def get_planet_data(name):
    """Zwraca słownik z danymi planety."""
    database = {
        "Mars": {"diameter": 6779, "moons": 2, "type": "skalista"},
        "Jowisz": {"diameter": 139820, "moons": 95, "type": "gazowa"},
        "Saturn": {"diameter": 116460, "moons": 83, "type": "gazowa"}
    }
    return database.get(name, {"error": "Nie znaleziono"})

def generate_schedule(days):
    """Generuje listę dni misji."""
    return [f"Dzień {i+1}" for i in range(days)]

# Użycie
mars = get_planet_data("Mars")
print(f"Mars - księżyce: {mars["moons"]}")

schedule = generate_schedule(5)
print(f"Harmonogram: {schedule}")
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:].