Я написал короткий код простой нейронной сети:
T=input("enter T: ")
for i in range(int(T)):
N=input("enter N: ")
minX=input("enter minX: ")
maxX=input("enter maxX: ")
for j in range(int(N)):
weight[j]=input("enter weight: ")
bias[j]=input("enter bias: ")
x=minX
nonspammer=0
spammer=0
for k in range(maxX-minX+1):
for l in range(N):
x=x*w[l]+b[l]
if x%2==0:
nonspammer+=1
else:
spammer+=1
x+=1
print(nonspammer,spammer,sep = " ")
Этот код выдает ошибку:
Nameerror: name weight not defined
Может ли кто-нибудь помочь мне выяснить причину этой ошибки? Я новичок в программировании на Python.






Перед for j in range(int(N)): добавьте строчки
weight=[0 for i in range(N)]
bias=[0 for i in range(N)]
Вы пытаетесь получить доступ к элементам этих списков еще до объявления их списками.
Вы не можете получить индекс несуществующего списка, поэтому вам нужно сначала создать, например:
for i in range(int(T)):
N=input("enter N: ")
minX=input("enter minX: ")
maxX=input("enter maxX: ")
weight=[0]*int(N)
bias=[0]*int(N)
for j in range(int(N)):
weight[j]=input("enter weight: ")
bias[j]=input("enter bias: ")
или создайте его пустым и добавьте его:
for i in range(int(T)):
N=input("enter N: ")
minX=input("enter minX: ")
maxX=input("enter maxX: ")
weight=[]
bias=[]
for j in range(int(N)):
weight.append(input("enter weight: "))
bias.append(input("enter bias: "))
Вы никогда не определяли
weightилиbias. В вашем цикле for он пытается проиндексировать обе эти переменные, но ни одна из них еще не существует.