Python 从函数返回值?

Python 从函数返回值?,python,regex,Python,Regex,我试图写一个函数来分析一些文本和正则表达式模式。例如: import re def foo(input_pattern, text): pattern = re.compile(r'input_patern', re.I) find = pattern.findall(text) ans = ' '.join(i for i in find).lower() '''some how return''' text = input('Test: ') '''Text

我试图写一个函数来分析一些文本和正则表达式模式。例如:

import re
def foo(input_pattern, text):
    pattern = re.compile(r'input_patern', re.I)
    find = pattern.findall(text)
    ans = ' '.join(i for i in find).lower()
    '''some how return'''
text = input('Test: ')
'''Text could be: My name is Joe Joe Joe '''
input_pattern = input('Pattern: ')
'''Pattern could be: '(Name|Joe)' '''
foo(input_pattern, text)
'''Get ans'''
print(ans)

但是,我似乎无法从函数中获取字符串(ans)。我确实四处寻找答案,但找不到有效的例子。如果你能胜任的话,你能告诉我如何使用连接来生成一个依赖于字符串的表达式吗。我使用的是python 3.6.4,使用的是Mac OS X。

从函数返回一个合理的值,并将函数调用的结果分配给一个变量。请注意,函数内部的
ans
变量是本地变量,因此在函数外部无法访问:

def foo(input_pattern, text):
    # ... 
    return ' '.join(i for i in find).lower()  # return!

# ...
ans = foo(input_pattern, text)  # assign!
print(ans)

为此,您需要将关键字
return
添加到函数
foo
的末尾,并添加要返回的值或变量。我已经修改了您的代码来说明示例:

import re
def foo(input_pattern, text):
    pattern = re.compile(r'input_patern', re.I)
    find = pattern.findall(text)
    ans = ' '.join(i for i in find).lower()
    return ans
text = input('Test: ')
'''Text could be: My name is Joe Joe Joe '''
input_pattern = input('Pattern: ')
'''Pattern could be: '(Name|Joe)' '''
ans = foo(input_pattern, text)
'''Get ans'''
print(ans)

请记住,您可以返回多个值,如果需要,只需使用

将它们分开即可。您应该通读。关于定义函数的部分是。您还应该知道,python中的注释是以
#
开头的行。它表示如果使用#,则格式不正确。对不起,另外,为了避免误解,我想指出的是,您不必命名变量来存储与函数中使用的返回值同名的返回值。它只会返回“”。请尝试在函数中打印“ans”。也许这是正确的返回值?我怎么做,但使模式成为字符串?我尝试了字符串连接,但出现了以下错误:AttributeError:'str'对象没有属性'findall'。这只是当我尝试使用字符串连接时。有办法解决这个问题吗?