Ukryj kod dostępu
Każde logowanie w stacji naziemnej trafia do dziennika bezpieczeństwa, a pierwsza wersja programu zapisywała w nim pełny kod dostępu. Każdy, kto mógł przeczytać dziennik, mógł się zalogować.
Zamaskuj kod tak, żeby widać było tylko cztery ostatnie znaki, jak numer karty na paragonie, a potem zrób to w prawdziwej linii dziennika.
Ukończ etap 1, aby odblokować ten etap.
Zastąp każdy znak kodu dostępu oprócz ostatnich czterech gwiazdką *, a potem wypisz go:
Kod dostępu: **********77AB
Potrzebujesz tylu gwiazdek, ile jest znaków przed ostatnimi czterema: len(access_code) - 4. "*" * 3 to "***", a access_code[-4:] to ostatnie cztery znaki.
Ukończ etap 1, aby odblokować ten etap.
W prawdziwym dzienniku kod stoi wewnątrz linii, po code= i do następnej spacji. Znajdź go, zamaskuj tak samo i wypisz linię z zamaskowanym kodem na jego miejscu:
AUTH ok station=Esrange code=**********77AB operator=2
line.find(" ", start) szuka spacji, zaczynając od indeksu start, więc znajduje spację po kodzie, a nie pierwszą w linii. Potem line.replace(code, masked) buduje nową linię.
Podpowiedzi
Indeksowanie i wycinanie stringów
# Indeksowanie stringów (od 0!)
planet = "SATURN"
# Pojedyncze znaki
print("Pierwszy znak:", planet[0]) # S
print("Ostatni znak:", planet[-1]) # N
# Wycinanie (slicing)
print("Pierwsze 3:", planet[0:3]) # SAT
print("Od 3 do końca:", planet[3:]) # URN
# Co drugi znak
alphabet = "ABCDEFGH"
print("Co drugi:", alphabet[::2]) # ACEG
# Odwracanie stringa
print("Odwrócone:", planet[::-1]) # NRUTAS
Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].