为了账号安全,请及时绑定邮箱和手机立即绑定

“NoneType”类型的对象没有用于正则表达式的 len()

“NoneType”类型的对象没有用于正则表达式的 len()

翻过高山走不出你 2023-09-12 15:45:09
对于以下问题:使用正则表达式查找以下字符串中所有名称的列表。我写了这段代码: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** 但是,当我使用这个时: **assert len(names()) == 4, "There are four names in the simple_string"** 它给了我这个错误: **object of type 'NoneType' has no len()** 我不知道函数名称中的错误在哪里,有人可以帮忙吗?注意:我无法更改断言函数,它在问题内。
查看完整描述

3 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

names()不返回任何内容,因此len()不起作用。尝试添加 return(names). 我还会避免在函数内部使用函数名称作为变量名称。



查看完整回答
反对 回复 2023-09-12
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

当您打印names()to的输出时sys.stdout,您不会返回其中变量的值names,这意味着函数本身返回None。添加return names到函数的末尾以使其他代码正常工作。



查看完整回答
反对 回复 2023-09-12
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

您调用len(names())此函数是询问名称函数返回的长度。它不返回任何内容,因此您会收到 NoneType 错误消息。



查看完整回答
反对 回复 2023-09-12
  • 3 回答
  • 0 关注
  • 117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信