Return python 中的语句在 sublime 文本编辑器中不起作用

Return statement in python not working in sublime text editor

我正在尝试 运行 在 sublime 文本编辑器中使用以下 python 功能

def match_find(data,target):


    for i in data:
        if i == target:
            return True
        else:
            return False

match_find([1,2,3,5,6,5,6,6,6,4],9)

此处预期的 O/p 是错误的,但 sublime text 没有 return o/p。

而当我在 jupyter notebooks 中尝试相同的代码时,它运行良好。

我必须在 sublime 文本编辑器中启用什么功能才能return成为 o/p?

我选择了“工具 > 构建系统 > Python 和 我选择了 "Tools > Save All on Build" 选项。

sublime 没有问题,你的代码不一致。 else 属于 'for' 语句而不是 'if'。使用print语句打印出值,目前只是返回布尔值不打印任何东西

def match_find(data,target):


    for i in data:
        if i == target:
            return True
    else:
      return False

print(match_find([1,2,3,5,6,5,6,6,6,4],4))

如果函数的目的只是 return 如果数据存在于目标中那么你只需要

def match_find(data, target):
    return data in target

对于计数匹配,您可以使用 filter 来减少列表并使用 len 来获取过滤列表的大小

def count_match(data,target):
    flist = list(filter(lambda x:x==data, target))
    return len(flist)