当密文破译时不打印明文

时间:2015-11-14 11:08:42

标签: python

当我提供解密选项时,一旦代码运行,它就不会显示解密文本。代码工作正常,直到这一点。用户消息已成功加密,并且所有打印的问题和回复似乎都有效,这只是解密消息未打印的事实,它只是移动到下一个问题。我想知道如何解决这个问题。

alphabet = 'abcdefghijklmnopqrstuvwxyz'
L = len(alphabet)
Question1 = input('Hello, please insert your message: ')
key1 = input('Please insert the key you would like to use (Please keep it between 1 and 26): ')
cipher = ''

# Encrytping the message

for A in Question1:
    if A in alphabet:
        cipher +=  alphabet[(alphabet.index(A)+key1)%L]
print(cipher)

#Decrytping the message


Question2 = input('Would you like to decrypt this message?: ')
cipher2 = ''
if input == 'Yes, yes, y, Y, yeah, Yeah':
    key2 = key1
    for A in Question2:
        if A in alphabet:
            cipher2 +=  alphabet[(alphabet.index(A)-key2)%L]
    print(cipher2)
else:
    Question3 = input('Would you like to encrypt another message?: ')
    if input == 'Yes, yes, y, Y, yeah, Yeah':
        start()
    else:
        print ('Thank you for your time young Sir/Madam')

1 个答案:

答案 0 :(得分:0)

我不知道从哪里开始。首先,我假设你使用的是Python 3.x,对吧?..我认为你是Python的新手?

接下来,我们假设在第二部分中,用户正在输入与可能情况(是,Y等)相匹配的响应。如果这是您从用户那里获得答案的唯一方法,请尝试使用“Question.upper()”。

然后,在使用if语句时,您没有使用正确的变量。你问这个函数是否等于“是”(input =='yesYesetc')你应该做“”“如果问题2在”YesYyes,etc“”“”“

最后,当你处于循环“for Question in Question2:”时,你试图解密那个变量“Question2”,当它应该是“for a in in cipher:”

我没有测试过这个,但如果我在球场,请告诉我;)