0

这是迄今为止我为即将到来的 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)
4

1 回答 1

3

你应该做key = raw_input(...)而不是key = int(raw_input(...))

与前者一样,key是一个字符串,直到您try将其设为整数。对于后者,您尝试立即从中构造一个int,而无需使用任何异常处理来保护该尝试。


还有一些其他的逻辑缺陷。现在,while例如,您的无限循环不执行任何操作。(无论如何,您在第一次通过后返回)。将return语句移到break可能会*使它做你想做的事。此外,您不会对int您构造的 ( i) 做任何事情,尽管尚不清楚您是否应该返回它或key.

*我正在假设您的程序应该在这里做什么......

于 2013-03-07T15:30:39.670 回答