当我提供解密选项时,一旦代码运行,它就不会显示解密文本。代码工作正常,直到这一点。用户消息已成功加密,并且所有打印的问题和回复似乎都有效,这只是解密消息未打印的事实,它只是移动到下一个问题。我想知道如何解决这个问题。
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')
答案 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:”
我没有测试过这个,但如果我在球场,请告诉我;)