2015-11-10 3 views
1

Выход моего кода должен выглядеть следующим образом:Попробуйте/За исключением ошибки Python?

шифровки:

Enter 1 to encipher or 2 to decipher: 1 
Enter text you wish to encipher: My dog has fleas. 
Enter the number of characters to shift: 7 
The encrypted text is: Fr whz atl yextl. 

Расшифруйте:

Enter 1 to encipher or 2 to decipher: 2 
Enter text you wish to decipher: Fr whz atl yextl. 
The most likely shift is: 7 
My dog has fleas. 

До сих пор у меня есть это и я получаю неверный синтаксис. Я смущен тем, как иметь возможность вводить ответ на выходе. Предполагается, что это попытка/исключение из цикла while, потому что это школьное задание.

while True: 
    try: 
     num = int(raw_input('Enter 1 or 2:')) 
     if num in [1,2]: 
      break 
     print "You have to enter 1 or 2, try again" 

    if (num == 1): 
     num = int(raw_input('Enter a number:')) 
     num = int(raw_input('encipher')) 
     print "Enter text to encipher" 
     print "Enter the number of characters you want to shift" 


    elif (num == 2): 
     num = int(raw_input('Enter a number:')) 
     num = int(raw_input('decipher')) 
     print "Enter text to decipher" 
     print "Enter the number of characters you want to shift" 
+0

Это отступы вы использовали в вашей программе? – dawg

+0

есть. Я только начинаю питон, и отступы меня смущают. – Lauren

ответ

1

Вы абсолютно не нужно использовать Try/за исключением, но если вы хотите, чтобы попытаться сделать преобразование в целое прямо тогда и там, вы могли бы. Основная проблема заключается в том, что у вас нет блокировки в любом месте.

while True: 
    try: 
     num = int(raw_input('Enter 1 or 2:')) 
     if num in [1,2]: 
      break 
    except ValueError as e: 
     print "You didn't enter a number. Try again" 
+1

Я думаю, вы должны сузить это до 'except ValueError'. Захват всех исключений может скрыть другие ошибки. – tdelaney

1

Вы не используете try-except правильно. Идея состоит в том, чтобы попробовать кусок кода; но если он сталкивается с ошибкой/исключением, сделайте что-нибудь еще.

while True: 
    try: 
     num = int(raw_input('Enter 1 or 2:')) 
     if num in [1,2]: 
      break 
     print "You have to enter 1 or 2, try again" 

В вашем сценарии вы пытаетесь взять в междунар, который находится в массиве, и вы обращаетесь сценарием, в котором он не внесенном в заранее определенном списке опций. Однако вы ничего не делаете, если они являются исключением из этого куска кода.

Для использования try-except выполните следующие действия:

while True: 
    try: 
     num = int(raw_input('Enter 1 or 2:')) 
     if num in [1,2]: 
      break 
     print "You have to enter 1 or 2, try again" 
    except Exception, e: 
     print e 
Смежные вопросы