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")

上一篇:码灵鼠


下一篇:django 链接多个数据库 并使用原生sql