Space Python Ładowanie Pythona…

Dziennik w pliku

Napisz kodŁatwy 2 etapy

Dziennik misji mieszkał na liście w Pythonie, która znika w chwili, gdy program się kończy. Jutrzejsza zmiana chce przeczytać, co działo się dziś, a kierowniczka lotu chce pliku, który może wysłać do agencji.

Zapisz dziennik do mission.log, odczytaj go, żeby upewnić się, że wszystko tam jest, a potem dalej go uzupełniaj.

Zapisz każdy wpis do mission.log, po jednym w linii, przez with open("mission.log", "w", encoding="utf-8") as log_file:. Potem otwórz plik ponownie, czytaj go linia po linii i wypisuj każdą linię bez jej znaku nowej linii:

[T+00:10:00] INFO  Wejście na orbitę zakończone
[T+00:12:05] WARN  Wysoka temperatura baterii 3
[T+00:14:47] ERROR Zawór paliwa 2 nie odpowiada

Ukryte testy też otwierają mission.log i sprawdzają, co w nim jest.

Dziennik odczytany z pliku
Sam plik

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

Ponowne otwarcie z "w" skasowałoby dziennik. Napisz append_entry(entry), która otwiera plik z "a" i dopisuje jedną linię na końcu. Dodaj nią nowy wpis, a potem odczytaj plik, wypisz go i policz jego linie:

[T+00:10:00] INFO  Wejście na orbitę zakończone
[T+00:12:05] WARN  Wysoka temperatura baterii 3
[T+00:14:47] ERROR Zawór paliwa 2 nie odpowiada
[T+00:15:42] WARN  Szukacz gwiazd zgubił namiar
Wpisy w mission.log: 4

log_file.readlines() daje listę linii, więc len() je policzy.

Cztery wpisy
append_entry() zachowuje resztę
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

Import modułów systemowych

import-modulow-systemowych.py
# Moduł to skrzynka z narzędziami, którą ktoś już zbudował i przetestował za Ciebie

# Zwykły import wczytuje cały moduł
import sys
import platform
import math

# from ... import wczytuje tylko jedno narzędzie
from math import sqrt

# as nadaje modułowi krótszy przydomek
import random as rng

# Przy zwykłym imporcie: nazwa modułu, kropka, potem narzędzie
print("Wersja Pythona:", platform.python_version())
print("System:", platform.system())
print("Python mieszka w:", sys.executable)

# math zawiera stałe, których nie chciałbyś wpisywać z pamięci
radius_km = 6371
print("Obwód Ziemi:", round(2 * math.pi * radius_km), "km")

# sqrt przyszło samo, więc nie potrzebuje kropki przed sobą
print("Pierwiastek kwadratowy z 9:", sqrt(9))

# rng to po prostu przydomek dla random
print("Losowy dzień roku marsjańskiego:", rng.randint(1, 687))
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:].