Python 检查字符串是否包含子字符串

Python 检查字符串是否包含子字符串,python,string,python-3.x,Python,String,Python 3.x,所以我使用contains.bitly_url(“哈哈哈”)调用这个函数,它总是返回true。我通过代码可视化工具运行了它,它是“elif tweet.find(“”):”部分,由于某种原因返回true。有人能告诉我如何解决这个问题吗?tweet.find>http://bit.ly/“)始终为真,除非它返回0 def contains_bitly_url(tweet): if tweet.startswith('http://bit.ly/'): return True

所以我使用contains.bitly_url(“哈哈哈”)调用这个函数,它总是返回true。我通过代码可视化工具运行了它,它是“elif tweet.find(“”):”部分,由于某种原因返回true。有人能告诉我如何解决这个问题吗?

tweet.find>http://bit.ly/“)始终为真,除非它返回
0

def contains_bitly_url(tweet):
    if tweet.startswith('http://bit.ly/'):
        return True
    elif tweet.find(' http://bit.ly/'):
        return True
    else:
        return False
因此,请使用
tweet.findhttp://bit.ly/') != -1

此外,我们还可以使用or返回,如果任一条件为
True
,则返回
True
;如果两个检查都为
False
,则返回
False

或者只需使用in查看子字符串是否在@MattDMo建议的主字符串中

def contains_bitly_url(tweet):
    return tweet.startswith('http://bit.ly/') or tweet.find(' http://bit.ly/') != -1 
tweet.find('http://bit.ly/“)
始终为真,除非它返回
0

def contains_bitly_url(tweet):
    if tweet.startswith('http://bit.ly/'):
        return True
    elif tweet.find(' http://bit.ly/'):
        return True
    else:
        return False
因此,请使用
tweet.findhttp://bit.ly/') != -1

此外,我们还可以使用or返回,如果任一条件为
True
,则返回
True
;如果两个检查都为
False
,则返回
False

或者只需使用in查看子字符串是否在@MattDMo建议的主字符串中

def contains_bitly_url(tweet):
    return tweet.startswith('http://bit.ly/') or tweet.find(' http://bit.ly/') != -1 
未找到子字符串时返回-1,否则返回该字符串的索引。这里,除非字符串以
开头http://bit.ly/“
str.find
总是返回一个非零值(truthy)。因此,最好对照-1进行检查:

def contains_bitly_url(tweet):
    return 'http://bit.ly/' in tweet
您可以将功能简化为:

def contains_bitly_url(tweet):
    if tweet.startswith('http://bit.ly/'):
        return True
    elif tweet.find(' http://bit.ly/') != -1:
        return True
    else:
        return False
未找到子字符串时返回-1,否则返回该字符串的索引。这里,除非字符串以
开头http://bit.ly/“
str.find
总是返回一个非零值(truthy)。因此,最好对照-1进行检查:

def contains_bitly_url(tweet):
    return 'http://bit.ly/' in tweet
您可以将功能简化为:

def contains_bitly_url(tweet):
    if tweet.startswith('http://bit.ly/'):
        return True
    elif tweet.find(' http://bit.ly/') != -1:
        return True
    else:
        return False

谢谢:)我不知道它返回了-1。谢谢:)我不知道它返回了-1。@MattDMo,是的,除了-1之外,他们连看都没看issue@MattDMo是的,除了-1问题,他们甚至没有考虑他们真正在做什么