Python 属性错误:';列表';对象没有属性';集团';

Python 属性错误:';列表';对象没有属性';集团';,python,attributeerror,Python,Attributeerror,我对这个论坛和python都是新手。 目前,我正在尝试理解正则表达式,我有一条错误消息。 我不理解此消息,因为我不使用列表。如果我使用justprint(number),它不会删除结果的[]。目标是只获得句子中的数字作为结果。 我使用Python3.6 下面是我的代码: import re user_sentence = input(">>> : ") while user_sentence != "quit": if re.find

我对这个论坛和python都是新手。 目前,我正在尝试理解正则表达式,我有一条错误消息。 我不理解此消息,因为我不使用列表。如果我使用justprint(number),它不会删除结果的[]。目标是只获得句子中的数字作为结果。 我使用Python3.6

下面是我的代码:

import re
user_sentence = input(">>> : ")
while user_sentence != "quit":
  if re.findall("[0-9]+", user_sentence):
    number = re.findall("[0-9]+", user_sentence)
    print(number.group())
    user_sentence = input(">>> : ")
 else:
    print("no")
    user_sentence = input(">>> : ")
感谢您的帮助

groups()
(带有
s
)位于
re.match
的返回值上,而不是
findall
。如果要打印findall返回的列表中的每个项目,可以打印并使用
join
将它们连接到空格中,或在列表上循环。请注意,该列表可能包括元组(不是在您的情况下,而是在一般情况下)。在空间上连接它们的示例:

重新导入
用户\句子=输入(“>>>:”)
而用户_语句!=“退出”:
如果是关于findall(“[0-9]+”,则为user_句):
number=re.findall(“[0-9]+”,用户\句子)
打印(“.join(number))
用户\句子=输入(“>>>:”)
其他:
打印(“否”)
用户\句子=输入(“>>>:”)
或通过循环和打印:

编号为n的
:
打印(n)

findall默认返回列表类型,而列表没有任何此类方法/属性。如果您尝试运行print(number),您会看到一个列表作为输出。但要将列表元素转换为数字,可以在计算完数字后添加这些行

number = re.findall("[0-9]+", user_sentence)
#add these lines
for num in number :
      result = result + str(num)
 print (int(result))

为什么要运行
re.findall
两次?您的代码应该如下所示:

重新导入
用户\句子=输入(“>>>:”)
而用户_语句!=“退出”:
numbers=re.findall(“[0-9]+”,user_句子)
如果是数字:
打印(“找到的数字”+“”。连接(数字))
用户\句子=输入(“>>>:”)
其他:
打印(“未找到编号”)
用户\句子=输入(“>>>:”)

感谢您的解释和解决方案。它将对我帮助很大:)。好的,这是我不知道的.join()参数。谢谢你的帮助和更正:)好的,没问题@galdino!如果我的回答对你有帮助,请接受!你完全简化了我的代码!非常感谢你的帮助!!:)