以下程序会找到 code / cope / coje 等字样,并返回匹配计数。但是我的返回功能并没有给我一个输出。 print(len(matches))
给出正确的输出,但我需要使用return。我在this question中看到'findall
'是一种更简单的方法,但我现在想使用finditer。为什么这个退货声明不正确?我实际上经常面对这个问题,因为我编写程序来学习python。我无法从这些参考文献one,two
import re
mystr = "codexxxcmkkaicopemkmaskdmcone"
def count_code (char):
pattern = re.compile (r'co\we')
matches = pattern.finditer(char)
result = tuple (matches)
return len(result)
count_code(mystr)
count_code (mystr)
没有返回任何内容,也没有返回错误。见这里:repl.it
答案 0 :(得分:1)
你的功能似乎工作正常。这是我在本地repl中运行时得到的结果:
>>> import re
>>> mystr = "codexxxcmkkaicopemkmaskdmcone"
>>>
>>> def count_code (char):
... pattern = re.compile (r'co\we')
... matches = pattern.finditer(char)
... result = tuple (matches)
... return len(result)
...
>>> count_code(mystr)
3
它不会在repl.it
中输出任何内容,因为您没有向输出发送任何内容。将最后一行替换为print count_code(mystr)
并查看结果:
Python 2.7.10 (default, Jul 14 2015, 19:46:27)
[GCC 4.8.2] on linux
>
3
>
import re
mystr = "codexxxcmkkaicopemkmaskdmcone"
def count_code (mystr):
pattern = re.compile (r'co\we')
matches = pattern.finditer(mystr)
matches = tuple (matches)
return len(matches)
print count_code(mystr)