8highlights for day 13 of Python

本文探讨了缓存的三种实现方式,包括基于内存、普通文件及Redis数据库的缓存,解析了同步与异步的区别,以及数据分页查询的两种方法。同时,深入讨论了eval函数的安全风险与改进方案,正则表达式的多种应用方法,以及vthread库在多线程编程中的高效运用。

1.实现缓存的三种方式

基于内存缓存

基于普通文件缓存

基于redis缓存数据库的缓存

2.为什么缓存?
高性能、高并发。

3.同步异步的区别
同步:顺序执行,如果上一步没执行完则一直等待(阻塞)
异步:无序执行,不需要等待上一步就可以执行下一步

4.实现对数据分页查询的两种方式

可以使用sql中的limit来实现

可以使用切片来实现,但是查询比较慢,不推荐

5.eval是什么?有什么缺点?怎么改进?
eval() 函数用来执行一个字符串表达式,并返回表达式的值

eval虽然方便,但是要注意安全性,可以将字符串转成表达式并执行,就可以利用执行系统命令,删除文件等操作。

6.正则表达式的常用方法有哪些

test() exec() match() replace()

test()

验证字符串是否和正则相匹配

用法:regexp.test(string)

结果:若匹配返回true,若不匹配返回false

exec()

将字符串中匹配的内容捕获出来,只会捕获一次

用法:regexp.exec(string)

返回值:是一个数组,若无分组则数组里的内容包含三项,分别是匹配的内容、匹配内容的起始索引、原字符串

exec()处理分组

返回值:

第一项是匹配的内容

第二项开始是分组(括号里匹配)的内容,有几个分组就有几项

倒数第二项是匹配内容的起始索引

倒数第一项是原字符串

注意:若不需要捕获分布的内容,则在不需要捕获分组的里面加上原字符 ?:(匹配不捕获)

match()

将字符串中匹配的内容捕获出来

若加上量词g则一次性捕获所有匹配的内容放到数组里返回,若不加则与exec()的返回值一样

用法:string.match(regexp)

replace()

将字符串中匹配的内容捕获出来

用法:string.replace(值类型 | regexp, 值类型 | 回调函数)

该方法不改变原有字符串
7.正则表达式的常用符号有哪些
在这里插入图片描述

8.vthread是干什么用的
python 多线程函数库 vthread ,简而强大
更加方便的多线程库,以最小的代码侵入,做到最高效的多线程、线程池 coding 效率。在不改变源代码的情况下,一行代码即可实现线程池操作。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值