程序中有中文:#coding:utf-8从键盘读取:b=int(raw_input('pleaseinput华氏温度:'))注意数据类型5.0/9type()查看变量数据类型字符串类型:1.’’2.“”3.\转义字符4.”””任意格式“””或者’’’任意格式’’’操作字符串:1.索引a[0]+a[1]2.切片a[1:3]a[:4]a[1:]a[1:10:2]a[-10:]a[-9:-1:-1]序列的基本操作len():求序列长度+:连接两个序列*:重复序列元素in:判断元素是否在序列中max():返回最大值min():返回最小值cmp(tuple1,tuple2):比较两个序列值是否相同1,0,-1元祖tuple:t=(‘reus’,‘30’,‘male’)空元祖:t1=()单元组:t2=(‘kim‘,)不打,就是字符串类型元祖的值是不可变的!name,age,sex=t直接获取元祖的三个值列表list:l=[‘reus’,s30,’male’]list.append()添加list.remove(list[])ordel(list[])删除也可以在括号中直接加元素list[]=x修改varinlist查找元祖、列表、字典、集合的区别字典dict:Dic={name:reus,age:30,gender:male}forxinrange(I,j,步进值)for循环遍历字典fork,vindic.items():printkprintv流程控制:pass代码桩continue跳过break跳出循环exit()结束程序函数:def函数名(参数列表):函数体默认参数必须是自右向左print“%s:%s”%(‘name’,‘milo’)name:milodeff(x,y)print“%s:%s”%(x,y)t=[name,milo]f(*t)成功。一一对应元祖传递f(**d)成功。字典传递必须是形参名能在key中找到冗余参数:定义函数的时候Deff(x,*args):printxprintargs用一个元祖来接受多余的实参Deff(x,*args,**kwargs):printx用一个元祖和字典来接受多余的实参Lambda匿名函数G=lambdax,y:x*yG(2,3)6swtich{1:case1,2:case2}.get(x,lambda*arg,**key:)()内置函数:abs()返回绝对值max()返回最大值min()返回最小值len()返回序列长度divmod()Returnthetuple((x-x%y)/y,x%y)pow()次方round()callable()测试函数是否能被调用isinstance()判断对象为什么类型isinstance(l,list)cmp()比较两个字符串长度range()快速生成一个序列range(10)xrange()快速生成一个序列str.capitalize()首字母大写str.replace()替换s.replace(“hello”,”good”,2)str.split()切割ip.split(‘.’,2)filter()筛选zip()遍历合并取最小map()遍历合并reduce()正则表达:Importres=r’abc’re.findall(s,”bdhaidwiaabc”)res=r”t[io]p”[]代表一个字符集里面任意一个都可以拿来匹配res=r”t[^io]p”这里^代表取反r=r”^hello”字符串首部有hellor=r”boy$”字符串有boyr=r”x[0-9]x”r=r”x[a-zA-Z0-9]x”r=r”\^abc”转义尖角号r=r“^010-\d{8}$”r=r”ab*”.b重复0-n次r=r”ab+”b重复1-n次r=r”ab?”b可有可无0次或1次r=r”ab+?”最小匹配当有一次b出现时就返回r=rr”a{1,3}”a重复1-3次正则编译r1=r”/d{3,4}-?/d{8}”p_tel=re.compile(r1)编译之后的正则匹配速度更快p_tel.findall(‘010-12345678’)csvt_re=re.compile(r’csvt’,re.I)re.I匹配不区分大小写re.match()匹配字符串在开头返回一个对象否则不返回x=re.match()x.group()返回该对象的字符串x.start()x.end()x.span()search()匹配字符串任何位置都返回一个对象finditer()返回一个迭代器x=scvt_re.finditer(‘hellocsvthello’)re.sub()rs=r’c..t’re.sub(rs,’python’,’csvtcaatcvvtcccc’)通过正则表达式替换re.split()s=“123+456-789*000”re.split(r‘[\+\-\*]’,s)r1=r”csvt.net”re.findall(r1,”csvt\nnet”,re.S)re.S依然可以匹配s=“””csvthellohellocsvthellocsvthellocsvthehe“””r=r”^csvt”re.findall(r,s,re.M)re.M可以匹配tel=r”””\d{3,4}-?\d{8}“””re.findall(tel,‘010-12345678’,re.X)re.X匹配分组email=r”\w{3}@w+(\.com|\.cn)”zzz@csvt.comre.findall(email,’zzz@csvt.com’)有分组优先返回分组数据爬虫:深拷贝:importcopyd=copy.deepcopy(a)浅拷贝:d=a或者d=copy.copy(a)文件:fo=open(‘/root/test.txt’)fo.read()fo.close()fo=file(‘root.test.txt’)f1.write(‘good’)模式加’’f1.readlin(),读取文件对象的一行,空字符串不会停止f1.readlins(),返回每一行组成的列表f1.next()读取文件对象的一行,空字符串报错f1.write()写入一个字符串f1.writelines(list)写入多个字符串f1.seek()f1.flush()提交更新(保存)练习:1.统计文件中的hello个数2.把a.txt中的hello替换为csvt并保存到a2.txt中OS模块os.mkdir(‘/root/test’)创建一个目录os.mkdirs(‘a/b/c’)os.rmdir(‘test’)os.removedirs(‘a/b/c’)os.listdir(‘.’)os.getcwd()获取当前路径os.chdir(‘/’)切换目录