Space Python Ładowanie Pythona…

Potwierdź po nazwie

Napisz kodŚredni 2 etapy

Przerwania misji nie da się cofnąć. Starą abort(reason, confirm) można było wywołać jako abort("Test", True), gdzie nic w linii nie mówi, co oznacza to True, a nieuważne kopiuj-wklej mogło przerwać prawdziwą misję.

Spraw, żeby nie dało się potwierdzić przez przypadek.

Zmień linię def na abort(reason, *, confirm), żeby confirm można było przekazać tylko po nazwie i nie dało się go pominąć, i zwracaj odmowę, gdy nie jest prawdziwy. Wywołania wypiszą:

PRZERWANIE: Spada ciśnienie w kabinie
Odmowa przerwania: przekaż confirm=True

Z * na miejscu abort("Test", True) zatrzymuje się błędem TypeError, tak samo jak abort("Test").

Potwierdź albo odmów
Tylko po nazwie, nigdy pominięty

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

Ktoś przekazał confirm="yes", a ponieważ niepusty napis jest prawdziwy, przerwanie się wykonało. Przyjmuj tylko samo True i dodaj wywołanie, które próbowało:

PRZERWANIE: Spada ciśnienie w kabinie
Odmowa przerwania: przekaż confirm=True
Odmowa przerwania: przekaż confirm=True

Porównuj przez is not True zamiast not confirm.

Odrzucaj wartości pozornie prawdziwe
Tylko True potwierdza
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

Łączenie różnych typów argumentów

Kolejność parametrów: zwykłe, *args, domyślne, **kwargs. Ta kolejność jest wymagana przez składnię Pythona.
laczenie-roznych-typow-argumentow.py
# Łączenie różnych typów argumentów
# Kolejność: zwykłe, *args, domyślne, **kwargs

def mission_log(name, *events, priority="NORMALNY", **details):
    print(f"=== Misja: {name} [{priority}] ===")
    
    if events:
        print("Wydarzenia:")
        for e in events:
            print(f"  - {e}")
    
    if details:
        print("Szczegóły:")
        for k, v in details.items():
            print(f"  {k}: {v}")
    print()

# Różne kombinacje
mission_log("Alpha")

mission_log("Beta", "Start", "Orbita", priority="WYSOKI")

mission_log("Gamma", "Start", commander="Kowalski", target="Mars")
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:].