Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def szyfruj_slowo(slowo, klucz=3):
- """Funkcja przyjmuje słowo i zwraca je zaszyfrowanie według klucza, domyślnie wartości 3"""
- dl_slowa = len(slowo)
- lista_znakow = [["~" for i in range(klucz)] for j in range(dl_slowa)]
- kolumny = [i for i in range(klucz)]
- szyfr = ""
- # wyświelamy wartości wstępne
- print(f"Długość słowa: {dl_slowa} = 0-{dl_slowa-1}")
- print(f"Wartość klucza: {klucz}")
- print(f"Lista znaków: {lista_znakow}")
- print(f"Wymiar listy znaków to: {dl_slowa} wierszy x {klucz} kolumn(y)")
- print(f"Kolumny: {kolumny}")
- # aby uzyskać "płotek", dodajemy kolumny odliczane do 1
- for i in range(klucz-2, 0, -1):
- kolumny.append(i)
- print(f"Kolumny 'płotka': {kolumny}")
- wiersz = 0
- while slowo:
- for i in kolumny:
- if slowo:
- # przepisujemy pierwszy znak z jawnego tekstu
- lista_znakow[wiersz][i] = slowo[0]
- print(f"Dopisujemy znak {slowo[0]} w wierszu {wiersz}, kolumna: {i}")
- # przepisujemy wszystkie elementy bez pierwszego znaku do slowo
- slowo = slowo[1:]
- wiersz += 1
- print(f"Lista znaków: {lista_znakow[:wiersz]}")
- # łączymy znaki , jeśli są różne od "~"
- for i in range(klucz):
- for j in range(len(lista_znakow)):
- if lista_znakow[j][i] != "~":
- szyfr += lista_znakow[j][i]
- print(f"Dodajemy znak {lista_znakow[j][i]} (wiersz={j}/klucz={i}), cały szyfr to {szyfr}")
- return szyfr
- slowo = szyfruj_slowo("Linux-to-system", 3)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement