我目前正在尝试为学校编写一个程序,以加密和解密输入的消息。我的代码目前有效,但还不完整。我无法尝试允许它从2-26的值输入偏移量,我无法重复问题然后继续使用代码,直到它获得正确的值。现在它只是在输入错误的数字但仍继续使用代码时说无效消息。此外,我需要加密或解密的消息只在字母表中没有其他符号或键。有人可以帮忙吗?这是我目前的代码。
result = ''
message = ''
choice = ''
offset=int(input("Enter an offset: "))
if offset >25 or offset <0:
print("Invalid offset, please enter another offset: ")
else:
print("Okay")
while choice != '3':
choice = input("\nDo you want to encrypt or decrypt the message?\nEnter 1 to Encrypt, 2 to Decrypt, 3 to Exit Program: ")
if choice == '1':
message = input("\nEnter the message to encrypt: ")
for i in range(0, len(message)):
result = result + chr(ord(message[i]) - offset)
print (result + '\n\n')
result = ''
elif choice == '2':
message = input("\nEnter the message to decrypt: ")
for i in range(0, len(message)):
result = result + chr(ord(message[i]) + offset)
print (result + '\n\n')
result = ''
elif choice != '3':
print ("You have entered an invalid choice. Please try again.\n\n")
答案 0 :(得分:0)
好的,所以我还没有解决你只换字母的问题,因为我不想做你所有的功课(提示:你必须强迫你的{{1在字母表值之间)。但是我已经为你循环了一切。
chr(number)
所以你现在拥有的是两个函数而不是一个单一的脚本。注意结果,选择变量等是如何被删除的 - 现在它们都在函数内声明,所以你不再需要它们了!第一个函数找到你的偏移量(并在最后调用,启动程序),如果它在正确的范围内,它传递了encrypt_fun函数的偏移值,如果它不是那么它运行再次找到find_offset。我试图保持你的while循环和它一样多 - 但它已经简化了一点。请注意您的def find_offset():
offset = int(input("Enter an offset: "))
if offset > 25 or offset < 0:
print("Invalid offset, please enter another offset: ")
find_offset()
else:
print("Okay")
encrypt_fun(offset)
def encrypt_fun(offset):
choice = ''
while choice != '3':
choice = input("\nDo you want to encrypt or decrypt the message?\nEnter 1 to Encrypt, 2 to Decrypt, 3 to Exit Program: ")
if choice == '1':
message = input("\nEnter the message to encrypt: ")
for i in range(0, len(message)):
result = chr(ord(message[i]) - offset)
print(result, end=''),
elif choice == '2':
message = input("\nEnter the message to decrypt: ")
for i in range(0, len(message)):
result = chr(ord(message[i]) + offset)
print(result, end=''),
elif choice != '3':
print("You have entered an invalid choice. Please try again.\n\n")
find_offset()
声明如何被删除。好吧,因为它是一个循环它无论如何都会被重置,所以它是不必要的。
希望这能帮到你一点点。祝你的GCSE好运。 帮助您进行加密的链接:https://inventwithpython.com/chapter14.html