#keys和iterkeys #keys返回key列表,iterkeys返回迭代器 #pop 获取并移除给定键的值 d={'x':1,'y':2} d.pop('x') 1 d {'y':2} #popitem 弹出随机一对键值 d.popitem() #setdefault 和get类似,若有该键值,返回。否则,赋值一个 d={} d.setdefault('name','N/A') 'N/A' d {'name':'N/A'} d['name']='Gumby' d.setdefault('name','N/A') Gumby d {'name':'Gumby'} #update 通过一个字典,修改字典 d={'a':'1','b':'2','c':'3'} x={'a':'4'} d.update(x) #没有则添加,有则覆盖 d d={'a':'4','b':'2','c':'3'} #values和itervalues #values返回值列表,itervalues返回迭代器 #打印多个表达式,多表达式之间会存在空格 print 'age',41,'name','asd' #age 41 name asd #多个变量 print a,b,c,'kakakka' print a+',',b #打印到单行,加个逗号,只在脚本中有效,交互式会话中每条语句都单独执行 print 'a', print 'b' pprint() #智能换行,打印长文档 #导入 import somemodule from somemodule import somefunction from somemodule import a,b,c from somemodule import * #若多个模块都有open()函数,使用import somemodule方式,引用时 import somemodule module1.open(...) module2.open(...) #或者使用as import math as foobar foobar.sqrt(4) from math import sqrt as foobar foobar(4) #赋值技巧(序列解包),左右数量要一致,否则报错 x,y,z=1,2,3 print x,y,z x,y=y,x print x,y v=1,2,3 x,y,z=v print x #字典 scoundrel1={'a':1,'b':2} key,value=scoundrel1.popitem() print key,value #序列 a,b,rest*=[1,2,3,4] #a为1,b为2,rest为[3,4] #链式赋值,a和b指向同一个对象 a=b=somefun() #增量赋值 a+=1 a*=2 #boolean 以下均解析为false False None 0 '' () [] {} #bool()可将其他值转换为Boolean,基本不需要 a=bool('asd') print a #基本语句 if ...: ... ... elif ...: ... ... else: ... while ...: ... ... if not ...: ... name='' while not name or name.isspace(): name=raw_input('enter your name:') print 'Hello %s'% name #range(1,101)相当于[1,2...100],数量大时推荐用xrange().range(0,101,5)等于[0,5,10......100] for number in range(1,101): print number d={'a':1,'b':2,'c':3} for key in d: print key,':',d[key] for key,value in d.items(): print key,':',value #比较运算符:== >= <= > < != is is not in not in #比较运算符可以连接使用 0<age<100 #断言 assert a<b '条件不满足,程序终止' #迭代工具zip names=['a','b','c','d'] ages[1,2,3,4] zip(names,ages) #值为[('a',1),('b',2),('c',3),('d',4)] #names和ages可以不等长,当短的序列用完就会停止 for name,age in zip(names,ages) print name+',',age #enumerate ,迭代索引-值对 for index,string in enumerate(string): if 'xxx' in string: string[index]='[censored]' #sorted和reversed返回结果,不修改对象 sorted([4,3,6,8,3]) [3,3,4,6,8] sorted('dbac') ['a','b','c','d'] list(reversed('dbac')) ['c','a','b','d'] ''.join(list(reversed('dbac'))) 'cabd' #else子句 from math import sqrt for n in range(99,81,-1): root=sqrt(n) if root==int(root): print n break else: #else子句仅在没有调用break时执行 print "Didn`t find it!" #列表推导式 [x*x for x in range(10)] [x*x for x in range(10) if x%3==0] [(x,y) for x in range(3) for y in range(3)] girls=['alice','bernice','clarice'] boys=['chris','arnold','bob'] [b+'+'+g for b in boys for g in girls if b[0]==g[0]] #列出首字母相同的boy和girl #pass 占位符,什么也不做,为满足语法格式而生,可以使用文档字符串代替 #del x=1 y=x del x #只是删除变量,不会删除对象,对象会被python自动回收 y 1 #exec 执行字符串语句 exec "print 'aa'" aa exec "sqrt=1" in scope #指定命名空间 #eval会计算表达式的值 eval(raw_input('Enter:')) Enter:6+8*2 42 #作用域 scope={} scope['x']=2 scope['y']=3 eval('x*y',scope) 6 scope={} exec 'x=2' in scope eval('x*x',scope) 4
python入门笔记(二)
猜你喜欢
转载自dushen.iteye.com/blog/2411960
今日推荐
周排行