python --递归--匿名函数--枚举--xlwt模块--redis--mysql--加密解密

codeAB 2019-10-26

知识点一、递归

def fun():    num = int(input(‘输入内容‘))    if num%2 == 0:        print(‘偶数‘)        return    else:        fun()fun()

python --递归--匿名函数--枚举--xlwt模块--redis--mysql--加密解密

 知识点二、匿名函数

#匿名函数#f = lambda x,b:str(x+b)#入参:返回值#(0,30)补零,map()循环函数,str(x).zfill(2)补零result = list(map(lambda x:str(x).zfill(2),range(1,30)))print(result)

python --递归--匿名函数--枚举--xlwt模块--redis--mysql--加密解密

#枚举内置函数l = [        315,        "矿泉水",        "女",        27,        "上海",        "摩羯座",        "18317155664",        100    ]for index,value in enumerate(l):    print(‘%s-%s‘%(index,value))

python --递归--匿名函数--枚举--xlwt模块--redis--mysql--加密解密

 知识点三、excel文件

1、写文件

1、1简单写入字符串

import xlwtimport xlutilsbook = xlwt.Workbook()#打开文件sheet = book.add_sheet(‘sheet1‘)#添加sheet页# sheet.write(0,0,‘名字‘)#(行,列,内容)# sheet.write(0,1,‘电话‘)# sheet.write(1,0,‘小航‘)# sheet.write(1,1,‘14489909‘)
book.save(‘student3.xls‘)1.2写入二维数组
import xlwtbook = xlwt.Workbook()#打开文件sheet = book.add_sheet(‘sheet1‘)#添加sheet页stu_list = [    [        "id",        "name",        "sex",        "age",        "addr",        "grade",        "phone",        "gold"    ],    [        314,        "矿泉水",        "男",        18,        "北京市昌平区",        "摩羯座",        "18317155663",        14405    ],    [        315,        "矿泉水",        "女",        27,        "上海",        "摩羯座",        "18317155664",        100    ],    [        5985,        "矿泉水",        "男",        18,        "北京市昌平区",        "班级",        "18513867663",        100    ]]# row = 0#行# for stu in stu_list:#控制行#     col = 0#列#     for s1 in stu:#控制列#         sheet.write(row,col,s1)#         col += 1#     row += 1### book.save(‘student2.xls‘)#枚举函数同上for row,stu in enumerate(stu_list):    for col,s1 in enumerate(stu):        sheet.write(row,col,s1)book.save(‘student3.xls‘)

python --递归--匿名函数--枚举--xlwt模块--redis--mysql--加密解密

2、读文件

import xlrdbook = xlrd.open_workbook(‘student3.xls‘)sheet = book.sheet_by_index(0)result = sheet.cell(0,0).value#单元格内容print(result)row = sheet.row_values(0)#整行内容print(‘行‘,row)col = sheet.col_values(0)#整列内容print(‘列‘,col)print(sheet.nrows)#总行数print(sheet.ncols)#总列数for row_num in range(sheet.nrow):     print(sheet.row_values(row_num))知识点四、操作数据库
import pymysqlip = ‘118.24.*.*‘#需要写可以连接的ipuser = ‘***‘password = ‘******‘db = ‘***‘port = 3306#默认端口号,可以不指定,需要改的话要传charset = ‘utf8‘conn= pymysql.connect(host = ip,user = user,password = password,db = db,port = port ,charset = charset,autocommit=True)#连接数据库#autocommit = True 是否自动提交
cur= conn.cursor()#游标#sql = ‘select *from app_myuser limit 10;‘#创建表‘‘‘create table ymy (id int unique not null, name varchar(20) not null, phone varchar(11) unique not null);‘‘‘#插入数据‘‘‘insert into mjz (id,name,phone) values (1,"小白","19812343211");‘‘‘‘‘‘insert into mjz (id,name,phone) values (2,"小白2","17812343211");‘‘‘#修改语句‘‘‘update mjz set name="小红" where id =1;‘‘‘#删除语句‘‘‘delete from mjz where id=3;‘‘‘cur.execute(sql)#执行sql语句conn.commit()#insert,update,delete,需要加这个语句才能同步到数据库one = cur.fetchone()#fetchone()函数它的返回值是单个的元组,也就是一行记录,如果没有结果,那就会返回Nonemany = cur.fetchmany()#获取指定数量结果fetmany(x)all = cur.fetchall()#fetchall()函数,它的返回值是多个元组,即返回多个行记录,如果没有结果,返回的是()cur.close()#关游标conn.close()#关连接print(one)print(many)print(all)

