Space Python Ładowanie Pythona…

Cofanie i historia

Napisz kodTrudny 2 etapy

Konsola ładunku działa: operatorzy dodają i usuwają skrzynie i sprawdzają ładownię. Nie potrafi jednak odpowiedzieć na pytanie „co się stało?” ani cofnąć omsknięcia palca, a w zeszłym tygodniu skrzynia została usunięta przez pomyłkę i trzeba ją było wpisać z powrotem z pamięci.

Rozszerz konsolę o historię zmian, a potem o cofanie, które z niej korzysta.

Konsola działa tak, jak jest. Dodaj listę history i zapisuj każdą zmianę, która naprawdę nastąpiła, jako (action, item, mass): ("add", "CG-0042", 18.5) albo ("remove", "CG-0042", 18.5). Odrzucone polecenia niczego nie zmieniają, więc nie są zapisywane. Dodaj polecenie history, które je wypisuje, z numerami:

Dodano CG-0042
Dodano CG-0043
Usunięto CG-0042
Nie ma w ładowni: CG-0099
Dodano CG-0044
  1. add CG-0042 18.5
  2. add CG-0043 2.36
  3. remove CG-0042 18.5
  4. add CG-0044 31.0
Ładownia: CG-0043, CG-0044 (33.36 kg)

Przy usuwaniu potrzebujesz masy skrzyni, która znika: hold.pop(item) usuwa ją i zwraca jej masę.

Polecenie history
Lista history

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

Dodaj undo: zdejmij ostatnią zmianę z history przez pop() i zrób odwrotność, usuwając dodaną skrzynię albo przywracając usuniętą z jej masą. Gdy nie ma już czego cofnąć, powiedz to:

Dodano CG-0042
Dodano CG-0043
Usunięto CG-0042
Cofnięto remove CG-0042
Dodano CG-0044
Ładownia: CG-0042, CG-0043, CG-0044 (51.86 kg)
Cofnięto add CG-0044
Cofnięto add CG-0043
Cofnięto add CG-0042
Nie ma czego cofnąć
Ładownia: pusta (0.00 kg)

Nowa lista poleceń cofa wszystko, a potem jeszcze trochę.

Cofnij wszystko
Powrót do początku
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

Metody list - append, insert, pop

append() dodaje na końcu, insert() w określone miejsce. pop() usuwa i zwraca element. clear() czyści całą listę.
metody-list-append-insert-pop.py
# Metody modyfikujące listę

missions = ["Apollo 11", "Apollo 12"]

# append - dodaje na końcu
missions.append("Apollo 13")
print("Po append:", missions)

# insert - wstawia w określone miejsce
missions.insert(0, "Apollo 10")
print("Po insert:", missions)

# pop - usuwa i zwraca element
last = missions.pop()
print("Usunięta:", last)
print("Pozostałe:", missions)

# pop z indeksem
first = missions.pop(0)
print("Usunięta pierwsza:", first)

# clear - czyści całą listę
copy = ["a", "b", "c"]
copy.clear()
print("Po clear:", copy)
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:].