本文共 5041 字,大约阅读时间需要 16 分钟。
点击window
右键,有一个属性propertes
也是右键属性,这里就不在说了
#模块的和模块的常用方法#!/usr/bin/env python#coding:utf-8def login(username):if username == "alex": print "登录成功"else: print "登录失败"if __name__ == "__main__":user = raw_input('username:')login(user)
print range(10)for item in xrange(10): print item #输出的时候并没有全部创建,他只是一个生成器,说明他没有写入内存中 #也就是说每一次创建就只创建一个整数def foo(): yield 1re = foo()print re输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]0123456789
def fool(): yield 1 yield 2 yield 3yield 4 #他的执行过程是,第一从从yield 1 执行,下一次直接从yield2开始执行 re = fool()print re#生成了一个生成器,每次遍历只生成一条for item in re :print item结果:1234
def ReadLines(): seek = 0 while True: with open('E:/temp.txt','r') as f : f.seek(seek) date = f.readline() if date: seek = f.tell() yield date else: return print ReadLines()for item in ReadLines(): print item
for k,v in enumerate([1,2,3,4]):print k,v输出:0 11 22 33 4
#为程序增加一个序号li = ['手表','汽车','房']for item in enumerate(li,1):print item[0],item[1]#1为初始值1 手表2 汽车3 房
lala = [];def foo(arg):return arg + 100li = [11,22,33]lala = map(foo,li)print lala结果:[111, 122, 133]#也可以使用 lala.append(item+100)temp = map (lambda arg:arg+100,li)
temp = []li = [11,22,33]def foo(arg):if arg <22: return Trueelse: return Falsetemp = filter(foo,li)print temp将li序列中满足条件的返回temp序列中结果:11
print reduce(lambda x,y:x+y,[1,2,3] )结果 6将前一次的计算结果,传递为第二次计算的第一个参数
a ='8*8'print eval(a)结果:64
s = 'i am {0},{1}'
print s.format('alex','xxx')i am alex,xxx不允许使用import os 导入,用temp的方法导入
temp = 'os'model = __import__(temp)print modelprint model.path输出:
#使用random生成验证码
它使用的是ascall的值进行生成的import randomprint random.random()print random.randint(1,5)#生成1-5之间的随机整数print random.randrange(1,3)#生成大于等于1,小于3的随机数
import randomcode = []for i in range(6): if i == random.randint(1,5): code.append(str(random.randint(1,5))) else: temp = random.randint(65,90) code.append(chr(temp))print ''.join(code)
#注意:join和+=的区别
join效率更高,+=每次都要在内存中请求一块空间,join只申请一次#!/usr/bin/env python#coding:utf-8import hashlibhash=hashlib.md5()hash.update('admin')print hash.hexdigest()print hash.digest()21232f297a57a5a743894a0e4a801fc3!#/)zW��C�JJ�¬�#md5不能反解
应用实例:(python 和python之间传输文件,单机游戏实时保存)
一个程序将列表存在一个程序中,另一个程序使用这个文件的时候。使用序列化之后在让另一个程序去读取的话,使两个python程序之间内存数据之间的交换,两个独立的进程在内存中看,他们的内存空间不能互相访问,如果两个程序之间不仅仅只是简单的列表共享,还想其他数据交换,数据可能比较复杂。而且硬盘只能存字符串类型的数据,只能通过系列化,存入文件,另一个程序然后读取文件的内容,然后将其反序列化之后,在加载到内存中
序列化:把一个对象或(一个列表、字典),把对象通过Python特有的机制序列化,序列化就是以特殊的形式以过二进制的方式给对象加密,并且序列化之后可以反序列化。import pickleli = ['axex',11,22,'ok','sb']print pickle.dumps(li)print type(pickle.dumps(li))输出结果:(lp0S'axex'p1aI11aI22aS'ok'p2aS'sb'p3a.#是一个没有规则的字符串类型
import pickleli = ['axex',11,22,'ok','sb']dumpsed = pickle.dumps(li)print type(dumpsed)loadsed = pickle.loads(dumpsed)print loadsedprint type(loadsed)['axex', 11, 22, 'ok', 'sb']
将列表序列化到一个文件中
import pickleli = ['axex',11,22,'ok','sb']pickle.dump(li,open('E:/temp.pk','w'))result = pickle.load(open('E:/temp.pk','r'))#将文件中反序列化
JSON:一种标准化的数据格式,把不同格式的数据JSON化。
##两种序列化的区别import jsonname_dic = {'name':'wupeiqi','age':23}print json.dumps(name_dic)输出结果:全部变成字符串{"age": 23, "name": "wupeiqi"}
转载于:https://blog.51cto.com/13132323/2134808