Q: Как исправить? 'int' object is not subscriptable Вот задача:
Сгенерировать 20 случайных целых чисел в диапазоне от -5 до 4, записать их в ячейки массива. Посчитать сколько среди них положительных, отрицательных и нулевых значений. Вывести на экран элементы массива и посчитанные количества.
Вот текст ошибки:
a[i]=int(a[i])
TypeError: 'int' object is not subscriptable.
Как ето исправить?Большое Спасибо! 
import random
a=[]
for i in range(20):
      a=random.randint(-5,4)
p=[]
n=[]
z=[]
for i in range(20):
     a[i]=int(a[i])
     for i  in range(0,20,1):
            if(a[i]>0):
                p.append(a[i])
            if(a[i]==0):
                z.append(a[i])

            if (a[i]<0):
               n.append(a[i])


print('quantity positive',len(p))
print('quantity negative',len(n))
print('quantity zero',len(z))


A: В 4й строчке вы записываете в переменную "a" целое число:
a=random.randint(-5,4)

Затем, в 9й строчке вы пытаетесь обратиться к переменной "a" по индексу.
a[i]=int(a[i])

Но целочисленные переменные не умеют в индекс.
Чтобы всё заработало, вам нужно заменить 4ю строчку на такое:
a.append(random.randint(-5,4))

А вообще, ваш код не слишком питоничен.
Там где это возможно, рекомендуется вместо циклов использовать списковые включения. Они гораздо более лаконичны, и код с ними становится гораздо проще, чем без них.
Вашу программу можно переписать таким образом:
import random


a = [random.randint(-5,4) for _ in range(20)]

p = [i for i in a if i > 0]
n = [i for i in a if i < 0]
z = [i for i in a if i == 0]

print('quantity positive', len(p))
print('quantity negative', len(n))
print('quantity zero', len(z))

Как видите, получилось гораздо понятнее, чем у вас.
PS: Признаком хорошего стиля считается ставить пробелы слева и справа от "равно", знаков сравнения и арифметических символов. А также пробел после запятой.
