Здравствуйте, помогите решить задачу на Python. Я хочу зашифровать все слова в строке текста на английском языке

  • 69
Здравствуйте, помогите решить задачу на Python. Я хочу зашифровать все слова в строке текста на английском языке с помощью шифра Цезаря. Каждое слово должно быть зашифровано с помощью циклического сдвига на длину этого слова. Маленькие буквы должны оставаться маленькими, а заглавные буквы - заглавными. Формат входных данных: на вход программе подается строка текста на английском языке. Формат выходных данных: программа должна вывести зашифрованный текст в соответствии с условиями задачи. Обратите внимание, что символы, не являющиеся английскими буквами, не изменяются. Пример ввода
Zmey
60
Привет! Для решения этой задачи на Python мы можем использовать следующий алгоритм:

1. Прочтем строку текста, которую нужно зашифровать, с помощью функции input(). Для удобства, введенную строку запишем в переменную text.

2. Создадим пустую строку, в которую будем записывать зашифрованный текст. Для этого создадим переменную encrypted_text и инициализируем ее значением "", то есть пустой строкой.

3. Разобьем введенный текст на слова, используя метод split(). Результатом будет список слов, который мы сохраним в переменной words.

4. Пройдемся в цикле по каждому слову в списке words. Для каждого слова выполним следующие действия:

а) Сохраним первый символ слова, чтобы сохранить оригинальный регистр.

б) Определим длину слова, используя функцию len().

в) Зашифруем слово с помощью циклического сдвига на его длину. Для этого создадим переменную shifted_word и инициализируем ее значением пустой строки "".

г) Пройдемся в цикле по каждому символу в слове. Для каждого символа выполним следующие действия:

- Если символ является буквой английского алфавита, то сдвинем его на длину слова с помощью функции chr() и записываем результат в переменную shifted_word.

- Если символ не является буквой английского алфавита, то просто добавим его в переменную shifted_word без изменений.

д) Объединим первый символ слова с зашифрованным словом shifted_word. Добавим полученную строку к переменной encrypted_text, разделяя слова пробелами.

5. Выведем результат - зашифрованный текст, записанный в переменную encrypted_text.

Вот код, который соответствует этому алгоритму:

python
text = input("Введите строку текста: ")
words = text.split()

encrypted_text = ""

for word in words:
first_char = word[0]
word_length = len(word)
shifted_word = ""

for char in word:
if char.isalpha():
shifted_char = chr((ord(char) - ord("A" if char.isupper() else "a") + word_length) % 26 + ord("A" if char.isupper() else "a"))
shifted_word += shifted_char
else:
shifted_word += char

encrypted_word = first_char + shifted_word
encrypted_text += encrypted_word + " "

print("Зашифрованный текст:", encrypted_text.strip())


Надеюсь, это объяснение поможет вам понять, как решить задачу на шифр Цезаря на Python.