Python返回语句,频繁发布

时间:2018-05-18 04:47:17

标签: python-3.x return

以下程序会找到 code / cope / coje 等字样,并返回匹配计数。但是我的返回功能并没有给我一个输出。 print(len(matches))给出正确的输出,但我需要使用return。我在this question中看到'findall'是一种更简单的方法,但我现在想使用finditer。为什么这个退货声明不正确?我实际上经常面对这个问题,因为我编写程序来学习python。我无法从这些参考文献onetwo

中选择答案
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

1 个答案:

答案 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
>   

这是我的https://symfony.com/doc/current/service_container/autowiring.html#autowiring-other-methods-e-g-setters

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)