首页 > 解决方案 > 为什么我的子字符串检查返回 false?

问题描述

def is_substring(substring,string):

    for count in range(len(string)):

        if (string[count:count + len(substring)]) == substring:

            return True

        else:

            return False

print(is_substring('dab', 'abracadabra'))

如果我尝试只打印这样的条件值:

def is_substring(substring,string):

    for count in range(len(string)):

        print (string[count:count + len(substring)]) == substring)

print(is_substring('dab', 'abracadabra'))

我得到这个输出:

python substrings.py

abr

胸罩

拉克

阿卡

cad

阿达

轻拍

abr

胸罩

一个

没有任何

它打印 dab 词,它等于子字符串,但是当我尝试使用 if 条件使其等于子字符串时,它返回 false。为什么返回错误?

标签: pythonpython-3.x

解决方案


你的 else 在第一次比较后返回。它应该这样编码:

def is_substring(substring, string):

    for count in range(len(string)):

        if (string[count:count + len(substring)]) == substring:
            return True

    return False

print(is_substring('dab', 'abracadabra'))

推荐阅读