Проверка данных – Python 2.7

Это код, который я до сих пор редактировал для предстоящего предварительного кода AS. Это домашнее задание, и я зациклен на том, почему он не работает. Какие-либо предложения? благодаря

def GetKeyForCaesarCipher(): while True: key = int(raw_input('Enter the amount that shifts the plaintext alphabet to the ciphertext alphabet: ')) try: i = int(key) break except ValueError: print 'please enter an interger' return (key) 

вы должны просто сделать key = raw_input(...) а не key = int(raw_input(...))

С первым key является строка, пока вы не try сделать ее целым числом. С последним вы пытаетесь сразу построить int из него, не защищая эту попытку при обработке исключений.


Есть и другие логические недостатки. Прямо сейчас ваш бесконечный цикл while не делает ничего, например. (вы возвращаетесь после первого прохода, независимо от того, что). Перемещение return статута, в котором происходит break , вероятно, заставит его делать то, что вы хотите. Кроме того, вы ничего не делаете с int который вы строите ( i ), хотя неясно, следует ли вам возвращать его или key .

* Я делаю предположения о том, что ваша программа должна делать здесь …