【发布时间】:2021-01-12 03:37:22
【问题描述】:
对于以下问题:使用正则表达式查找以下字符串中所有名称的列表。 我写了这段代码:
import re
def 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**
但是,当我使用它时:
**assert len(names()) == 4, "There are four names in the simple_string"**
它给了我这个错误:
**object of type 'NoneType' has no len()**
我不知道函数名称的错误在哪里,有人可以帮忙吗?
注意:我无法更改断言函数,它在问题内。
【问题讨论】:
-
len(names)不是len(names()) -
@G.Anderson 我看不出这个问题有什么关系
-
@jordanm 因为函数隐式返回 None,我假设 OP 试图返回函数输出的长度,而不是函数内类似命名变量的长度
-
@jordanm 你可能误解了这个问题——OP 是在询问函数之外
names,而不是指变量 @987654328 @
标签: python