コードにはいくつかの紛らわしい点があります。あなたの最終目標は正確には何ですか?配列内の単一の数値のすべての桁が必要ですか? または、ユーザーに複数の数字を入力してもらいたいですか?
私を混乱させるこれらのことでさえ、私が見ることができるいくつかのことはまだ間違っています:
a[i].append=iNum%10
これは最初から失敗する運命にあります:a
は空 ( a = []
) と宣言されているため、a[i]
要素はありません。IDLE のようなインタラクティブな環境でこのコードを試すことができます。
>>> a = []
>>> a[0] = 'hello'
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
a[0] = 'hello'
IndexError: list assignment index out of range
append
おそらく、リストでメソッドを呼び出すつもりでした。ただし、そのメソッドを呼び出すには、等号を使用せず、括弧を使用します。そのようなもの:
a.append(iNum % 10)
注意すべきもう 1 つの点は、 への呼び出しrange
が少し余計なことです。0 からある数値まで 1 ずつ反復することは非常に一般的であるため、これがデフォルトになっています。
range(iLen)
すべてをまとめると、次のようになります。
a=[]
for i in range(iLen):
a.append(iNum%10)
iNum=iNum//10
単一の数値の数字をリストに取得したい場合は、次のlist
ように文字列に対して関数を使用するだけです。
>>> list('123')
['1', '2', '3']
Python では、ループを使用して文字列の文字をループできfor
ます。したがって、各文字を整数に変換する場合は、次のようにすることもできます。
a = []
for digit in str(iNum):
a.append(int(digit))