Вы, кажется, введя этот код в интерактивном режиме, а не сохранять его как файл и запустить его. Если это так, тогда, когда вы используете input
, в окне выдается запрос на ввод, прежде чем вы сможете продолжать вводить код.
plainText = input("python: ")
После ввода этой строки введите слово, которое вы хотите зашифровать, и нажмите enter. Только тогда вы должны написать эту строку:
distance = int(input("3: "))
И вы должны ввести расстояние, которое вы хотите, прежде чем начать на следующей строке, code = ""
.
Как стилистический совет, я предлагаю изменить текст подсказки от "python:"
и "3:"
к чему-то вроде «текст для шифрования:» и «расстояние:», поэтому для пользователя очевидно, что он должен вводить.
Далее, у вас есть ошибки отступа здесь:.
if cipherValue > ord('z'):
cipherValue = ord('a') = distance - \
линии после if
условия должны быть отступом один уровень дальше в
if cipherValue > ord('z'):
cipherValue = ord('a') = distance - \
Далее, вы имеют две проблемы в этих строках.
cipherValue = ord('a') = distance - \
(ord('z') - ordValue + 1)
- Вы не должны иметь каких-либо пробелов после символа продолжения строки
\
. В любом случае, может быть, лучше всего написать все выражение на одной строке, так как линия на самом деле не достаточно длинная, чтобы требовать разбиения на две строки.
- Второй знак равенства - это опечатка. Это должен быть знак плюса.
-
cipherValue = ord('a') + distance - (ord('z') - ordValue + 1)
На данный момент, ваша программа должна работать без каких-либо ошибок, но это еще не производит никакой продукции. Когда вы шифруете каждый символ, добавьте его в code
. Затем распечатайте его после окончания цикла.
plainText = input("text to encrypt: ")
distance = int(input("distance: "))
code = ""
for ch in plainText:
ordValue = ord(ch)
cipherValue = ordValue + distance
if cipherValue > ord('z'):
cipherValue = ord('a') + distance - (ord('z') - ordValue + 1)
code = code + chr(cipherValue)
print(code)
#to do: write this to a file, or whatever else you want to do with it
Здесь chr
преобразует цифровой cipherValue
в его эквивалент буквы.
Результат:
text to encrypt: hacker
distance: 13
unpxre
Что вы хотите 'CipherValue = Ord ('а') = расстояние - (ORD ('г') - ordValue +«) 'до * значит *? Потому что это ошибка. –
Я действительно не уверен быть честным, я следовал примеру в книге – user3292818
Если это буквальный код в книге, у вас плохо отредактированная книга. –