Форум сайта python.su
13
Придумал модификацию шифра одинарной перестановки, мешая алфавит.
Вот что получилось:
from random import randint from string import printable as letters from pickle import load, dump letters = list(letters[:10] + "".join([chr(x) for x in range(ord("а"), ord("я") + 1)]) + \ "".join([chr(x) for x in range(ord("А"), ord("Я") + 1)]) + \ letters[10:(len(letters) - 3)]) + [" "] def mix_massive(massive): """ I don't want to use shuffle method from random module, because I'd like to know, how does it work. """ assert massive.__class__ == list, "Param must be a massive. Because of it, its name is \"massive\"" # checking massive type for x in range(0, randint(50, 100)): f, s = randint(0, len(massive) - 1), randint(0, len(massive) - 1) f1 = massive[f] massive[f] = massive[s]; massive[s] = f1 return massive def alphabet_encrypt(text): u_abs = letters print(u_abs == letters, "Equaling before mixing") e_abs = mix_massive(letters) print(u_abs == letters, "Equaling after mixing") print(e_abs == u_abs, "Does encrypted alphabet equal to not encrypted") print(e_abs == letters, "Does encrypted alphabet equal to letters") alphabet_encrypt('asd')
# Life loop while alive: if (fun > boredom) and money: pass_day(fun, boredom, money) continue else: break
Офлайн
так и должно быть
>>> l = [1,2,3,4] >>> l[0],l[1] = l[1],l[0] >>> l [2, 1, 3, 4] >>> l = [1,2,3,4] >>> def f(lst): out = [] for i in(2,3,0,1): out.append(l[i]) return out >>> f(l) [3, 4, 1, 2]
Офлайн