2014-11-13 3 views
2

Это то, что я не знаю, где я неправильно:Попытка зашифровать строку ASCII

import sys 
message = input("enter message here:") 
Key = input("enter a key from 1-100:") 

for Letter in message: 
     Char = ord(Letter) 
     if (Char + Key) < 32: 
      encryptedChar = ((Char - Key) + 127) - 32 
     else: 
      encryptedChar = (Char - Key) 
      sys.stdout.write(chr(encryptedChar)) 

      print(encryptedChar,end=" ") 

Я в настоящее время получает ошибку:

TypeError: unsupported operand type(s) for +: 'int' and 'str') 
+1

Вы пытаетесь реализовать [цезарь шифра] (http://en.wikipedia.org/wiki/Caesar_cipher)? – CoryKramer

+0

Предполагая, что вы находитесь в python3, проблема в том, что вы пытаетесь выполнить 'Char', который является целым символом' + Key', который является строкой. –

+0

(TypeError: неподдерживаемый тип операндов для +: 'int' и 'str'), это ошибка, которую я получаю. – qaguy

ответ

1
Key = int(input("enter a key from 1-100:")) 

input является string, вам нужно указать как целое число.

После заброса на междунар ваш код работает отлично:

enter message here:foobar 
enter a key from 1-100:10 
\92e101e101X88W87h104 
Смежные вопросы