Python判断类型
利用type函数,Python可以得到一个对象的类型
lst=[1,2,3]
print type(lst)
结果:<type 'list'>
不仅如此,还可以利用 isinstance 函数,来判断一个对象是否是一个已知的类型。
isinstance(object, class-or-type-or-tuple) -> bool
例如:isinstance(object, (A,B,...)) -> bool
第二个参数为对象,类或类型或元组
实例:
isinstance(lst, list)
True
isinstance(lst, (int, str, list))
True
s=u'大头爸爸CSDN博客'
isinstance(s, unicode) #用来判断是否为unicode
用来判断是否为unicode编码更多内容请访问:http://blog.csdn.net/zm2714/article/details/7989614#t4
python字符串
格式化字符串
print "%s %s" %("hello","world")
将list转为字符串
a = ["a","b","c"]
print "-".join(a)
结果:a-b-c
替换字符串
str='abc'
print str.replace('a','A')
结果:Abc
交互模式中特殊变量 _
交互模式中,最近一个表达式的值赋给变量 _ 。这样我们就可以把它当作一个桌面计算器,很方便的用于连续计算,例如:
>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax12.5625
>>> price + _113.0625
>>> round(_, 2)
113.06
此变量对于用户是只读的,不要尝试给它赋值。
数组
range,xrange 这两个基本上都是在循环的时候用。
for i in range(0, 100):
print i
for i in xrange(0, 100):
print i
这两个输出的结果都是一样的,实际上有很多不同,range会直接生成一个list对象:
a = range(0,100)
print type(a)
print a
print a[0], a[1]
而xrange则不会直接生成一个list,而是每次调用返回其中的一个值
a = xrange(0,100)
print type(a)
print a
print a[0], a[1]
所以xrange做循环的性能比range好,尤其是返回很大的时候!
尽量用xrange吧,除非你是要返回一个列表。
注意:Python中没有数组的概念,只有list。
Python List 详细使用请访问:http://woodpecker.org.cn/diveintopython/native_data_types/lists.html
切片
1、[start:stop:step](不含stop)
2、start表示切片开始的位置,不指定start,Python就从序列首开始;序列第一个值的位置为0
3、stop表示切片结束的位置,不指定stop,Python会停止在序列尾。stop可以为负值。-1表示序列最后一个值。
4、注意,返回的序列从开始位置开始,刚好在结束位置之前结束。即开始位置是包含在序列切片中的,而结束位置被排斥在切片外。
5、字符串12345。对应的位置为:0(-5),1(-4),2(-3),3(-2),4(-1)
"123456"[::-1] #返回:654321
"123456"[:3:1] #返回:123
"123456"[3::1] #返回:456
生成随机数
import random
rnd = random.randint(1,500);
读文件
f = open("c:\\1.txt","r");
lines = f.readlines();#读取全部内容
for line in lines:
print line
写文件
f = open("c:\\1.txt","r+");#可读可写模式
f.write("123");#写入字符串
Python的正则表达式
读取tomcat的日志文件,并且把日期开头的内容显示出来,例如:xxxx-xx-xx
import re
regx = "\d\d\d\d-\d\d-\d+"
f = open("c:\stdout.log","r");
i = 0
for str in f.readlines();:
if re.search(regx,str);:
Response.write(str+"<br>");
if i>10:break#由于是测试,只分析十行
i=i+1
f.close();;
抓取FarideaBBS首页的所有图片
def farideaHttp();:
page = urllib.urlopen("../Boards.asp";);
body = page.readlines();
page.close();
return body
def anyHtml(line);
import re
regx = r"""<img\s*src\s*="?(\S+);"?"""
match_obj = re.search(regx,line);
if match_obj!=None:
all_groups = match_obj.groups();
for img in all_groups:print img#这个img就是图片的链接了
lines = farideaHttp();#读取全部内容
for line in lines:
anyHtml(line);
自动登录
#!/usr/bin/python
#coding=utf-8
import urllib
import urllib2
import cookielib
def post(url, data):
req = urllib2.Request(url)
data = urllib.urlencode(data)
#enable cookie
cookiefile = "cookiefile"
cookieJar = cookielib.MozillaCookieJar(cookiefile)
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar));
response = opener.open(req, data)
cookieJar.save()
#print response.read()
#second http request use cookie
cookieJar = cookielib.MozillaCookieJar(cookiefile)
cookieJar.load()
url = "http://www.xiami.com"
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
response = opener.open(url)
print response.read()
def main():
posturl = "http://www.xiami.com/member/login"
data = {'email':'mail','password':'aa','autologin':'1','submit':'登 录','type':''}
#print post(posturl, data)
post(posturl, data)
if __name__ == '__main__':
main()