2016-04-14 16 views
0

OK、このトピックに関する多くの質問を確認しましたが、質問に対する特定の回答が見つかりませんでした。私は抱きしめているし、TypeErrorは私を悩ましている。私のコードでは、非常に素朴な文字列をハッシュしようとしていましたが、私の挑戦は、ハッシュライブラリや 'ランダム'や '時間'のような基本ライブラリ(それがなぜ有用かわかりません。ここでは、これまで私のコードは次のとおりです。Python:TypeError: 'int'オブジェクトが反復可能ではありません - Forループ内

import random 
char_array = "Hello World!" 
hash_lvl = random.getrandbits(15) 

def hash (lvl, string, len_string): 
    a = 9 
    b = 2 
    new_array = [] 

    for d in range(0, len_string): 
     new_array.extend(d) 
    for c in range(0, len_string): 
     globals()['string%s' % c] = (lvl/a)+(lvl*b) 
     a=a-1 
     b=b+1 

print(char_array[0:]) 

if len(char_array) > 20: 
    print("You may not hash after 20 digits.") 
elif len(char_array) < 21: 
    print("Hashing:") 
    hash(hash_lvl, char_array, len(char_array)) 

ザ・あなたが私に戻って得ることができれば、私は感謝されるので、関数内のループはこれを引き起こしているため。

答えて

2

for d in range(0, len_string): 
    new_array.append(d) 

list.extend

for d in range(0, len_string): 
    new_array.extend(d) 

を交換は、list.append、最後にアイテムを追加し、代わりに、リストを拡張します。

1

拡張メソッドでは、反復可能な要素(リスト、タプル、または文字列など)が必要です。繰り返し可能な要素のそれぞれをリストの末尾に追加します。 appendメソッドは、リストの最後に1つの項目を追加します(反復可能または反復不可能)。

関連する問題