Space Python Ładowanie Pythona…

Stary skrypt

Napraw kodTrudny 2 etapy

Każda misja ma taki skrypt: napisany w noc przed startem, którego wszyscy wciąż używają i którego nikt nie ma odwagi ruszyć. Ten wypisuje dzienny raport silników. Powtarza te same dwanaście linii dla każdego silnika, zmienne nazywają się t, m i s, a w przyszłym miesiącu montowany jest czwarty silnik.

Przebuduj go, nie zmieniając ani jednego znaku w tym, co wypisuje, a potem dopilnuj, żeby tak zostało.

Przebuduj skrypt wokół dwóch funkcji, zachowując wynik dokładnie taki, jaki jest teraz:

  • parse_feed(feed) zwraca słownik z każdego czujnika do listy jego wartości, jako float, po kolei;
  • summary_line(sensor, values) zwraca jedną linię raportu: średnią zaokrągloną do jednego miejsca po przecinku, największą wartość i HOT, gdy przekracza 450, w przeciwnym razie OK.

Potem wypisz raport pętlą po liście silników. Wynik, przed i po:

RAPORT SILNIKÓW
===============
ENG-1  średnia 425.6  maks. 431.75  OK
ENG-2  średnia 400.4  maks. 402.25  OK
ENG-3  średnia 440.1  maks. 455.0  HOT
Przegrzane silniki: 1

Najpierw uruchom oryginał i zachowaj jego wynik do porównania. Ukryte testy sprawdzają też, że kopie bloku zniknęły.

Identyczny wynik
Dwie funkcje, bez kopii

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

Dodaj testy assert dla obu funkcji, co najmniej cztery, między funkcjami a raportem. Gdy wszystko jest dobrze, niczego nie wypisują, więc wynik zostaje dokładnie taki sam. Przetestuj parse_feed() na małych własnych danych, a summary_line() na silniku HOT i na silniku OK.

Ukryte testy psują po cichu każdą z twoich funkcji, jedną tak, żeby gubiła ostatni odczyt każdego silnika, a drugą tak, żeby pomijała pierwszą wartość i nigdy nie mówiła HOT, i uruchamiają twój program jeszcze raz: twoje asserty muszą zatrzymać obie.

Nadal identyczny, z testami
Testy, które łapią zepsucie
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

Tworzenie prostych funkcji

Słowo kluczowe def tworzy funkcję. Funkcje grupują kod do wielokrotnego użycia. Wywołujemy je przez nazwę z nawiasami.
tworzenie-prostych-funkcji.py
# Definiowanie funkcji

def greeting():
    """Wyświetla powitanie misji."""
    print("=" * 30)
    print("Witaj w Centrum Kontroli!")
    print("=" * 30)

# Wywołanie funkcji
greeting()

# Funkcja może być wywołana wielokrotnie
def status_report():
    print("Systemy: OK")
    print("Paliwo: 100%")
    print("Załoga: Gotowa")

status_report()
print()
status_report()
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:].