Ładunek jak JSON
Panel stacji naziemnej odbiera komunikaty statusu z Python One w formacie JSON, którego używa prawie każde API w sieci. Panel czyta komunikaty po angielsku. Komunikat JSON jest pełen cudzysłowów, a ten ma jeszcze apostrof:
{"status": "GO", "note": "Don't skip pre-check"}Kłopot zaczyna się, gdy wstawisz ten tekst do napisu w Pythonie: Python uznaje pierwszy wewnętrzny cudzysłów za koniec tekstu.
Ukończ etap 1, aby odblokować ten etap.
Uruchom skrypt: Python zatrzymuje się z SyntaxError, bo cudzysłów przed status za wcześnie kończy tekst. Napraw linię, żeby wypisała dokładnie:
{"status": "GO", "note": "Don't skip pre-check"}Apostrofy na zewnątrz ominęłyby cudzysłowy, ale wtedy tekst kończy apostrof w Don't. Kolidujący znak poprzedź ukośnikiem wstecznym: \' albo \".
Ukończ etap 1, aby odblokować ten etap.
Komunikat ma powstawać z wartości, więc kod startowy używa f-stringa. Uruchom go: Python zatrzymuje się z dziwnym błędem ValueError o specyfikatorze formatu. W f-stringu każdy { zaczyna miejsce na wartość, także ten, który miał otwierać komunikat. Napraw linię, żeby wypisała ten sam komunikat:
{"status": "GO", "note": "Don't skip pre-check"}Każdy nawias klamrowy, który ma się wypisać, zapisz podwójnie: {{ wypisuje {, a }} wypisuje }.
Podpowiedzi
Znaki specjalne w print()
# Znaki specjalne w Pythonie
# \n - nowa linia
print("Linia pierwsza\nLinia druga\nLinia trzecia")
# \t - tabulacja
print("Planeta\tOdległość")
print("Mars\t225 mln km")
print("Jowisz\t778 mln km")
# \\ - ukośnik
print("Ścieżka: C:\\kosmos\\dane")
# \" - cudzysłowy
print("Kapitan powiedział: \"Startujemy!\"")
Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].