14 maja 2024

How to Troubleshoot Using Python - Slytherin Edition

instrukcje.txt

przyklad.txt

4.1

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: 

 

Zadanka: