Такая проблема , пишу программу для шифрования и дешифрования текстов различными алгоритмами Шифры : Цезаря , Виженера и Атбаш Есть проблема , при шифровании и дешифровании , у меня удаляются пробелы , а заглавные буквы переходят в строчные Помогите ребзя , кто может alphabet = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя" def poyasnenie(): print("Краткое описание шифров \n" "Шифр Цезаря — это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется символом, \n " "находящимся на некотором постоянном числе позиций левее или правее него в алфавите. \n" "Шифр Виженера — метод полиалфавитного шифрования буквенного текста с использованием ключевого слова. \n" "Атбаш — простой шифр подстановки для алфавитного письма. \n" "Правило шифрования состоит в замене n-й буквы алфавита буквой с номером m - n + 1, где m — число букв в алфавите.\n") def caesar_encrypt(text): key = int(input('Введите ключ шифрования --> ')) result = "" for i in text: result += alphabet[(alphabet.index(i) + key) % len(alphabet)] return result def caesar_decrypt(text): key = int(input('Введите ключ дешифрования --> ')) result = "" for i in text: result += alphabet[(alphabet.index(i) - key) % len(alphabet)] return result def vigenere_encrypt(text): key = input("Введите ключ шифрования --> ") result = [] space = 0 for index, symbol in enumerate(text): if symbol != " ": index_1 = alphabet.index(symbol) index_2 = alphabet.index(key[(index - space) % len(key)]) index_result = (index_1 + index_2) % len(alphabet) result.append(alphabet[index_result]) else: space += 1 result.append(" ") return "".join(result) def vigenere_decrypt(text): key = input("Введите ключ дешифрования --> ") result = [] space = 0 for index, symbol in enumerate(text): if symbol != " ": index_1 = alphabet.index(symbol) index_2 = alphabet.index(key[(index - space) % len(key)]) index_result = (index_1 - index_2) % len(alphabet) result.append(alphabet[index_result]) else: space += 1 result.append(" ") return "".join(result) def atbash(text): return text.translate(str.maketrans( alphabet + alphabet.upper(), alphabet[::-1] + alphabet.upper()[::-1])) print("Добро пожаловать в программу для шифрования и дешифрования текстов") poyasnenie() print("Выберите способ шифрования:") cipher = input("Шифр Цезаря, Виженера, Атбаш --> ").lower() action = input("Вы собираетесь шифровать[Ш] или дешифровать[Д] сообщение --> ").lower() text = input("Введите текст для шифрования/дешифрования --> ").lower().replace(" ", "") if cipher not in ["цезаря", "цезарь", "виженера", "виженер", "атбаш"]: print("Неизвестный шифр") elif action not in ["ш", "д"]: print("Неизвестное действие") else: if cipher == "цезаря" or cipher == "цезарь": print("(Не забываем что ключ в шифре Цезаря - цифры)") if action == "ш": result = caesar_encrypt(text) else: result = caesar_decrypt(text) elif cipher == "виженера" or cipher == "виженер": print("(Не забываем что в шифре Виженера в виде ключа выступает слово)") if action == "ш": result = vigenere_encrypt(text) else: result = vigenere_decrypt(text) elif cipher == "атбаш": result = atbash(text) print(f"Result: {result}") Код alphabet = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя" def poyasnenie(): print("Краткое описание шифров \n" "Шифр Цезаря — это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется символом, \n " "находящимся на некотором постоянном числе позиций левее или правее него в алфавите. \n" "Шифр Виженера — метод полиалфавитного шифрования буквенного текста с использованием ключевого слова. \n" "Атбаш — простой шифр подстановки для алфавитного письма. \n" "Правило шифрования состоит в замене n-й буквы алфавита буквой с номером m - n + 1, где m — число букв в алфавите.\n") def caesar_encrypt(text): key = int(input('Введите ключ шифрования --> ')) result = "" for i in text: result += alphabet[(alphabet.index(i) + key) % len(alphabet)] return result def caesar_decrypt(text): key = int(input('Введите ключ дешифрования --> ')) result = "" for i in text: result += alphabet[(alphabet.index(i) - key) % len(alphabet)] return result def vigenere_encrypt(text): key = input("Введите ключ шифрования --> ") result = [] space = 0 for index, symbol in enumerate(text): if symbol != " ": index_1 = alphabet.index(symbol) index_2 = alphabet.index(key[(index - space) % len(key)]) index_result = (index_1 + index_2) % len(alphabet) result.append(alphabet[index_result]) else: space += 1 result.append(" ") return "".join(result) def vigenere_decrypt(text): key = input("Введите ключ дешифрования --> ") result = [] space = 0 for index, symbol in enumerate(text): if symbol != " ": index_1 = alphabet.index(symbol) index_2 = alphabet.index(key[(index - space) % len(key)]) index_result = (index_1 - index_2) % len(alphabet) result.append(alphabet[index_result]) else: space += 1 result.append(" ") return "".join(result) def atbash(text): return text.translate(str.maketrans( alphabet + alphabet.upper(), alphabet[::-1] + alphabet.upper()[::-1])) print("Добро пожаловать в программу для шифрования и дешифрования текстов") poyasnenie() print("Выберите способ шифрования:") cipher = input("Шифр Цезаря, Виженера, Атбаш --> ").lower() action = input("Вы собираетесь шифровать[Ш] или дешифровать[Д] сообщение --> ").lower() text = input("Введите текст для шифрования/дешифрования --> ").lower().replace(" ", "") if cipher not in ["цезаря", "цезарь", "виженера", "виженер", "атбаш"]: print("Неизвестный шифр") elif action not in ["ш", "д"]: print("Неизвестное действие") else: if cipher == "цезаря" or cipher == "цезарь": print("(Не забываем что ключ в шифре Цезаря - цифры)") if action == "ш": result = caesar_encrypt(text) else: result = caesar_decrypt(text) elif cipher == "виженера" or cipher == "виженер": print("(Не забываем что в шифре Виженера в виде ключа выступает слово)") if action == "ш": result = vigenere_encrypt(text) else: result = vigenere_decrypt(text) elif cipher == "атбаш": result = atbash(text) print(f"Result: {result}")
хм, чел , по поводу заглавных и строчных, может проблема в том, что у тебя в самой первой строчке только строчные буквы указаны? p.s. в код не вчитывался, так что могу ошибаться
text = input("Введите текст для шифрования/дешифрования --> ").lower().replace(" ", "") Код text = input("Введите текст для шифрования/дешифрования --> ").lower().replace(" ", "") клоун да?