0

我需要帮助解决 Python 2.7 中的这个数据验证问题,它做了我想做的事情,它不接受字符串,但它也不接受整数,因为它应该做。

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

  return key
4

2 回答 2

5

它接受整数就好了,但您返回的是原始字符串值。您应该返回i或分配给key

key = int(key)
于 2013-03-07T15:42:13.137 回答
0

Martijn 的回答当然是正确的,但是如果您改进了您的风格,您可能会发现调试更容易。试试这样:

def promptForInteger(prompt):
  while True:
    try:
      return int(raw_input(prompt))
    except ValueError:
      print ('Error, please enter an integer')

def getKeyForCaesarCipher():
   return promptForInteger('Enter the amount that shifts the plaintext alphabet to the ciphertext alphabet: ')
于 2013-03-07T15:47:42.480 回答