我收到以下错误:
File "imp.py", line 55
key = get Key()
^
IndentationError: expected an indented block
使用以下代码:
# Caesar Cipher
MAX_KEY_SIZE = 26
def getMode():
while True:
print('Do you wish to encrypt or decrypt or brute force a message?')
mode = raw_input().lower()
if mode in 'encrypt e decrypt d brute b'.split():
return mode
else:
print('Enter either "encrypt" or "e" or "decrypt" or "d" or "brute" or "b".')
def getMessage():
print('Enter your message:')
return raw_input()
def getKey():
key = 0
while True:
print('Enter the key number (1-%s)' % (MAX_KEY_SIZE))
key = int(raw_input())
if (key >= 1 and key <= MAX_KEY_SIZE):
return key
def getTranslatedMessage(mode, message, key):
if mode[0] == 'd':
key = -key
translated = ''
for symbol in message:
if symbol.isalpha():
num = ord(symbol)
num += key
if symbol.isupper():
if num > ord('Z'):
num -= 26
elif num < ord('A'):
num += 26
elif symbol.islower():
if num > ord('z'):
num -= 26
elif num < ord('a'):
num += 26
translated += chr(num)
else:
translated += symbol
return translated
mode = getMode()
message = getMessage()
if mode[0] != 'b':
key = getKey()
print('Your translated text is:')
if mode[0] != 'b':
print(getTranslatedMessage(mode, message, key))
else:
for key in range(1, MAX_KEY_SIZE + 1):
print(key, getTranslatedMessage('decrypt', message, key))
我该如何解决这个问题?
答案 0 :(得分:3)
+=
来构建字符串。使用''.join(mylist)
答案 1 :(得分:2)
从An Informal Introduction to Python开始,“循环体是缩进的:缩进是Python对语句进行分组的方式。”
如果您熟悉C或Java,您可能会认识到这种语法:
if (...)
{
//do something
}
Python做了这个w /缩进:
if ...
#do something
那就是说,你的其余代码似乎都明白这一点。发生错误时你无法识别这个意味着你很幸运或者你正在使用别人的代码。
我希望,为了你的缘故,这不是一项家庭作业,因为大多数大学对抄袭都持晦涩的看法。