Предполагается, что функция распечатывает все битовые векторы, которые имеют длину n бит и содержат k 1.Проблема в том, что я не могу дать пустой список в качестве входных данных для функции.
Я работаю в Ubuntu и использую Python 3.6.Я также пытался использовать непустой список, как [1], но это выдает ту же ошибку.При попытке найти длину пустого списка вне функции она работает как следует: len ([]) возвращает 0.
Вот мой код:
def bitvector(n, k, vektor):
if len(vektor) == n:
if vektor.count(1) == k:
print(vektor)
bitvector(n, k, vektor.append(0))
bitvector(n, k, vektor.append(1))
bitvector(1, 2 , [])
РЕДАКТИРОВАТЬ:
def bitvector(n, k, vektor):
if len(vektor) > n:
return
if len(vektor) == n:
print("test")
if vektor.count(1) == k:
print(vektor)
return
bitvector(n, k, vektor.append(1))
bitvector(n, k, vektor.append(0))
bitvector(1, 2 , [])
Предполагается получить длину списка, но вместо этого выдается следующая ошибка:
TypeError: объект типа 'NoneType' не имеет len ()