Space Python Ładowanie Pythona…

Ustawienia z wartościami domyślnymi

Napisz kodŚredni 2 etapy

Panel misji ma wartość domyślną dla każdego ustawienia, a profil każdego użytkownika przechowuje tylko to, co ten zmienił. Gdy użytkownik otwiera panel, trzeba połączyć jedno z drugim: jego wartości tam, gdzie je ustawił, wartości domyślne wszędzie indziej.

Połącz ustawienia, a potem spraw, żeby łączenie odrzucało ustawienia, które nie istnieją.

Zbuduj settings: ustawienia domyślne z wartościami użytkownika na wierzchu. Zostaw DEFAULTS bez zmian, bo dzielą je wszyscy użytkownicy. Potem wypisz każde ustawienie:

units: imperial
language: en
telemetry_rate_hz: 10
dark_mode: True
alerts: all

DEFAULTS.copy() tworzy osobny słownik, a settings.update(user_settings) nadpisuje klucze ustawione przez użytkownika.

Połącz ustawienia
Wartości domyślne pozostają wspólne

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

Profil użytkownika ma literówkę: "dark_mod". Przy update() staje się ona szóstym ustawieniem, którego nic nie czyta. Kopiuj tylko klucze, które istnieją w DEFAULTS, a pozostałe zgłoś przed ustawieniami:

Nieznane ustawienie pominięte: dark_mod
units: imperial
language: en
telemetry_rate_hz: 10
dark_mode: True
alerts: all

Przejdź pętlą po user_settings.items() i sprawdzaj każdy klucz przez in DEFAULTS.

Odrzucaj nieznane ustawienia
Działa dla każdego profilu
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

Modyfikowanie słowników

Dodawanie przez przypisanie nowego klucza. del usuwa element. pop() usuwa i zwraca wartość. update() dodaje wiele par naraz.
modyfikowanie-slownikow.py
# Modyfikowanie słowników

planet = {"name": "Mars", "moons": 2}

# Dodawanie nowego klucza
planet["diameter"] = 6779
print("Po dodaniu:", planet)

# Zmiana wartości
planet["moons"] = 3  # Pomyłka - poprawmy
planet["moons"] = 2
print("Po zmianie:", planet)

# Usuwanie elementu
del planet["diameter"]
print("Po del:", planet)

# pop() - usuwa i zwraca wartość
moons = planet.pop("moons")
print("Usunięte księżyce:", moons)
print("Pozostało:", planet)

# update() - dodaje wiele elementów
planet.update({"type": "skalista", "rings": False})
print("Po update:", planet)
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:].