start_check()明明是没有参数的,为会这样呢?
类(class)的method在声明的时候第一个argument需要是self
c是一个对象,对象的普通函数第一个参数为self,就相当于C++的this,不过python中要明确定义,如果不定义,就会出这样的错。定义的时候需要加,调用的时候语言已经自动帮你加上了,就不需要了。
2. 正则表达式search的返回值。参考: http://www.111cn.net/phper/157/37171.htm
reg = "...":例如reg = '<title>\s.*\s</title>'
re.search(reg,string):当在string中没有匹配到时,返回的是None,当匹配成功则返回matchobject,可通过.group()打印出返回的值。
name = re.search(reg,html)
if name != None
name = name.group().decode('utf8').strip("\s</title>")
print name
re.findall(reg,string,re.I):返回一个列表,列表中存放了在string中匹配到的所有字符串。
content = re.findall(reg,html,re.I)
for item in content:
do_something...
3. 字符串判断
s.isalnum() 所有字符都是数字或者字母
s.isalpha() 所有字符都是字母
s.isdigit() 所有字符都是数字
s.islower() 所有字符都是小写
s.isupper() 所有字符都是大写
s.istitle() 所有单词都是首字母大写,像标题
s.isspace() 所有字符都是空白字符、\t、\n、\r
s.replace(str1,str2)将字符串中所有的str1替换成str2
判断是整数还是浮点数
a=123
b=123.123
>>>isinstance(a,int)
True
>>>isinstance(b,float)
True
>>>isinstance(b,int)
False
4. 多线程编程
一般开CPU个数的1-1.5倍线程数为好,若线程的cpu占用比较多 则可开多几个线程。
文件读写 ,网络读写,这些都属于i/o操作。一般处理的不是大数据 ,计算不复杂,都是io操作密集型的进程。
条件变量Condition是对Lock对象的包装,在创建Condition对象时,其构造函数需要一个Lock对象作为参数,如果没有,Condition将在内部自行创建一个Rlock对象。在Condition对象上,也可以调用acquire和release操作,但是Condition的价值在于其提供的wait和notify。条件变