Python 检查字符串是否包含子字符串
所以我使用contains.bitly_url(“哈哈哈”)调用这个函数,它总是返回true。我通过代码可视化工具运行了它,它是“elif tweet.find(“”):”部分,由于某种原因返回true。有人能告诉我如何解决这个问题吗?tweet.find>http://bit.ly/“)始终为真,除非它返回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
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问题,他们甚至没有考虑他们真正在做什么