|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.12.2022, 00:36 | #1 |
Регистрация: 06.12.2022
Сообщений: 6
|
[Python]Простейшая функция, проблема со списками, код Цезаря
Я пытаюсь без библиотек сделать функцию обладающую способностью простейшего шифрования(Код Цезаря с шагом 1), но у меня никак не получается исправить ошибку со списками
Код:
Последний раз редактировалось BDA; 09.12.2022 в 00:59. |
09.12.2022, 01:14 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
В переменной n изначально хранится вся длина Text_b, но элементы имеют номера от 0 до n-1 (нет элемента с номером n). И не стоит input() использовать как значение по умолчанию, т.к. она будет вызвана только один раз, даже если вызвать definition несколько раз.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
09.12.2022, 03:51 | #3 |
Регистрация: 06.12.2022
Сообщений: 6
|
BDA, Я немного изменил код и ошибка пропала, но появилась другая проблема
Код:
абвгдеёжз ['я', 'а', 'а', 'а', 'а', 'а', 'а', 'а', 'а'] Последний раз редактировалось BDA; 09.12.2022 в 03:56. |
09.12.2022, 04:07 | #4 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Не могу подсказать, как исправить, т.к. не пойму идею вашего решения. Есть лишний код (что делает цикл по i?) и лишние переменные (timer и n делают что-то очень похожее).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
09.12.2022, 04:21 | #5 |
Регистрация: 06.12.2022
Сообщений: 6
|
BDA, Если честно я так много переделывал этот код что надобность в цикле for отпала, а лишняя переменная(timer) нужна была как костыль. Я пересмотрел код и изменил его, но он попросту выдаёт то же текст, а в теории должен заменять каждую букву на следующуюю.
Код:
Последний раз редактировалось BDA; 09.12.2022 в 12:55. |
09.12.2022, 13:01 | #6 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
С минимальными изменениями:
Код:
Для оформления кода используйте кнопку CODE (для питона это даже более важно, чем для других языков, т.к. отступы влияют на результат).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
09.12.2022, 19:03 | #7 |
Регистрация: 06.12.2022
Сообщений: 6
|
BDA, Спасибо большое
|
10.12.2022, 00:18 | #8 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,331
|
Думаю, что задача будет решаться проще, если использовать два алфавита - основной и сдвинутый.
Тогда ищем позицию символа из текста в основном и заменяем его на символ из сдвинутого. 1. Величину сдвига можно рассматривать как ключ - число со знаком (сдвиг вправо или влево). Сдвинутый алфавит может быть сгенерирован функцией. Как это сделать лучше подумать самому: append(), insert() и pop() вам помогут. 2. Исходный алфавит может быть латинским. 3. Функция шифрования работает и на расшифрование. 4. Сдвинутый алфавит можно получить и случайным перемешиванием. Правда, для расшифрования такой алфавит (случайное перемешивание) лучше сохранять для расшифрования. PS: В функции шифрования можно предусмотреть ситуацию, когда символ отсутствует в исходном алфавите. Такой символ можно заменять на стандартный, например, +, -, ! и т.п. заменяем на :
Как-то так, ...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[Python]Простейшая функция, проблема со списками | Kir_I | Python | 2 | 06.12.2022 03:36 |
Python. Функция Input(), проблема с типами данных | Cyboredis | Python | 8 | 25.06.2016 21:28 |
Простейшая функция | max74max | PHP | 7 | 04.02.2012 00:14 |
Простейшая функция | vostok | Microsoft Office Excel | 5 | 19.04.2011 17:19 |
Простейшая функция вычислить tg(x) | homa371 | Паскаль, Turbo Pascal, PascalABC.NET | 7 | 20.01.2011 12:58 |