Space Python Ładowanie Pythona…

Przelicznik jednostek

Napisz kodŚredni 2 etapy

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.

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.

Siedem próśb
convert() dla dowolnej pary

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.

Temperatury i reszta
Przesunięcia w obie strony
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 słowników

Słownik przechowuje pary klucz:wartość w nawiasach klamrowych. Dostęp przez klucz jest bardzo szybki. get() bezpiecznie pobiera wartość.
tworzenie-slownikow-python.py
# 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)
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:].