翻過(guò)高山走不出你
2023-09-12 15:45:09
對(duì)于以下問(wèn)題:使用正則表達(dá)式查找以下字符串中所有名稱(chēng)的列表。我寫(xiě)了這段代碼:import redef names(): simple_string = """Amy is 5 years old, and her sister Mary is 2 years old. Ruth and Peter, their parents, have 3 kids.""" names= re.findall("[A-Z][a-z]*", simple_string) print(names) print(len(names))names()它給出了這樣的正確輸出: **['Amy', 'Mary', 'Ruth', 'Peter'] , 4** 但是,當(dāng)我使用這個(gè)時(shí): **assert len(names()) == 4, "There are four names in the simple_string"** 它給了我這個(gè)錯(cuò)誤: **object of type 'NoneType' has no len()** 我不知道函數(shù)名稱(chēng)中的錯(cuò)誤在哪里,有人可以幫忙嗎?注意:我無(wú)法更改斷言函數(shù),它在問(wèn)題內(nèi)。
3 回答

偶然的你
TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊
names()
不返回任何內(nèi)容,因此len()
不起作用。嘗試添加 return(names)
. 我還會(huì)避免在函數(shù)內(nèi)部使用函數(shù)名稱(chēng)作為變量名稱(chēng)。

蠱毒傳說(shuō)
TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊
當(dāng)您打印names()
to的輸出時(shí)sys.stdout
,您不會(huì)返回其中變量的值names
,這意味著函數(shù)本身返回None
。添加return names
到函數(shù)的末尾以使其他代碼正常工作。

侃侃爾雅
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
您調(diào)用len(names())
此函數(shù)是詢(xún)問(wèn)名稱(chēng)函數(shù)返回的長(zhǎng)度。它不返回任何內(nèi)容,因此您會(huì)收到 NoneType 錯(cuò)誤消息。
添加回答
舉報(bào)
0/150
提交
取消