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 に答える