Python
xiangxiupp
这个作者很懒,什么都没留下…
展开
-
python基础知识(字符串、列表、元组、字典)
#python基础知识#字符串、列表、元组、字典#字符串常用功能''' 移除空白、分割、长度、索引、切片'''s=" what's you name?"print("capitalize:",s.capitalize()) #字符串的首字母大写print("center",s.center(50,"-")) #将字符串居中显示,第一个参数为总长度,第二个参数为空白处填充的内容prin...原创 2018-06-01 14:56:23 · 301 阅读 · 0 评论 -
去掉字符串前后空白
# 去掉字符串前后空白 python33讲s=" hello andf s kjdg edu lkgjl "print(len(s))#s=s.strip()#print(s)i=0h=0t=0while i<len(s): if not s[i].isspace(): print(i) h=i原创 2017-09-15 23:03:05 · 254 阅读 · 0 评论 -
去掉字串中空白
# 去掉字符串中的空白 python32讲s="hello andf s kjdg edu lkgjl"t=" "i=0while i<len(s): #if s[i].isspace(): if s[i]==" ": print(i,end='') else: t=t+s[i] i=i+1原创 2017-09-15 20:51:23 · 145 阅读 · 0 评论 -
练习7-2重循环
import random#判断一个6位随机数中是否包含4和7'''i=0while i<20: x=random.randint(100000,1000000) s=str(x) if "4" in s and "7" in s: #if '4' in s and '7' in s: print(s,"conta原创 2017-09-13 21:40:32 · 192 阅读 · 0 评论 -
练习9-子串-2重循环
# 查找子串 python25讲s="hello andfdfdkjfklsds kjdg edu lkdjgkldjlkgjl"head="and"tail="sds"i=0h=0 #记录头的位置t=0 #记录t的位置while i<=len(s)-len(head): k=0 c=0#统计匹配到的子串长度 while k<len(head)原创 2017-09-13 22:47:54 · 224 阅读 · 0 评论 -
删除子串
# 删除子串 python31讲s="hello andfdfdkjfklsds kjdg edu lkdandandjgkldjsdslkgjl"sub="dan"print(s)i=0while i<=len(s)-len(sub): if s[i:i+len(sub)]==sub: print(i) s=s[:i]+s原创 2017-09-15 20:28:06 · 177 阅读 · 0 评论 -
练习8-查找子串
# 查找子串s="hello andfdfdkjfklsd kjdg edu lkdjgkldjlkgjl"sub="edu"i=0while i<=len(s)-len(sub): k=0 c=0#统计匹配到的子串长度 while k<len(sub): if s[i+k]==sub[k]:原创 2017-09-13 22:25:18 · 215 阅读 · 0 评论 -
类例2
class person: def __init__(self,name,job=None,pay=0): self.name=name self.job=job self.pay=pay def lastName(self): return self.name.split()[-1] def giveRais原创 2017-04-14 16:39:48 · 312 阅读 · 0 评论 -
匿名函数
#lambda是一个表达式,可以在def不能使#用的地方使用#基本形式:lambda:arg1,arg2..argn:expressionf=lambda x,y,z:x+y+zprint(f(1,2,3))原创 2017-04-06 15:24:45 · 146 阅读 · 0 评论 -
递归函数
def sum(l): #print(l) if not l: #l为空时,递归循环结束 return 0 else: return l[0]+sum(l[1:]) #递归调用 print(sum([1,2,3,4,5]))def sum1(l): first,*rest=l return first原创 2017-04-06 14:07:19 · 241 阅读 · 0 评论 -
练习3
#参数匹配,通过可变参数的匹配形式去收集#传入的参数,参数作为一个元组传入#返回交集def intersect(*args): res=[] for x in args[0]: for other in args[1:]: if x not in other: break else原创 2017-04-06 10:55:11 · 142 阅读 · 0 评论 -
练习7
#使用__class__和__base__属性来查看继承层次def classtree(cls,indent): print('.'*indent+cls.__name__) for supercls in cls.__bases__: classtree(supercls,indent+3)def instancetree(inst): print原创 2017-04-18 15:12:25 · 187 阅读 · 0 评论 -
类例3
#类接口技术class super: def method(self): print('in super method.') def delegate(self): self.action()class inheritor(super): #继承super中的一切 passclass replacer(super):原创 2017-04-18 14:05:44 · 268 阅读 · 0 评论 -
练习6
#对for循环构建列表计时import timecount=1000loopcount=range(count)#计时def timer(func,*pargs,**kargs): start=time.clock() for i in loopcount: res=func(*pargs,**kargs) elapsed=time.clock(原创 2017-04-10 09:57:00 · 149 阅读 · 0 评论 -
find查找子串位置
#find(sub,start,end)#sub为子串,start为开始搜索的索引,end为结束搜索的索引s="hello sjfk edu xiaoleduong find"*4sub="edu"i=0pos=-len(sub)#记录位置while i<s.count(sub): pos=s.find(sub,pos+len(sub)) print(pos,)原创 2017-09-15 23:18:19 · 506 阅读 · 0 评论 -
find查找子串
#find(sub,start,end)#sub为子串,start为开始搜索的索引,end为结束搜索的索引s="http://www.baidu.com jkjhttp://www.163.com.com.comjgkldj http://www.souhu.comjljl"h="http"posh=-len(h)#记录位置c=".com"posc=-len(c)i=0while原创 2017-09-15 23:29:41 · 621 阅读 · 0 评论 -
类例5
#show.py 该类用于打印实例对象class attrdisplay(): def gatherattrs(self): attrs=[] for key in sorted(self.__dict__): attrs.append('%s=%s'%(key,getattr(self,key))) return原创 2017-11-06 14:19:00 · 187 阅读 · 0 评论 -
类例4
#firstclass.pyclass firstclass: def setdata(self,value): self.data=value def display(self): print(self.data)if __name__=='__main__': x=firstclass() y=firstclass()原创 2017-11-03 11:07:41 · 205 阅读 · 0 评论 -
自定义迭代器
class test: def __init__(self,start,stop): self.value=start-1 self.stop=stop def __iter__(self): return self def __next__(self): if self.value==self.stop:原创 2017-11-08 15:57:29 · 152 阅读 · 0 评论 -
Python logging模块
简单将日志打印到屏幕:[python] view plain copyimport logging logging.debug('debug message') logging.info('info message') logging.warning('warning message') logging.error('erro转载 2017-10-28 14:53:52 · 115 阅读 · 0 评论 -
删除列表中的某个值-函数1
#coding:utf-8#删除列表中的某个值 77讲def delitem(value): global s i=0 while i<len(s): if s[i]==value: left=s[:i] right=s[i+1:]原创 2017-09-17 10:54:01 · 746 阅读 · 0 评论 -
删除列表中某个值-函数2
#coding:utf-8#删除列表中的某个值 78讲def delitem(ss,value): i=0 while i<len(ss): if ss[i]==value: ss=ss[:i]+ss[i+1:] i-=1 i+=1 pri原创 2017-09-17 12:13:03 · 340 阅读 · 0 评论 -
删除列表中重复值
#删除列表中的重复的值,保留重复值的第一个值s=[1,2,1,2,9,2,4,8,3,3,5,5,6,3,8,3,6,3,7,8]print(s)i=0s1=[]while i<len(s): if s[i] not in s1: s1.append(s[i]) i+=1print(s1)原创 2017-09-16 20:55:20 · 418 阅读 · 0 评论 -
删除列表中重复值
#删除列表中的重复的值,保留重复值的第一个值s=[1,2,1,2,9,2,4,8,3,3,5,5,6,3,8,3,6,3,7,8]print(s)i=0while i<len(s): pf=s.index(s[i]) x=s.count(s[i]) if x>1: s.pop(s.index(s[i],pf+1))原创 2017-09-16 20:49:58 · 733 阅读 · 0 评论 -
删除列表中重复值,重复值保留一个
#删除列表中的重复的值,保留重复值的第一个值s=[1,2,3,2,9,2,4,8,3,5,5,6,3,8,3,6,7,8]print(s)#print(l.count(9))i=0while i<len(s): if s.count(i)>1: pos=s.index(s[i]) print("pos:",pos)原创 2017-09-16 20:02:03 · 4606 阅读 · 1 评论 -
删除列表中重复值1
#删除列表中的重复的值'''l1=[1,2,3,2,9,4,5,6,3,8,9,3,6,7,8,9,]s=[]for x in l1: if x not in s: s.append(x)print("l1:",l1)print("删除列表中重复元素后:")print("s: ",s)''' #删除列表中的重复的9,保留第一个9#先找原创 2017-09-16 19:45:30 · 509 阅读 · 0 评论 -
extend/append
#extend参数是可迭代对象l1=list(range(1,11))l2=list(range(2,6))print(" l2:",l2)print(" l1:",l1)l1.extend(l2)print("extend l1:",l1)l1=list(range(1,11))l2=list(range(2,6))print("原创 2017-09-16 17:52:30 · 184 阅读 · 0 评论 -
insert方法
#将l2插入l1的元素5后l1=list(range(1,11))l2=list(range(2,6))pos5=l1.index(5)i=len(l2)-1print(l1)while i>=0: l1.insert(pos5,l2[i]) i=i-1print(l1)原创 2017-09-16 14:23:47 · 3342 阅读 · 0 评论 -
列表中第一大和第二大元素
#列表中第一大和第二大元素l=[1,2,3,67,45,23,100,0,11]print(l)i=0max1=l[0]max2=l[0]while i<len(l): if max1<l[i]: max2=max1 max1=l[i] else: if max2<l[i]:原创 2017-09-16 09:50:45 · 516 阅读 · 0 评论 -
类例1
class sclass() def display(self): print('current value=%s'% self.data)class class3(sclass): #初始化属性值 def __init__(self,value): self.data=value #"+"运算符重载 def __add原创 2017-04-13 15:09:38 · 204 阅读 · 0 评论 -
字典
#创建字典d1={'food':'huogou','quantity':2,'color':'red'}print("d1:",d1)d2={}d2['name']='david'd2['job']='dev'd2['age']=30print("d2['name']:",d2['name'])#字典嵌套d3={'name':{'first':'bob','last':'sm原创 2017-03-17 16:04:31 · 207 阅读 · 0 评论 -
列表解析
l=[1,2,3]l=[x+10 for x in l]print(l)#for循环等价形式,但没列表解析简单,运行速速也较列表解析慢l1=[12,13,14]res=[]for x in l1: res.append(x+10)print(res)#对文件使用列表解析lines=[line.rstrip() for line in open('test.txt')]原创 2017-03-26 15:16:11 · 1351 阅读 · 0 评论 -
元组
#元组,具有不可变性,支持任意类型、任意嵌套、及常见的序列操作t=(1,2,3,4)print(len(t)) #元组的长度print(t+("xi",12)) #元组的合并print(t[1])print(t.index(3)) #获取下标对应的值print(t.count(2)) #统计值为2的个数#t[0]=2 #错误,元组创建后不能被修改原创 2017-03-17 16:27:29 · 332 阅读 · 0 评论 -
列表
l=[123,"string",1.23]print("原始列表:",l)print("-----") print(len(l)) #列表长度print(l[2]) #列表索引print(l[:-1]) #列表分片print(l+[4,6]) #列表连接print("列表连接后的l:",l) #原始列表未改变l.append("we")原创 2017-03-17 10:58:44 · 161 阅读 · 0 评论 -
字符串操作
#字符串的操作,字符串具有不可变性,一旦创建不能在原地修改#在核心数据中,数字,字符串,元组具有不可变性s="python"print(len(s)) #序列的长度print(s[0]) #序列索引对应的值print(s[-1]) #反向索引print(s[1:3]) #分片,不包含索引3对应的值print(s[1:])print(s[:])print(s[:-1])原创 2017-03-16 17:03:47 · 309 阅读 · 0 评论 -
函数
#返回s1和s2的交集def intersect(s1,s2): res=[] for x in s1: if x in s2: res.append(x) return resprint(intersect("abc","xoaljjl123"))#参数类型不重要,只要第一个参数支持for循环,第二个参数支持成员测试即可p原创 2017-03-28 11:28:44 · 190 阅读 · 0 评论 -
作用域
#如果要给一个在函数内部却位于模块文件顶#层的变量赋值,需要通过global声明#如果要给一个嵌套的def中的变量赋值,需要通过nonlocal声明x=99 #全局变量def fun(y): #y本地变量 x=88 #本地变量,只在fun中可见 z=x+y #z本地变量 return zm=100def f(): global m #函数内声明m为全局原创 2017-03-29 15:29:03 · 181 阅读 · 0 评论 -
参数1
#不可变参数通过值传递,可变参数通过对象的引用传递def change(a,b): a=2 b[0]='test'x=1l=[1,2]change(x,l) #避免参数修改原对象change(x,l[:])print(x,l)#调用结束后变量x未被改变,变量l的内容在函数中被改变了'''参数匹配模型位置:从左到右关键字参数:通过参数名进行匹配默认参数:为没有传原创 2017-03-30 15:34:56 · 524 阅读 · 0 评论 -
参数2
#默认参数和关键字参数混合def f(a,b,c=0,d=0): #调用者必须传递2参数去匹配a和b print(a,b,c,d)f(1,2)f(1,d=10,b=20)f(d=30,b=20,a=0) #关键字参数在调用中,参数排列的位置无关系,通过变量名进行匹配而不是位置#收集位置参数到元组中def f0(*arg): print(arg)f0(1,2)原创 2017-03-30 16:52:18 · 398 阅读 · 0 评论 -
map、filter、reduce函数
#map(func,iter)#map的第一个参数为函数,第二个参数为#可迭代对象#将可迭代对象的每一项作用于函数,返回函#数调用后的一个结果列表#map是一个可迭代对象,将其放入list中将其结果放入到列表中print(list(map((lambda x:x+5),[1,2,3,4])))print(list(map(pow,[1,2,3],[2,2,2])))#filter函数原创 2017-04-06 16:25:06 · 224 阅读 · 0 评论