Форум сайта python.su
Завтра экзамен, нужно внести изменения в лабораторную, чтоб засчитали. Помогите пожалуйста, не шарю в питоне совсем…
Вот собственно исходное задание и код:
Взлом шифра Цезаря. На вход подается закодированная строка, на выходе в цикле выводятся расшифрованные сообщения, алфавитами, полученными последовательным перебором.
alphabet = ‘abcdefghijklmnopqrstuvwxyz’
def iterate_str(n, s):
for i in range(1, n+1):
result = “”
for ch in s:
if (ch != ‘ ’):
index = alphabet.find(ch) + i
if (index >= len(alphabet)):
index -= len(alphabet)
result += “”.join(alphabet)
else:
result += “ ”
print(i, “ || ”, result)
s = input(“Введите строку: ”)
iterate_str(len(alphabet), s)
Что нужно сделать по индивидуальному заданию:
“Расшифровщик для разных инкрементов 1-26” Не спрашивайте что это такое, я не знаю, препод так написал.
Отредактировано ellinishe (Дек. 26, 2014 20:43:13)
Прикреплённый файлы: 4.py (439 байт)
Офлайн
ну если я правильно понял задание, то как-то так
alphabet = 'abcdefghijklmnopqrstuvwxyz' def iterate_str(n, s): for i in range(1, n+1): result = "" for ch in s: if (ch != ' '): index = alphabet.find(ch) + i if (index >= len(alphabet)): index -= len(alphabet) result += "".join(alphabet[index]) else: result += " " print(i, " || ", result) s = input("Введите строку: ") iterate_str(len(alphabet), s) #все что ниже это уже индивидуальное задание def ind_task(a, s, k): return ''.join([(a[(a.find(i) + k) % len(a)]) if i != ' ' else ' ' for i in s]) k = int(input("Введите k: ")) print(ind_task(alphabet, s, k))
Отредактировано terabayt (Дек. 26, 2014 21:32:56)
Офлайн