Space Python Ładowanie Pythona…

Uprawnienia do śluzy

Napisz kodŚredni 2 etapy

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.

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.

Sprawdź uprawnienia
Działa dla każdego

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.

Sprawdź każdą czynność
Działa dla każdego
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

Porównywanie zbiorów

issubset() sprawdza czy jeden zbiór zawiera się w drugim. issuperset() sprawdza nadzbiór. isdisjoint() czy zbiory są rozłączne.
porownywanie-zbiorow.py
# 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))
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:].