Python Caesar Cypher Script - PullRequest
       0

Python Caesar Cypher Script

0 голосов
/ 30 ноября 2018
# Paste the text you want to encipher (or decipher)
original = input("Original text: W fowgsr am roiuvhsf wb hvs Oasfwqob")

# Declare (or guess) the offset. Positive or negative ints allowed
offset = int(input("Offset: 12"))

ciphered = ''

for c in original:
    c_ascii = ord(c)

    if c.isupper():
        c = chr((ord(c) + offset - ord('A')) % 26 + ord('A'))
    elif c.islower():
        c = chr((ord(c) + offset - ord('a')) % 26 + ord('a'))

    ciphered += c

# makes a new file, caesar.txt, in the same folder as this python script
with open("caesar.txt", 'w') as f:
    f.write(ciphered)

"" "Это некоторый код, созданный нашим учителем, чтобы помочь нам расшифровать Caeser Cyphers, но по какой-то причине я все еще получаю свой вклад в качестве вывода, любые идеи относительно того, почему это не работает?Учитель подтвердил, что это сработало. "" "" "" Сдвиг в 12 символов для этого примера предложения: «Я воспитал свою дочь в американском языке» (мне нужно, чтобы он был чувствителен к прописной букве.) - Этот код также расшифрует больше предложенийс таким же смещением 12 "" "

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Я думаю, что вы используете его неправильно.Похоже, вы пытались добавить свои входные данные непосредственно в код:

original = input("Original text: W fowgsr am roiuvhsf wb hvs Oasfwqob")
....
offset = int(input("Offset: 12"))

взгляните на справку для 'input'

Справка по вводу встроенной функции вмодуль встроенный :

вход (...) вход ([подсказка]) -> значение

Эквивалент eval (raw_input (подсказка)).

, поэтому аргумент input () - это приглашение, и весь этот текст не принимается как ввод, а вместо этого отображается как приглашение ...

Попробуйте запустить его из командной строки и вместо этого введите свои данные в командной строке.Это работает для меня, когда я запускаю это.

0 голосов
/ 30 ноября 2018

Меня слегка смущает вопрос, поэтому этот ответ может быть неправильным, но если вы хотите декодировать сообщение, просто поменяйте местами + перед смещением на - (для каждого случая).Вы должны получить следующее:

# Paste the text you want to encipher (or decipher)
original = input("Original text: W fowgsr am roiuvhsf wb hvs Oasfwqob")

# Declare (or guess) the offset. Positive or negative ints allowed
offset = int(input("Offset: 14"))


ciphered = ''

for c in original:
    c_ascii = ord(c)

if c.isupper():
    c = chr((ord(c) - offset - ord('A')) % 26 + ord('A'))
elif c.islower():
    c = chr((ord(c) - offset - ord('a')) % 26 + ord('a'))

ciphered += c

# makes a new file, caesar.txt, in the same folder as this python script
with open("caesar.txt", 'w') as f:
    f.write(ciphered)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...