在我在每个选项选择中沿打印菜单重复类似代码之前,但我将其从 while 更改为 if 和 elif 但不起作用?它不断出现语法错误
option = 0
while option !=4:
    # Prints the menu to the screen
        print("*** Menu *** \n")
        print("1. Encrypt string")
        print("2. Decrypt string")
        print("3. Brute force decryption")
        print("4. Quit \n")
# Prompts the user
option = int(input("What would you like to do [1,2,3,4]? "))
# input error
if option ==1:
#if the user's selection equals 1
            # Prints to the screen the chosen option and prompts the user to input
            print("In command 1 - encrypt string \n")
            string = input("Please enter string to encrypt: ")
            offsetvalue = int(input("Please enter positive offset value: "))
            print("")
# input error
while offsetvalue > 26 or offsetvalue < 1:
    offsetvalue = int(input("Please enter a positive offset value between 1 - 26: "))
    # Assigns the 'Encryption' variable
    # letter which is encrypted
    Encryption = ""
# Loops the input in variable 'code' for each letter
for letter in string:
    # Converts each letter in 'code' to an ASCII value
    # and adds the positive offset value
    encryption_num = ord(letter)
    encryption_num += offsetvalue
# Loops the ASCII value
if encryption_num > 126:
        encryption_num -= 94
        # adds it to the total string
        encryption_num = chr(encryption_num)
        Encryption += encryption_num
        # encrypted string to the screen
        print("\nEncrypted string:")
        print(Encryption)
elif option == 2:
        # prompts the user to input
        print("In command 2 - decrypt string \n")
        string = input("Please enter string to decrypt: ")
        offsetvalue = int(input("Please enter negative offset value: "))
        print("")
# input error
while offsetvalue < -26 or offsetvalue > -1:
    offsetvalue = int(input("Please enter negative offset value between -1 - -26: "))
# Assigns the 'Decryption' variable
# letter which is decrypted
    Decryption = ""
# Loops the input in variable 'string'
for letter in string:
    # adds variable 'string' to an ASCII value
    # adds negative offset value
    decryption_num = ord(letter)
    decryption_num += offsetvalue
    # Loops the ASCII value to beginning if True
    if decryption_num < 32:
            decryption_num += 94
            # Converts the letter back into a string and adds it to the total string
            decryption_num = chr(decryption_num)
            Decryption += decryption_num
            # Prints the entire decrypted string to the screen
            print("\nDecrypted string:")
            print(Decryption)
这是用 elif 语句突出显示错误的地方,不知道为什么?它在 python 中出现无效消息。
elif option == 3:
     print("in command 3 -brute force \n")
     string = input("please enter string to decrypt: ")
     offsetvalue = -0
     while offsetvalue != -26:
     decryption_num = 0
     Decryption = ""
while Decryption < len(letter):
      c = ord(string[decryption_num]) + offsetvalue
      if c < 0:
      c += 128
      decryption_num = chr(c)
      Decryption += decryption_str
      decryption_num += 1
      offsetvalue -= 1
      print ("\noffset", offsetvalue, "=Decrypted string:", Decryption)
    # Prompts the user for their selection
    option = int(input("What would you like to do [1,2,3,4]? "))
#input error
elif option == 4:
        print ("\nGoodbye")