2017-10-10 24 views
0

同じエラーについて多くの質問がありましたが、同じことが分かっている人は見つかりませんでした。私のコードのError "AttributeError: 'NoneType'オブジェクトに 'append'属性がありません。

部分が(それは私に関連すると思われる)である:

falta = [0] 
x = 0 
o = 0 
aux = a 
while a in range(aux, len(repetido)): 
    print("a %s" %a) 
    x = 0 
    while int(repetido[a].academia) != int(vetor[x].academia): 
     print("repetido %s" % repetido[a].academia) 
     print("vetor %s" %vetor[x].academia) 
     x = x + 1 
     if a == aux: 
      falta[0] = int(vetor[x].inscricao) 
      print("este eh o primeiro falta: %s" %falta[0]) 
     else: 
      falta.append(int(vetor[x].inscricao)) 
     falta = random.shuffle(falta) 
     a = a + 1 

私は、このエラーメッセージが出ます:

File "C:/Users/vivia/PycharmProjects/karate/Teste posicoes repetidas.py", line 60, in posicionaAcademiaIgual 

falta.append(int(vetor[x].inscricao)) 

AttributeError: 'NoneType' object has no attribute 'append' 

を私は他の場所にこのfaltaリストを使用しないでくださいプログラムで。 貧しい私の英語については残念です。

+1

'random.shuffle'はPythonの文法では*手続き*です。それは、引数リスト上で動作し、 'None'を返します。これは、引数の周りで計算を行い、しばしばそれらを変更することなく、*計算*の結果を返す*関数*とは対照的です。 [this](https://stackoverflow.com/questions/721090/what-is-the-difference-between-a-function-and-procedure) – Will

答えて

2

falta = random.shuffle(falta) 

を変更。 random.shuffleが所定の位置に動作し、Noneを返しますので、

あなたが割り当てfalta = random.shuffle(falta)を行う

faltaは、 Noneなります。あなたの次の反復で周りに来るときはなしとなり、 falta.appendに電話すると AttributeErrorがスローされます。代わりに

falta = random.shuffle(falta) 

random.shuffle(falta) 

を試してみて、thisをお読みください。

+0

ありがとうsooo多く、それはそれがexatlyです!問題が解決しました! –

0

あなたはnumpyからランダムを使用していると思います。 ranom.shuffleはNoneを返します。リストをシャッフルします。だから、私のコメントの公式の答え作る

andom.shuffle(falta) 
関連する問題