我正在尝试编写一个函数来分析一些文本和正则表达式模式。例如:
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.
答案 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)
请注意,如果需要,您可以返回多个值,只需将其与,