我正在尝试执行代码的一部分,如果您没有输入正确的键(例如,将字母更改为数字,例如message = hi key = 2 result = fg),如果您键入a字母,它将返回“请重试”消息或类似内容,然后返回“再次输入密钥:”。
我正在尝试创建一个凯撒密码,并使它对用户更友好,我希望他们不能输入无法接受的文本。例如。如果我想要一个int(input),他们将不得不输入一个数字,如果不是,它将再次询问并显示一条消息,要求再次尝试。 我试图使用类似'if key <='1'或> ='25':'的代码,但是不管用什么输入,它都会打印出来,而且如果我输入了字母,我也想出错较早。
import time
import sys
result = ''
message = ''
choice = ''
pw = 'pass'
# Password setup
while pw != 0:
pw = input("Password: ")
if pw == 'pass':
# Choice prompt.
while choice != 0:
choice = input("\nDo you want to encrypt or decrypt the message?\nEnter 1 to encrypt or 2 to decrypt or 3 to exit: ")
# Entering a message to encrypt.
if choice == '1':
message = input("\nEnter the message for encryption: ")
key = int(input("\nEnter the key: "))
****if key <= '1' or >= '25':*** here is what I was talking about, it does not work however and i havent added it to the decoding side yet (not actually in code)
for i in range(0, len(message)):
result = result + chr(ord(message[i]) - key)
print('\n' + result + '\n')
result = ''
time.sleep(0.5)
else:
print("\nYou have entered an invalid input! Please try again.")
# Entering a message to decrypt.
elif choice == '2':
message = input("\nEnter the message for decryption: ")
key = int(input("\nEnter the key: "))
for i in range(0, len(message)):
result = result + chr(ord(message[i]) + key)
print('\n' + result + '\n')
result = ''
time.sleep(0.5)
# Closes the program.
elif choice == '3':
sys.exit(0)
# Error message when inputting incorrectly.
elif choice != '0':
print("\nYou have entered an invalid input! Please try again.\n")
# Exits program if password is incorrect.
elif pw != 'pass':
sys.exit(0)
我希望代码会显示一条错误消息,并再次询问是否输入了无效的密钥。
但是这种情况不会发生,如果输入字母,则代码基本上会中止,无论您使用什么数字,它都可以正常工作。请帮忙。
此外,如果您可以将翻译后的代码导出到.txt文件中,那很好,但无论哪种方式都可以。