从函数返回值?

时间:2018-02-12 14:52:25

标签: 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 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.

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

为此,您需要在函数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)

请注意,如果需要,您可以返回多个值,只需将其与,

分开即可