Odszyfrowanie i znaki spoza alfabetu
Szyfr Cezara - Algorytmy z podstawy programowej (Python)
Odszyfrowanie to przesunięcie o **minus** klucz. Reszta z dzielenia w Pythonie dla liczb ujemnych daje wynik od 0 do 25, np. `(-2) % 26 == 24`, więc A przesunięte o -3 poprawnie daje X. W C++ i Javie tak nie jest i trzeba dodać 26. Spacje i inne znaki przepisujemy bez zmian. Funkcja obsługuje oba kierunki: szyfrowanie kluczem `k` i odszyfrowanie kluczem `-k`.
def cezar(tekst, klucz):
wynik = ""
for znak in tekst:
if "A" <= znak <= "Z":
wynik += chr((ord(znak) - ord("A") + klucz) % 26 + ord("A"))
else:
wynik += znak
return wynik
s = cezar("ATAK O SWICIE", 3)
print(s)
print(cezar(s, -3))Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu Algorytmy z podstawy programowej·Zaloguj się, aby zapisać postęp na koncie.