0

したがって、試験の質問のために、シーザー暗号と同じ原理を使用して数列を暗号化するプログラムを基本的に作成するこの特定の擬似コードに従いました。動作するはずですが、何らかの理由でエラーが返されます。

TypeError: 'int' object is not iterable

コードはこちらです。皆さんが私を助けてくれることを願っています。

plainNum = input("enter a number to encode ") 
codedNum = ' '
Key = input("enter a key ")

for i in plainNum:
    codedNum = codedNum + str((int(i)+key)%10)
    print codedNum
4

4 に答える 4

5

raw_input文字列が必要な場合に使用します。

plainNum = raw_input("enter a number to encode ") 

input()入力を Python コードであるかのように解釈します。入力する5と整数が返され、'some text'(引用符付きで)入力すると文字列が返されます。raw_input()一方、入力された入力を解釈せずに返します。

于 2013-05-02T20:46:30.860 に答える
2

すべての中で最も汚い修正であり、変更するだけです

for i in plainNum:

for i in str(plainNum):
于 2013-05-02T20:48:08.730 に答える
1

これは機能しますが、小数を使用すると機能しません。単語やスペースを入力すると機能しません。エントリが次のような数値であることを最初に確認することを検討してください。

try:
    float(element)
except ValueError:
    print "Not a float"

次のようなもので空白を取り除いた後:

plainNum = plainNum.strip()

ただし、これは入力した整数のエンコードされた数字を出力します。

plainNum = raw_input("enter a number to encode ") 
codedNum = ' '
key = input("enter a key ")

for i in plainNum:
    codedNum = codedNum + str((int(i)+key)%10)
    print codedNum

raw_input を使用してユーザーに番号を尋ねます。これにより、入力が反復可能な文字列になります。

for char in plainNum:

はい、これは文字列の char になったので、int(i) 関数を使用しました。

于 2013-05-02T20:56:15.917 に答える
0

キーを Key に変更して、宣言されている変数を反映し、 codeNum を最初は ' ' ではなく '' (スペース対スペースなし) にすることもできます。

于 2013-05-02T20:54:59.673 に答える