【发布时间】:2019-06-20 19:45:41
【问题描述】:
我正在尝试定义一个函数来检查字符串是否包含字典中的单词并返回 true 以及匹配的单词。下面是代码的 sn-p,当字典中的字符串中的单词匹配时一切正常。
def trigcheck(strings,a):
try:
str = strings.split()
m=''
a_match = [True for match in a if match in str]
a=[m for m in a if m in str]
if True in a_match:
return True,a[0]
except:
return False,""
bool1,w=trigcheck("kjfdsnfbdskjhfbskdabs",['hello','do'])
print(bool1)
print(w)
我期待与不匹配的字符串应该返回 False 和 ' ' 。但它会抛出错误:
bool1,w=trigcheck("kjfd s n f dobdskjhfbskdabs",['hello','do'])
TypeError: 'NoneType' object is not iterable
【问题讨论】:
-
如果没有异常且没有匹配,你的函数返回 None
-
可能你也不应该使用
str作为变量名,因为这是一个内置的。 -
如果这是问题所在,那么它甚至不应该在成功匹配时返回 true
标签: python-3.x string dictionary nonetype