Необходимо реализовать ввод исходного текста и вывод зашифрованного, и обратно для дешифровки.
Кратко об алгоритме:
Ключом к шифру двойной перестановки служит последовательность номеров столбцов и номеров строк исходной таблицы (в нашем примере последовательности 4132 и 3142 соответственно).
Начинаю программировать, поэтому буду рад объяснениям.
s = [list(map(str,input().split())) for i in range (4)]
s[0], s[1] = s[1], s[0]
s[1], s[3] = s[3], s[1]
s[2], s[3] = s[3], s[2]
' '.join(str(x) for x in s)
s[0][0], s[0][1] = s[0][1], s[0][0]
s[0][1], s[0][3] = s[0][3], s[0][1]
s[1][0], s[1][1] = s[1][1], s[1][0]
s[1][1], s[1][3] = s[1][3], s[1][1]
s[2][0], s[2][1] = s[2][1], s[2][0]
s[2][1], s[2][3] = s[2][3], s[2][1]
s[3][0], s[3][1] = s[3][1], s[3][0]
s[3][1], s[3][3] = s[3][3], s[3][1]
print (' '.join(str(x) for x in s))
input ("Press Enter")
Сроки поджимали и сделал на скорую руку, так сказать методом "грубой силы", что мало походит на нормальный код. Хотелось бы услышать замечания.