[英]"'NoneType' object is not subscriptable" error
我是 python 的新手,這段代碼有問題。 我不明白為什么我不能運行代碼:print(m[1][1])
我總是收到此錯誤消息:TypeError: 'NoneType' object 不可訂閱
edges = [(1,2), (2,7), (1,3), (2,4), (4,7), (3,5), (4,5), (5,6), (6,7), (1,8), (5,8), (6,9), (7,9), (9,10), (5,10), (8,10)]`
def generateAdjMatrix(edges):
max_knoten = max(max(edges))
matrix = [[0 for i in range(max_knoten)] for j in range(max_knoten)]
for kante in edges:
matrix[kante[0]-1][kante[1]-1] = 1
pass
if __name__ == '__main__':
m = generateAdjMatrix(edges)
print(m[1][1])
pass
在m = generateAdjMatrix(edges)
之后m
是None
因為generateAdjMatrix
沒有明確返回任何東西。
請參閱文檔中的定義函數:
來自其他語言,您可能 object
fib
不是 function 而是一個過程,因為它不返回值。 事實上,即使沒有 return 語句的函數也會返回一個值,盡管這是一個相當無聊的值。 這個值稱為None
(它是一個內置名稱)。
m = generateAdjMatrix(edges)
你正在調用這個 function,這個 function 是用這個主體聲明的:
max_knoten = max(max(edges))
matrix = [[0 for i in range(max_knoten)] for j in range(max_knoten)]
for kante in edges:
matrix[kante[0]-1][kante[1]-1] = 1
你看到任何return
嗎? 不,因為你的 function 相當於C
/ C++
void
function。
那么什么被放入m
? Nothing,在 Python 中是None
, type
為 NoneType 的NoneType
。
一般情況下,在Python編程時,如果出現這樣的錯誤信息:
TypeError: 'NoneType' object is not subscriptable
你必須檢查你下標的變量來自哪里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.