python --递归--匿名函数--枚举--xlwt模块--redis--mysql--加密解密

 知识点五、redis 操作

1、字符串操作

import redis#关系型数据库#mysql  oracle sqlserver、sqlite#非关系型数据库  NoSQL#   mongodb#   redis 每秒钟达到10w次的读写,存在内存里面r = redis.Redis(host=‘118.24.*.*‘,password=‘H***‘,port=6379,db=0,decode_responses=True)#字符串r.set(‘mjz_students‘,‘{"msg":"sdfsdfsd"}‘)info = r.get(‘mjz_students‘)print(info)r.expire(‘dabaobao‘,30)#设置失效时间r.delete(‘mjz_students‘)#删除r.set(‘mjz_students‘,‘{"msg":"sdfsdfsd"}‘)

2、哈希类型

r.hset("students",‘wyj‘,‘{"money":500,"addr":"北京"}‘)r.hset("students",‘cj‘,‘{"money":500,"addr":"上海"}‘)r.hset("students",‘dcg‘,‘{"money":502,"addr":"北京"}‘)r.hset("students",‘wn‘,‘{"money":502,"addr":"北京"}‘)r.hset("students",‘wyj‘,‘{"money":502,"addr":"北京"}‘)## # r.hdel("students",‘wyj‘)#删除# # print(r.hget("students","wn"))# # print(r.hgetall(‘students‘)) #获取所有的## d = {‘qxh‘:‘sfdsdfsf‘,‘liuying‘:‘liy001‘}# r.hmset(‘students‘,d)

python --递归--匿名函数--枚举--xlwt模块--redis--mysql--加密解密

#r.flushall() #清空所有数据库的所有内容#r.flushdb() #清空当前数据库里面的数据#r.exists(‘name‘) #判断key是否存在# r.keys() #获取当前数据库所有的key# r.type(‘name‘) #获取的key的类型redis迁移
#1、从aredis里面获取所有的key,#2、判断key的类型#3、根据key的类型,使用set /hset#4、set到bredis里面import timeimport redisr = redis.Redis(host=‘118.24.3.4**‘,password=‘*****‘,port=6379,db=0,decode_responses=True)r2 = redis.Redis(host=‘118.24***‘,password=‘*****‘,port=6378,db=0,decode_responses=True)for k in r.keys():    if r.type(k)==‘string‘:        value = r.get(k)        r2.set(k,value)    if r.type(k)==‘hash‘:        value = r.hgetall(k)        r2.hmset(k,value)#3、管道
l = range(500)start_time = time.time()pipeline = r.pipeline() #建立一个管道for i in l:    pipeline.set("key%s"%i,str(i))    # r.set("key%s"%i,str(i))pipeline.execute() #执行管道print(time.time() - start_time)知识点六、加密解密1、md5:加密不可逆,可以加密,不能解密
import hashlibs=‘123456‘m = hashlib.md5( s.encode())#md5加密#m = hashlib.sha224( s.encode() )#加密长度为224result = m.hexdigest() #获取加密后的结果print(result)

python --递归--匿名函数--枚举--xlwt模块--redis--mysql--加密解密

# #撞库 #加盐:增加密码复杂度
import hashlib
salt=‘#@#@$‘password = input(‘password:‘)password += saltm = hashlib.md5( password.encode() )result = m.hexdigest() #获取加密后的结果print(result)

python --递归--匿名函数--枚举--xlwt模块--redis--mysql--加密解密

 #加盐函数

 import hashlib

def md5(s,salt=‘‘):    new_s = str(s) + salt    m = hashlib.md5(new_s.encode())    return m.hexdigest()result = md5("67888")print(result)

python --递归--匿名函数--枚举--xlwt模块--redis--mysql--加密解密

 base64加密,可以解密

import base64 #能加密,也能解密s=‘https://www.cnblogs.com/zanjiahaoge666/p/7242642.html‘b = base64.b64encode( s.encode() ) #加密result= b.decode()print(result)

python --递归--匿名函数--枚举--xlwt模块--redis--mysql--加密解密

 import base64

b = base64.b64decode( ‘5ZOI5ZOI5ZOI5ZOI‘ ) #解密print(b.decode())

python --递归--匿名函数--枚举--xlwt模块--redis--mysql--加密解密

相关推荐