“思考Python”练习以提取URL

时间:2019-02-13 12:30:59

标签: python python-3.x

第三版“如何像计算机科学家一样思考:学习Python 3”这本书的第4.21节有一个练习

  

假设任何文本行最多只能包含一个以“ http://”开头并在该行的下一个空格处结束的URL。编写一段代码以提取并打印完整的URL(如果存在)。 (提示:阅读find的文档。它需要一些额外的参数,因此您可以设置从其开始搜索的起点。)

这是我编写的代码,它可以工作..但是我不认为它确实使用了作者要求使用的“额外参数”。查看here中的查找文档,我无法理解如何使用它。有人可以为我提供此练习的正确代码吗?

def findurl(url):
    op_findex = url.find("//")
    op_lindex = url.rfind(" ")
    return url[op_findex+2:op_lindex]

print(findurl("http://example.com/site "))

1 个答案:

答案 0 :(得分:1)

错误是您在字符串中找到了最后一个空格,而不是URL开头之后的第一个空格。

test = "Hello, visit http://google.com or http://stackoverflow.com for great fun"
start = test.find("http://")
end = test.find(" ", start)
print(test[start:end])

您还将注意到http:是提取的URL的必要和有用的部分。