1、在python2.6总nonlocal不可用 2、python中还是可以出现";"的,例如:x = 3 ; y = 5 ; print(x+y) 3、python中的集中赋值: spam = 'spam' #简单赋值 spam,ham = 'yun','YNN' #元祖赋值运算 ['spam','ham'] = ['yun','YUM'] #列表赋值运算 a,b,c,d = 'spam' #序列赋值运算 a,*b = 'spam' # 扩展序列解包 spam=ham='lunch' #多目标赋值 spam += 412 #增强赋值运算 3、序列赋值, [a,b,c]=(1,2,3) (a,b,c)="abc" [a,b,c]='abc' 但是当两侧数目不一致时会报错。 4、当两侧数目不一致时,序列解包可以解决这个问题 seq = [1,2,3,4] a,*b = seq print(a,b) #输出:1,[2,3,4] *a,b = seq print(a,b) #输出:[1,2,3],4 a,*b,c = seq print(a,b,c) #输出:1,[2,3],4 序列解包对任何序列都有效: a,*b = 'spam' #输出:s,pam 如果没有剩下的内容给带星号的名称,则会赋值一个空的列表 a,b,c,d,*e = seq #输出:1,2,3,4,[] a,b,*c,d,e = seq #输出1,2,[],3,4 #a,*b,c,*d=seq将会报错 #*a = seq 将会报错 *a, = seq 5、案例分析 a = b = 0 b = b+1 print(a,b) #0,1 #修改b只对b有影响, 6、列表的+和增强运算+=是有区别的,其中调用列表的extend的方法和增强+=效果一样。+=是在原处修改,而+是新建一个新的列表 L = [1,2,3,4] t = [[1,2,3,4,5,6,7]] k = L+t print(k) #输出[1,2,3,4,[1,2,3,4,5,6,7]] t[0][0] = -100 print(k) #输出[1,2,3,4,[1,2,3,4,5,6,7]] L = [1,2,3,4] t = [[1,2,3,4,5,6,7]] L+=t print(L) #输出:[1, 2, 3, 4,[ 1, 2, 3, 4, 5, 6, 7]] t[0][0]=-100 print(L) #输出:[1, 2, 3, 4, [-100, 2, 3, 4, 5, 6, 7]] L = [1,2,3,4] t = [[1,2,3,4,5,6,7]] L.extend(t) print(L) #输出:[1, 2, 3, 4,[ 1, 2, 3, 4, 5, 6, 7]] t[0][0]=-100 print(L) #输出:[1, 2, 3, 4, [-100, 2, 3, 4, 5, 6, 7]] 另外一个例子: L = [1,2] M = L L = L + [3,4] print(L,M) #输出:[1,2,3,4],[1,2] L = [1,2] M = L L.extend([3,4]) #或者L+=[3,4] print(L,M) #输出:[1,2,3,4][1,2,3,4] 7、命名规则 单下划线开头不会被from module import * 导入 例如:_x 前后都有双下划线的是系统定义变量 例如:__doc__ 前面有两个下划线,但是后面没有下划线的是类本地变量 8、python3.0中的语法 print([object][,sep=' '][,end=' '][,file=sys.stdout]) #等号后面都是默认值 9、python2.6中 print x,y 等效于 print(x,y) print x,y, 等效于print(x,y,end='' #表示消除末尾的换行符 print >>myfile x,y 等效于 print(x,y,file=myfile) 如果想消除各个元素间的分隔符可以通过+或者格式化表示 print x+y 或者 '%s%s'%(x,y) 10、print(x)等价于 如下 import sys sys.stdout.write(str(x)+' ') 11、可以设置sys.stdout为文件,例如: import sys temp = sys.stdout #保存下来,方便以后调换过来 sys.stdout = open(r'f:/python/tsst.txt') #或者 print(x,y,file=(open(r'f:/python/test.txt'))) print('hello,worl') print(1,2,3) sys.stdout.close() sys.stdout = temp #又切换为原来 print('hello,worl') print(1,2,3) 12、错误信息也可以重定向 import sys sys.stderr.write('bad'*8+' ') 或者print('bad'*8,file=sys.stderr)