Как я могу получить конечный результат моего кода в виде зашифрованного текста?

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

Я пробовал одно и то же три раза, и все равно получаю сообщение об ошибке: "ValueError: первые два аргумента maketrans должны иметь одинаковую длину"

Хотя в моем коде я уже проверил длину, и оба оказались одинаковыми.

Я использую Python 3.x

# Trial 3

import string

in_text = string.ascii_lowercase
out_text = (string.digits * 2) + string.digits[0:6]

print(len(in_text))
print(len(out_text))

translated_text = str.maketrans(usr_in, usr_out)

my_str = input().lower()
print(my_str.translate(translated_text))

Я ожидаю, что результатом будет текст, который сопоставляет ascii с числами, и всякий раз, когда я ввожу строку, я получаю зашифрованный вывод.

где вы определили usr_in, usr_out?

BugHunter 09.04.2019 12:07

Вы используете неправильные переменные в своем вызове str.maketrans...

Aran-Fey 09.04.2019 12:09
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
2
42
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если я правильно вас понял, вы хотите сопоставить младшие ascii с цифрами

вы должны сделать это так

import string

in_text = string.ascii_lowercase
out_text = string.digits * 2 + string.digits[0: 6]

translated_text = str.maketrans(in_text, out_text)
my_str = input().lower()

print(my_str.translate(translated_text))

ВЫХОД:

λ python3 s.py
hello, world
74114, 24713

Но как только код будет зашифрован в числа, если я попытаюсь составить то же самое предложение, которое я ввел снова, из сгенерированных чисел, я не смогу этого сделать.

Abhinandan Sharma 09.04.2019 12:50

@AbhinandanSharma Конечно, вы не можете этого сделать, потому что вы сопоставляете разные символы с одними и теми же цифрами ... это ваше «шифрование» необратимо.

Aran-Fey 09.04.2019 14:11

@Aran-Fey Спасибо, что прокомментировали и дали мне знать ответ. Ваш ответ высоко ценится.

Abhinandan Sharma 10.04.2019 08:46

Другие вопросы по теме