не очень понимаю как это решить(графы)
Задание 4. Задан граф в виде количества вершин n<=7, количества ребер k<=28 и матрицы инцидентности. а) Для каждой вершины напечатать список инцидентных ей ребер. б) Определить степень каждой вершины графа. в) Проверить, есть ли вершины со степенью 0. г) Определить число вершин, инцидентных только одному ребру. д) Определить наибольшее число смежных между собой ребер, инцидентных одной и той же вершине. е) Проверить, есть ли в графе петли
не могу понять как перевести код на другую строку чтобы там тоже продолжался проверка на инцидентность матрицы:
[1 1 0 0 0 0]
[1 0 1 0 0 0]
[0 1 1 1 0 0]
[0 0 0 1 0 0]
[0 0 0 0 0 0]
[0 0 0 0 1 1]
[0 0 0 0 1 0]
Мой код это то что я пытался сделать:
def graph(l, q):
for i in range(n):
if matrix[l][q] == 1:
inc.append((matrix[l][q]))
print("Данное ребро инцидентно вершине a")
if matrix [l][q] != 1:
print('Данное ребро не инцидентно этой вершине')
return inc
def graph1(l, q):
for z in range(n * k):
if q <= 6:
print(graph(l, q))
q += 1
z += 1
else:
l += 1
q = 0
z += 1
n = int(input("Введите кол-во вершин: "))
k = int(input("Введите кол-во ребер: "))
inc = []
z = 0
if (n > 0) and (n <= 7) and (k <= 27) and (k > 0):
matrix = [[0] * n] * k
for i in range(len(matrix)):
string = input("введите матрицу: ")
line = string.split()
line = [int(x) for x in line]
matrix[i] = line
i += 1
d = [[matrix for y in range(n)] for x in range(k)]
for im in range(k):
print(matrix[im])
"""for z in range(n*k):
if s <= 4:
print(graph(m, s))
s += 1
z += 1
else:
m += 1
s = 0
z += 1
"""
print(graph1(0,0))