话说Python(七)从Go...ogle说起
今天一上课,大牛老师就给大家出了一道题:
编程:请从字符串“goOoOogle”中找出以“O”开头,并以“O”结束的部分。
“这还不简单,看我的”小菜不一会儿就给出了答案:
>>> s="goOoOogle"
>>> s.find("O")
2
>>> s.find("O",3)
4
>>> s[2:5]
'OoO'
>>>
“小菜啊,你咋这么傻呢!”小白不禁在心里叹息,“老师出这道题不是明摆着考我们正则表达式嘛!”
果然不出小白的预料,大牛老师又出了一道题:
请从“goOoOogle”中再找出连续的“o”,不分大小写。
“不就是循环判断嘛,继续find”小菜又开始了自己的算法之旅。
“小白,你来回答一下”大牛看到小白好像已经完成,便让他回答一下。
“这还不简单吗?用正则匹配一下不就行了”小白摸了摸后脑勺,“至于程序嘛——还没写,嘿嘿。”
先看看我们的“加强版”爬虫:
import chardet,urllib.request,urllib.parse,re
from sparrow.http.response import Response
class Crawler(object):
def __init__(self,reqQueue=None,resQueue=None): #两个队列,一个用于提取网页请求,一个存放抓取的结果
self.reqQueue=reqQueue
self.resQueue=resQueue
def getData(self,request): #获得网页数据和服务器返回的编码
response=urllib.request.urlopen(request)
info=Response(response)
encoding=info.charset
data=response.read()
return (encoding,data)
def getLinks(self,url,content): #解析网页内容,获得所有链接
rule_link=re.compile(r"(?i)<a\s+href=(?P<link>.+?)[\s>]") #正则表达式
links=rule_link.findall(content)
norLinks=[]
for i,link in enumerate(links): #将不完全的链接(通常为站内链接)补充完全
link=link.strip("\"\'") #过滤引号
us=urllib.parse.urlsplit(link)
if(us.scheme==''):
link=urllib.parse.urljoin(url,link)
norLinks.append(link)
return norLinks
def getEnco
相关文档:
以下"#"开头是Ubuntu终端命令
1。首先安装Ubuntu10.04
参考 http://wiki.ubuntu.org.cn/
2。修改root用户密码
3。使用root登陆系统
4。Ubuntu默认已经安装python2.6.5
5。下载stackless
查看网址 http://zope.stackless.com/download/sdocument_view
# cd /usr/src
# wget http://www.sta ......
这个类表示在单独的控制线程中运行的活动。有两种方法可以指定这种活动,给构造函数传递回调对象,或者在子类中重写run() 方法。其他方法(除了构造函数)都不应在子类中被重写。换句话说,在子类中只有__init__()和run()方法被重写。
一旦线程对象被创建,它的活动需要通过调用线程的start()方法来启动。这方法再调用控制 ......
在Python中的线程运行实际是受到Interpreter的控制或者说牵制的。在Interpreter的核心函数
PyObject * PyEval_EvalFrameEx
(PyFrameObject *f, int
throwflag)
我们可以看到有一个全局变量_Py_Ticker来控制着线程对Interpreter的占有的,默认是Interpreter每执行一百条指令就会释放另一个全局变量interpreter_lock.
......
如果你对Python矩阵转置的实际应用操作方案的转置不知道如何进行下一步时,你就你需要转置一个二维数组,将Python矩阵转置的行列互换.
这样就可以完成你所需要的应用操作,以下是文章的具体操作。
你需要转置一个二维数组,将行列互换,讨论:你需要确保该数组的行列数都是相同的.比如:
arr
= [[1, 2,&nbs ......