Przelicznik jednostek
Agencje partnerskie przysyłają liczby we własnych jednostkach: milach, funtach, psi, stopniach Fahrenheita. W 1999 roku pomyłka między funto-sekundami siły a niutono-sekundami kosztowała NASA sondę Mars Climate Orbiter. Zespół chce jednego przelicznika, którego używają wszyscy, opartego na jednej tabeli, który głośno odmawia, gdy nie zna jednostki.
Zbuduj go, a potem naucz go temperatur.
Ukończ etap 1, aby odblokować ten etap.
Napisz convert(value, from_unit, to_unit). Dla pary z CONVERSIONS pomnóż przez jej współczynnik; dla pary w odwrotnej kolejności podziel; dla dwa razy tej samej jednostki zwróć wartość. Zgłoś ValueError dla jednostki, której tabela nie zna, nieznana jednostka: ..., albo dla dwóch znanych jednostek bez współczynnika między nimi. Potem uruchom prośby:
400 km = 248.55 mi 12.5 lb = 5.67 kg 7.8 km/h = 2.17 m/s 101.3 kPa = 14.69 psi ODMOWA 3 km/s -> km/h: nieznana jednostka: km/s ODMOWA 5 kg -> kPa: brak przeliczenia z kg na kPa 42 N = 42.00 N
UNITS, każda jednostka występująca w tabeli, jest zbudowany za ciebie na górze. Najpierw sprawdź z nim obie jednostki.
Ukończ etap 1, aby odblokować ten etap.
Temperatury potrzebują czegoś więcej niż współczynnika: stopnie Fahrenheita to stopnie Celsjusza razy 1.8 plus 32. Tabela zawiera teraz (mnożnik, przesunięcie) dla każdej pary. Przeliczaj przez value * factor + offset, a w drugą stronę przez (value - offset) / factor:
400 km = 248.55 mi 12.5 lb = 5.67 kg -60 C = 213.15 K 77 K = -196.15 C -40 F = -40.00 C ODMOWA 300 K -> F: brak przeliczenia z K na F 21 C = 21.00 C
Reszta convert() zostaje bez zmian. Kelwiny na stopnie Fahrenheita nie mają pary w tabeli, więc są odrzucane.
Podpowiedzi
Tworzenie słowników
# Słowniki - pary klucz: wartość
# Tworzenie słownika
ship = {
"name": "Enterprise",
"class": "Constitution",
"crew": 430,
"active": True
}
print("Statek:", ship)
# Dostęp do wartości
print("Nazwa:", ship["name"])
print("Załoga:", ship["crew"])
# Metoda get() - bezpieczniejsza
print("Kapitan:", ship.get("captain", "Nieznany"))
# Pusty słownik
data = {}
print("Pusty:", data)
Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].