Zacznijmy od treści zadania:
Na początek zaimportujmy dane
W tym zadaniu dysponujemy dodatkowym zestawem danych przyklad.txt,
który pozwala nam sprawdzić poprawność działania naszego kodu.
Pamiętajmy, że dane muszą znajdować się w folderze naszego projektu,
najprościej jest je przeciągnąć bezpośrednio z pobranych do folderu docelowego.
W tym zadaniu użyjemy tablic oraz kilku nowych przydatnych funkcji
split() dzieli ciąg znaków na listę
join() analogicznie do split() łączy ciąg znaków
Zobacz jak wygląda lista instrukcje[ ]:
split() pozwolił nam zapisać kolejne komendy jako osobne listy,
dla porównania output, bez użycia metody split()
W dalszej części kodu przesuwam się po każdym elemencie listy instrukcje[ ] i używając instrukcji warunkowych
podaję sposoby rozumienia przez algorytm danych komend (DOPISZ, ZMIEN, USUN, PRZESUN).
lista.sort() | Sortuje elementy alfabetycznie |
lista.append() | Dodaje element do listy |
lista.pop() | Usuwa ostatni element listy |
len(lista) | Zwraca długość listy |
Znając te metody, rozumiemy co się dzieje w kodzie przy komendach DOPISZ, ZMIEN i USUN.
Natomiast sytuacja z PRZESUN nieco odbiega.
Na początku sprawdzamy, czy dana litera występuje w naszym słowie, następnie pobieramy jej indeks.
Co jeśli instrukcja każe nam przesunąć Z? Musimy wtedy wrócić na początek alfabetu, tak więc to robi linijka 23.
Nie jest to Z? Zmieniamy literę na kolejną!
Zaczynając od środka:
ord() zamienia nam nasze slowo na kod ASCII, w ten sposób możemy zwyczajnie dodać 1 do wartości,
zamiast wpisywać cały alfabet w instrukcjach warunkowych.
Gdy już dodamy jedynkę funkcją chr() wracamy z powrotem do stringa.
Zadanie wymaga od nas podanie dlugości słowa, nic innego jak użycie funkcji len() od naszego słowa.
Zadanie 4.1 za nami :)
Pamiętaj, o podmienieniu danych na instrukcje.txt po skończeniu zadań!
Mój kod: