点击window python
右键,有一个属性propertesmysql
也是右键属性,这里就不在说了
#模块的和模块的经常使用方法sql
#!/usr/bin/env python #coding:utf-8 def 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 1 re = foo() print re 输出: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 0 1 2 3 4 5 6 7 8 9 <generator object foo at 0x00000000030B8480>
def fool(): yield 1 yield 2 yield 3 yield 4 #他的执行过程是,第一从从yield 1 执行,下一次直接从yield2开始执行 re = fool() print re #生成了一个生成器,每次遍历只生成一条 for item in re : print item 结果: <generator object fool at 0x0000000003248480> 1 2 3 4
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 1 1 2 2 3 3 4
#为程序增长一个序号 li = ['手表','汽车','房'] for item in enumerate(li,1): print item[0],item[1] #1为初始值 1 手表 2 汽车 3 房
lala = []; def foo(arg): return arg + 100 li = [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 True else: return False temp = 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 model print model.path 输出: <module 'os' from 'D:\pycharm\lib\os.pyc'> <module 'ntpath' from 'D:\pycharm\lib\ntpath.pyc'>
getattr就是在mysqlhelper模块中查找count函数
Function就等于调用的count函数
相应的有delattr()、hasattr()判断函数中是否含有相应的模块json
#使用random生成验证码
它使用的是ascall的值进行生成的app
import random print random.random() print random.randint(1,5) #生成1-5之间的随机整数 print random.randrange(1,3) #生成大于等于1,小于3的随机数
import random code = [] 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只申请一次dom
#!/usr/bin/env python #coding:utf-8 import hashlib hash=hashlib.md5() hash.update('admin') print hash.hexdigest() print hash.digest() 21232f297a57a5a743894a0e4a801fc3 !#/)zW��C�JJ�¬� #md5不能反解
应用实例:(python 和python之间传输文件,单机游戏实时保存)ide
一个程序将列表存在一个程序中,另外一个程序使用这个文件的时候。使用序列化以后在让另外一个程序去读取的话,使两个python程序之间内存数据之间的交换,两个独立的进程在内存中看,他们的内存空间不能互相访问,若是两个程序之间不只仅只是简单的列表共享,还想其余数据交换,数据可能比较复杂。并且硬盘只能存字符串类型的数据,只能经过系列化,存入文件,另外一个程序而后读取文件的内容,而后将其反序列化以后,在加载到内存中
序列化:把一个对象或(一个列表、字典),把对象经过Python特有的机制序列化,序列化就是以特殊的形式以过二进制的方式给对象加密,而且序列化以后能够反序列化。函数式编程
import pickle li = ['axex',11,22,'ok','sb'] print pickle.dumps(li) print type(pickle.dumps(li)) 输出结果: (lp0 S'axex' p1 aI11 aI22 aS'ok' p2 aS'sb' p3 a. <type 'str'> #是一个没有规则的字符串类型
import pickle li = ['axex',11,22,'ok','sb'] dumpsed = pickle.dumps(li) print type(dumpsed) loadsed = pickle.loads(dumpsed) print loadsed print type(loadsed) <type 'str'> ['axex', 11, 22, 'ok', 'sb'] <type 'list'>
将列表序列化到一个文件中
import pickle li = ['axex',11,22,'ok','sb'] pickle.dump(li,open('E:/temp.pk','w')) result = pickle.load(open('E:/temp.pk','r')) #将文件中反序列化
JSON:一种标准化的数据格式,把不一样格式的数据JSON化。
##两种序列化的区别
import json name_dic = {'name':'wupeiqi','age':23} print json.dumps(name_dic) 输出结果:所有变成字符串 {"age": 23, "name": "wupeiqi"}
为何多个了U呢,由于在存入内存中使用Unicode,你本事是utf-8,而后反序列化以后又变成Unicode