Python笔记(1)变量与表达式
列表list
list是用的最多的类型
可以count计数
可嵌套,多钟类型并存 支持 + *
a = [1,2,3] a_ref = a a_copy = a[:]
引用,a变化a_ref也变化 指向同一个地址 可以用id(a)查看,除非拷贝a_copy。但是如b = a * 2 + *不是a的引用,b会变成一个新的列表
l = [4,5,6] x = l*4,y = [l]*4 l[1] = 0 print x,y
x已经和l没有关系了,x不会变,y会变
字符串和列表都有index等相似操作,但是list可以直接根据index修改,字符串就不可以修改,因为字符串是一个常量,可以访问,不能通过index修改。
元祖
相当于一个不可变的列表,[]变成()和字符串很像。
index,count,+,*
也可以嵌套可以变化的list(不推荐)
转换 tuple(list) (list转换成元祖)
字典
key-value key不可变(数字,字符串,元祖),value各个类型都可以
字典是个散列表,没有顺序,适合插入,查询操作
zip可将相同长度的list生成一个key-value的字典
Get,Update,Del,Clear,嵌套
浅拷贝 D.copy() ,copy.copy(D) (只拷贝一层,非嵌套的适用)
深拷贝 copy.deepcopy(D) (全部拷贝过来)
文件
F = open(path,'r')
F.read() F.readline() F.write() F.close()
还有Shelve和Pickle(cPickle)库
#Shelve库 读取只要open就行了 import shelve D = shelve.open(file) D['name'] = 'content' D.close() #cPickle 读取需要load f = open(file,mode) cPickle.dump(obj,f) Obj = cPickle.load(f) #中文支持 import codecs f = codecs.open(filename,mode(w,r等),encoding) #文件是否存在 返回boolen import os os.path.exists(filename) os.rename(old,new)
输入
raw_input 接收字符串
input 接收可运行的表达式
x = input("1+2:")
输入1+2
print "%d"%x
输出
3
但是在python3中 input和raw_input合体了,raw_input被取消了,input用于接收字符串,要传整形得自己转
输出
print Python2中是一个语句,有格式
print a,b print>>file a,b print '%d%s'%(a,c) print "{0} use {1}".format('we','python')
Python3是个函数,有固定的参数
print([obj,....][,spe(什么东西分割)][,end = '\n'][,file = sys.stdout])
条件表达式
if/else where/else 不等于0的都是true 缩进要一致 table和空格不要混用
while经常跟着逻辑表达式 if常遍历列表,字符串,元祖,字典,文件
列表解析 表达简洁,速度比直接写循环要快一点,python作者喜欢列表解析。
例
l2 = ['a','b','b','a','b','b','v','v'] l1 = [] [l1.append(i) for i in l2 not in l1]
异常处理
try/except/finally
raise error(message)
Assert condition 条件触发异常,打印信息终至程序 (assert xxxx,"string")