Python基础
编码
#coding=utf-8
函数入口
if __name__== "__main__":
内置方法
type:a=1 type(a) help:import time help(time) dir:dir(time)
常用基本数据类型
1.int 整型
2.boolean 布尔
3.string 字符串:计算字符串长度之前,要把字符串转为utf-8编码 len(str.decode("utf-8"))
1).截取指定字符串 s = "i,am,lilei" print s[2:4] print s.split(',')[1]
2).替换指定字符串 ainfo = 'i love php' replycontent = ainfo.replace('php','python')
3).字符串拼接 str1="abcd" str2="efg" str3="hjk" print "$".join([str1,str2,str3]) #中间用$符号拼接
c = a + b
c = "%s%s" % (a,b)
c = "{a}{b}" .format (a=a,b=b)
c = "".join([a,b])
4).查找字符串的位置
a = "i,am,a,boy,in,china" print a.find('i')##不存在返回-1 print a.index('i')##不存在报错
计算该字符串一共有几个逗号 print a.count(',')
4.list 列表
b=[[1,2,3],[4,5,6]]
b[0][1]=7 #修改指定元素数值
print b #输出结果为[[1, 7, 3], [4, 5, 6]]
1) 切片
正向索引 a = [1,2,3,4,5,6,7] print a[0:4:1] [1, 2, 3, 4]
反向索引 a = [1,2,3,4,5,6,7] print a[-1:-4:-1] [7, 6, 5]
默认索引 a = [1,2,3,4,5,6,7] print a[1:]结果为[2, 3, 4, 5, 6, 7] print a[1::2]结果为[2, 4, 6]
2)添加操作
+ 生成一个新的列表
Extend 接受参数并将该参数的每个元素都添加到原有的列表中,原地修改列表而不是新建列表
Append :添加任意对象到列表的末端
Insert: 插入任意对象到列表中,可以控制插入位置。
3)修改操作
A = [1,2,3]
A[0]=’4’
4)删除操作
Del :我们通过索引删除指定位置的元素。del a 删除列表对象的引用 del a[:] 清空列表对象里的元素
Remove:移除列表中指定值的第一个匹配值。如果没找到的话,会抛异常。
Pop:返回最后一个元素,并从list中删除它。
5)成员关系
通过In和not in我们可以判断一个元素是否在列表里。
返回一个bool类型,元素在列表里返回true,否则返回fasle.
6)列表推导式
a.首先迭代iterable里所有内容,每一次迭代,都把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。
比如我们要生成一个包含1到10的列表 [x for x in range(1,11)] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b.加入了判断语句,只有满足条件的内容才把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。
[x for x in range(1,11) if x % 2 == 1] [1, 3, 5, 7, 9]
7)排序翻转:sort,reverse
list的reverse函数:反转一个list, 他的返回值为none
8)列表的应用:
a.内置list方法。
b.2.xrange和range的具体区别。
xrange的用法:xrange(开始,结束,步长) xrange 它生成一个xrange对象。
比较:range: 直接生成一个列表对象。 xrange: 它是生成一个xrange对象。
推荐:当我们需要操作一个非常大的数据,而且内存比较吃紧的时候,我们可以用xrange来操作省内存。
xrange一般用在循环里面,比如我们只需要操作部分数据的话,而不是返回全部元素来完成操作,推荐用xrange,效率更高。
c.列表推导式之再应用。
[x*x for x in range(100)]
生成字符串 ['the %s' % d for d in xrange(10)]
[(x,y) for x in range(2) for y in range(2)]
生成字典 dict([(x,y) for x in range(3) for y in range(2)])
5.tuple 元组
1)有序的集合
2)通过偏移来取数据
3)属于不可变的对象,不能在原地修改内容,没有排序,修改等操作。
元组不可变的好处。保证数据的安全,比如我们传给一个不熟悉的方法或者数据接口,确保方法或者接口不会改变我们的数据从而导致程序问题。
6.集合
集合是没有顺序的概念。所以不能用切片和索引操作。
1)创建集合。set():可变的 不可变的frozenset():
2)添加操作: add,update
3)删除 remove
4)成员关系 in,not in
6)交集,并集,差集 & | -
7)set去重 列表内容元素重复
7.dict 字典
字典是无序的,它不能通过偏移来存取,只能通过键来存取。
1)创建字典。{},dict()
info = {'name':'lilei', 'age': 20}
info = dict(name='lilei',age=20)
2)添加内容 a['xx'] = 'xx'
3)修改内容 a['xx'] = 'xx'
dic['key'] = 'value'
update 参数是一个字典的类型,他会覆盖相同键的值
info.update({'city':'beijing','phone':'nokia'})
4)删除 del,clear,pop
del info['phone'] 删除某个元素
info.clear()删除字典的全部元素
info.pop('name')
5)in 和 has_key() 成员关系操作
phone in info
info.has_key('phone')
6)keys(): 返回的是列表,里面包含了字典的所有键
values():返回的是列表,里面包含了字典的所有值
items:生成一个字典的容器:[()]
7)get:从字典中获得一个值
info.get('name')
info.get('age2','22')
操作文本函数
writeStr="写入"; f=open('a.txt','w'); f.write(writeStr) f.close() f=open("a.txt","r") readStr=f.read(); print readStr #将模块string的帮助文档保存为一个文件 import sys import string f = open('test.log','w') sys.stdout = f #将标准的输出流反映到文件的写入方法里面 help(string) f.close()