Uprawnienia do śluzy
Nikt nie obsługuje śluzy na słowo. Każda czynność wymaga zestawu uprawnień, od podstawowego szkolenia operatora po zgodę dowódcy na otwarcie włazu zewnętrznego, a panel sterowania śluzy sprawdza je, zanim cokolwiek zrobi.
Sprawdź jedną czynność dla jednego członka załogi, a potem całą listę czynności przy śluzie.
Ukończ etap 1, aby odblokować ten etap.
Sprawdź, czy członek załogi ma każde uprawnienie z needed. Jeśli nie, wypisz, czego brakuje, posortowane:
Kowalska nie może obniżyć ciśnienia w śluzie, brakuje: eva_certified
needed <= granted to True, gdy każdy element needed jest w granted. needed - granted to to, czego brakuje.
Ukończ etap 1, aby odblokować ten etap.
Panel sterowania pokazuje naraz wszystkie czynności przy śluzie. ACTIONS przypisuje każdej czynności potrzebne uprawnienia. Wypisz imię członka załogi, a potem każdą czynność: dozwolona albo czego do niej brakuje:
Kowalska: obniżenie ciśnienia w śluzie: dozwolone otwarcie włazu zewnętrznego: brakuje commander_approval, eva_certified wyrównanie ciśnienia w śluzie: dozwolone
Przejdź pętlą po ACTIONS.items(); dla każdej czynności needed - granted jest puste, gdy czynność jest dozwolona.
Podpowiedzi
Porównywanie zbiorów
# Porównywanie zbiorów
inner_planets = {"Merkury", "Wenus", "Ziemia", "Mars"}
rocky_planets = {"Merkury", "Wenus", "Ziemia", "Mars"}
planets_with_atmosphere = {"Wenus", "Ziemia", "Mars"}
# Równość zbiorów
print("Równe:", inner_planets == rocky_planets)
# Podzbiór (subset)
print("Z atmosferą to podzbiór wewnętrznych:",
planets_with_atmosphere.issubset(inner_planets))
# Nadzbiór (superset)
print("Wewnętrzne to nadzbiór z atmosferą:",
inner_planets.issuperset(planets_with_atmosphere))
# Rozłączność (brak wspólnych elementów)
gas_giants = {"Jowisz", "Saturn"}
print("Skaliste i gazowe rozłączne:",
rocky_planets.isdisjoint(gas_giants))
Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].