Мой код должен вывести:Try/За исключением Python
Encipher
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.
Decipher
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 True:
try:
num = int(raw_input('Enter 1 or 2:'))
break
except ValueError:
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"
Так в чем же проблема? Как это не ведет себя так, как вы ожидаете? –
Добро пожаловать в StackOverflow. Прочтите и следуйте инструкциям по отправке в справочной документации. [Минимальный, полный, проверяемый пример] (http://stackoverflow.com/help/mcve) применим здесь. Мы не можем эффективно помочь вам, пока вы не опубликуете свой код и не сможете точно описать проблему. «Это не работает» не является точным описанием. Канонический ответ: «Это потому, что он закодирован неправильно». :-) – Prune
если эта строка 'num = int (raw_input ('Enter 1 или 2:'))' разрешено (что произойдет в любое время, когда пользователь вводит ANY целое число, а не только 1/2!), То 'break' строка будет работать, что означает, что она вырвется из цикла while. так как остальная часть вашего кода находится внутри вашего цикла while, остальная часть кода не будет работать. выньте оператор break и добавьте 'if num not in [1,2]: добавьте ValueError' –