在elif语句上获取语法错误?

时间:2013-05-05 16:11:37

标签: python

这是我的完整代码,我不确定问题是什么

option = 0

while option !=4:
  

之前我在每个选项选项中重复打印菜单上的类似代码,但是我将它从while更改为if和elif但不起作用?

    # 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")

option = int(input("What would you like to do [1,2,3,4]? "))

* 这是我使用我的打印菜单重复代码*

的部分
if option ==1:
   print("In command 1 - encrypt string \n")
   string = input("Please enter string to encrypt: ")
   offsetvalue = int(input("Please enter positive offset value: "))
    print("")

while offsetvalue > 26 or offsetvalue < 1:
      offsetvalue = int(input("Please enter a positive offset value between 1 - 26: "))
      Encryption = ""

for letter in string:
    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("")

while offsetvalue < -26 or offsetvalue > -1:
      offsetvalue = int(input("Please enter negative offset value between -1 - -26: "))

    Decryption = ""

for letter in string:
    decryption_num = ord(letter)
    decryption_num += offsetvalue
         if decryption_num < 32:
            decryption_num += 94
            decryption_num = chr(decryption_num)
            Decryption += decryption_num

            print("\nDecrypted string:")
            print(Decryption)

问题似乎在这里

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)


    option = int(input("What would you like to do [1,2,3,4]? "))

#input error
elif option == 4:
        print ("\nGoodbye")

我尽力不确定问题在哪里,任何帮助都会受到赞赏....

1 个答案:

答案 0 :(得分:2)

这没什么意义:

elif option == 3:
        print("in command 3 -brute force \n")
        string = input("please enter string to decrypt: ")
        offsetvalue = -0
    while offsetvalue != -26:

就是这个

elif option == 3:
        print("in command 3 -brute force \n")
        string = input("please enter string to decrypt: ")
        offsetvalue = -0
        while offsetvalue != -26:

elif option == 3:
        print("in command 3 -brute force \n")
        string = input("please enter string to decrypt: ")
        offsetvalue = -0
while offsetvalue != -26: