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

知识点一、递归

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

知识点二、匿名函数

#匿名函数#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)

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

知识点三、excel文件

1、写文件

1、1简单写入字符串

import xlwtimport xlutils

book = 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‘)

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)

知识点五、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)

#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 time

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

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

#加盐函数

 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)

base64加密,可以解密

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

 import base64

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

原文地址:https://www.cnblogs.com/luoxinmoli/p/11745374.html

时间: 2024-08-26 02:28:53

python --递归--匿名函数--枚举--xlwt模块--redis--mysql--加密解密的相关文章

python基础——匿名函数及递归函数

python基础--匿名函数及递归函数 1 匿名函数语法 匿名函数lambda x: x * x实际上就是: def f(x): return x * x 关键字lambda表示匿名函数,冒号前面的x表示函数参数. 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果. 2 匿名函数举例 用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突.此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数: >>> f = lam

小学生都能学会的python(<lamda匿名函数,sorted(),filter(),map(),递归函数>)

小学生都能学会的python(<<lamda匿名函数,sorted(),filter(),map(),递归函数,二分法>> 1. lambda 匿名函数 lambda 参数: 返回值 注意: 1. 函数的参数可以有多个. 多个参数之间?逗号隔开2. 匿名函数不管多复杂. 只能写??, 且逻辑结束后直接返回数据3. 返回值和正常的函数?样, 可以是任意数据类型 # def fang(x): # return x**2 # # # ret = fang(5) # # print(ret

python 之匿名函数

当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便. 在Python中,对匿名函数提供了有限支持.还是以map()函数为例,计算f(x)=x2时,除了定义一个f(x)的函数外,还可以直接传入匿名函数: >>> list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])) [1, 4, 9, 16, 25, 36, 49, 64, 81] 通过对比可以看出,匿名函数lambda x: x * x实际上就是: def

python进阶一(函数式编程)【2-7 python中匿名函数】

python中匿名函数 高阶函数可以接收函数做参数,有些时候,我们不需要显式地定义函数,直接传入匿名函数更方便. 在Python中,对匿名函数提供了有限支持.还是以map()函数为例,计算 f(x)=x2 时,除了定义一个f(x)的函数外,还可以直接传入匿名函数: 1 >>> map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])#lambda x 就是定义的一个函数, x * x就是直接传入的函数 2 [1, 4, 9, 16, 25, 36

【Python 生成器 匿名函数 递归 模块及包的导入 正则re】

一.生成器 1.定义 生成器(generator)是一个特殊的迭代器,它的实现更简单优雅,yield是生成器实现__next__()方法的关键.它作为生成器执行的暂停恢复点,可以对yield表达式进行赋值,也可以将yield表达式的值返回. 也就是说,yield是一个语法糖,内部实现支持了迭代器协议,同时yield内部是一个状态机,维护着挂起和继续的状态. yield的功能: 1.相当于为函数封装好__iter__和__next__ 2.return只能返回一次值,函数就终止了,而yield能返

python基础-匿名函数、内置函数、正则表达式、模块

1. 匿名函数 1.1 有名函数 有名函数:定义了一个函数名,函数名指向内存地址:通过函数名进行访问.函数名加括号就可以运行有名函数,例如:func() def func(x, y, z = 1): return x + y + z print(func(1,5,2)) 1.2 匿名函数 匿名函数:没有名字的函数,定义的时候不需要函数名:定义匿名函数的关键字是:lambda 特点: 1.没有函数名 2.函数自带return 应用场景: 1.应用于一次性的地方 2.临时使用 salaries={

【Python之匿名函数及递归】

一.匿名函数及内置函数补充 1.语法 Python使用lambda关键字创造匿名函数.所谓匿名,意即不再使用def语句这样标准的形式定义一个函数. 语法: lambda [arg1[, arg2, ... argN]]: expression 例: 普通函数 def func(x,y): return x+y print(func) print(func(1,2)) 输出 <function func at 0x102b31f28> 3 等价的匿名函数 #匿名函数 f=lambda x,y:x

Python lambda匿名函数,递归应用

import os '''Lambda函数能接收任何数量的参数但只能返回一个表达式的值匿名函数不能直接调用print,因为lambda需要一个表达式'''sum = lambda x, y: x + yprint('x+y=', sum(2, 6)) '''匿名函数应用''' def test_nm(a, b, func):result = func(a, b)return result print(test_nm(20, 30, lambda x, y: x * y))print(test_n

函数递归+匿名函数+内置函数day15

一.函数递归 什么是函数递归: 函数递归调用是一种特殊的嵌套调用,在调用一个函数的过程中,又直接或间接地调用了该函数本身. 其中,函数的递归有明确的结束条件,不能无限制的调用,否则会撑破内存,在Python中限定递归最多调用1000层. 1000层这个值是大概的数值,这个数值可以通过Python内置的功能进行更改. 递归必须要有两个明确的阶段: 递推:一层层递归调用下去,强调每次进入下一次递归,问题规模都在减小 回溯:递归必须要有一个明确的结束条件,在满足该条件时结束递推,开始一层层回溯 其中,