首页
学习
活动
专区
圈层
工具
发布

返回值
EN

Stack Overflow用户
提问于 2017-10-27 10:36:40
回答 2查看 51关注 0票数 0
代码语言:javascript
复制
def extract_info(text, price):
   company_name = ['BMW','AUDI','MERCEDES','TOYOTA']
   car_type = ['Saloon', 'Hatchback','Sedan']
   if any(word in text for word in company_name):
      for word in company_name:
         matchWord = text.split()
         if word in matchWord:
            return (word)
   elif any(word in text for word in car_type):
      for word in car_type:
        matchWord = text.split()
        if word in matchWord:
            return (word)

   else:
      productType = re.search('car', text)
      if productType is not None:
        productvalue = productType.group(0)
        return (productvalue)

  numDoor = re.search('[0-9]-door',text)
  if numDoor is not None:
        matchDoor = numDoor.group(0)
        return (matchDoor)
  else:
    return ('No match')

我试图返回一个值,但无法得到所有的值。虽然我是得到我的输出,同时打印他们。

我用的是一根绳子“一辆低维护,5门的安全车”

如果字符串得到任何单词或与regex匹配,则代码正在获取。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-27 11:49:49

因为函数只能返回一次。因此,在第18行之后:

代码语言:javascript
复制
    return productType

它返回函数的最后返回,它永远不会在第18行之后执行。第19行后的代码没有执行,这就是为什么您没有得到其余的结果。如果您想返回一组输出,那么只需附加到一个列表中,或者使用dict保存不同的结果,然后返回该变量,并根据您的需要使用该变量数据。

举个例子:

代码语言:javascript
复制
import re
def extract_info(text, price):
    final_output={}
    company_name = ['BMW','AUDI','MERCEDES','TOYOTA']
    car_type = ['Saloon', 'Hatchback','Sedan']
    if any(word in text for word in company_name):
        for word in company_name:
            matchWord = text.split()
            if word in matchWord:
                final_output['word']=word
    elif any(word in text for word in car_type):
        for word in car_type:
            matchWord = text.split()
            if word in matchWord:
                final_output['word']=word
    else:
        productType = re.search('car', text)
        if productType is not None:
            final_output['product_type']=productType.group(0)
    numDoor = re.search('[0-9]-door', text)
    if numDoor is not None:
        matchDoor = numDoor.group(0)
        final_output['matchdoor']=matchDoor
    else:
        final_output['matchdoor']='None'

    return final_output

print(extract_info("A low maintenance, 5-door car that's safe",23))
票数 0
EN

Stack Overflow用户

发布于 2017-10-27 10:41:47

可以用返回替换print语句。

代码语言:javascript
复制
if numDoor is not None:
    matchDoor = numDoor.group(0)
    return matchDoor
else:
    return 'No match'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46973087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档