dolphin23
@dolphin23
Новичок в программировании

Почему массив не заполняется до конца через цикл?

Есть массив func, в него передаем 1 либо 0, там где равно 1 в новом массиве miniterms4 мы записываем соответственное значение:
n = int(input("Колво переменных: "))
miniterms4 = set([])
func = [0] * pow(2, n)
for i in range(len(func)):
    print("Вектор функции " + str(i+1) + ": ", end = "")
    func[i] = int(input())
    if func[i] > 1 or func[i] < 0:
        raise Exception("Значения только 0 и 1")

for i in func:
    if func[i] == 1:
        if i == 0:
            miniterms4.add("0000")
        elif i == 1:
            miniterms4.add("0001")
        elif i == 2:
            miniterms4.add("0010")
        elif i == 3:
            miniterms4.add("0011")
        elif i == 4:
            miniterms4.add("0100")
        elif i == 5:
            miniterms4.add("0101")
        elif i == 6:
            miniterms4.add("0110")
        elif i == 7:
            miniterms4.add("0111")
        elif i == 8:
            miniterms4.add("1000")
        elif i == 9:
            miniterms4.add("1001")
        elif i == 10:
            miniterms4.add("1010")
        elif i == 11:
            miniterms4.add("1011")
        elif i == 12:
            miniterms4.add("1100")
        elif i == 13:
            miniterms4.add("1101")
        elif i == 14:
            miniterms4.add("1110")
        elif i == 15:
            miniterms4.add("1111")
    else:
        continue

print(miniterms4)


Вывод:

Колво переменных: 4
Вектор функции 1: 1
Вектор функции 2: 0
Вектор функции 3: 1
Вектор функции 4: 1
Вектор функции 5: 0
Вектор функции 6: 1
Вектор функции 7: 1
Вектор функции 8: 1
Вектор функции 9: 1
Вектор функции 10: 0
Вектор функции 11: 0
Вектор функции 12: 0
Вектор функции 13: 0
Вектор функции 14: 1
Вектор функции 15: 1
Вектор функции 16: 1

miniterms4: {'0000'}
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
@galaxy
for i in func:

вы не забыли, что в func у вас нули и единицы только?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@molekulyarniy
for i in func:
    if func[i] == 1:

вы постоянно смотрите только в первый и второй элемент массива
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы