25道题目
- MyISAM 与 InnoDB 区别
- 统计字符串中某字符出现次数
- 字符串转化大小写
- 两种方法去空格
- 正则匹配不是以 4 和 7 结尾的手机号
- python 引用计数机制
- int(“1.4”),int(1.4)输出结果
- PEP8 编码规范
- 正则表达式匹配第一个 URL
- 正则匹配中文
- 乐观锁和悲观锁
- r、r+、rb、rb+文件打开模式区别
- Linux 命令重定向 > 和 >>
- 正则表达式匹配网页内容
- python 传参数是传值还是传址
- 两个列表的交集、差集、并集
- 生成 0-100 的随机数
- lambda 匿名函数
- 网络传输协议
- 单引号、双引号、三引号用法
- python 垃圾回收机制
- HTTP 请求中 get 和 post 区别
- python 中读取 Excel 文件的方法
- 多线程、多进程
- 正则中 search 和 match
MyISAM 与 InnoDB 区别
InnoDB 支持事务,MyISAM 不支持
MyISAM 适合查询以及插入为主的应用,InnoDB 适合频繁修改以及涉及到
安全性较高的应用
InnoDB 支持外键,MyISAM 不支持
自增长的字段,InnoDB 中必须包含只有该字段的索引,但是在 MyISAM表中可以和其他字段一起建立联合索引
清空整个表时,InnoDB 是一行一行的删除,效率非常慢。MyISAM 则会重
建表
统计字符串中某字符出现次数
‘abcabc’.count(‘a’)
字符串转化大小写
‘a’.upper()
‘A’.lower()
两种方法去空格
‘’.replace(’ ‘,’’)
‘’.jion(’’.split(’ '))
正则匹配不是以 4 和 7 结尾的手机号
1(3[0-9]|5[0-3,5-9]|7[1-3,5-8]|8[0-9])\d{7}$[0-3,5-6,8-9]
python 引用计数机制
python 垃圾回收主要以引用计数为主,标记-清除和分代清除为辅的机制,其中标记-清除和分代回收主要是为了处理循环引用的难题。
引用计数算法:变量保存引用计数加 1,删除变量,计数减1,当计数为0,删除变量。
int(“1.4”),int(1.4)输出结果
int(“1.4”)报错,int(1.4)=1
PEP8 编码规范
1、顶级定义之间空两行,比如函数或者类定义。
2、方法定义、类定义与第一个方法之间,都应该空一行
3、三引号进行注释
4、使用 Pycharm、Eclipse 一般使用 4 个空格来缩进代码
正则表达式匹配第一个 URL
re.findall(r"https://.?.jpg", s)[0]
re.search(r"https://.?.jpg", s).group()
正则匹配中文
r’[\u4e00-\u9fa5]+’
乐观锁和悲观锁
悲观锁,:拿数据会修改,拿数据前都会上锁
乐观锁:拿数据不会修改,拿数据前不会上锁
r、r+、rb、rb+文件打开模式区别
r:以只读方式打开文件,+:打开一个文件进行更新(可读可写),b:二进制模式。
二进制文件一般指非文本。
组合起来
r:以只读方式打开文件。文件的指针将会放在文件的开头。
r+:打开一个文件用于读写。文件指针将会放在文件的开头。
rb:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。
rb+:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
Linux 命令重定向 > 和 >>
> 表示输出,会覆盖文件原有的内容
>> 表示追加,会将内容追加到已有文件的末尾
正则表达式匹配网页内容
网页内容
r"<(\w*)><(\w*)>.*?python 传参数是传值还是传址
函数传参为传地址
两个列表的交集、差集、并集
a交b:list(set(a).intersection(set(b)))
a-b:list(set(b).difference(set(a)))
a并b:list(set(a).union(set(b)))
生成 0-100 的随机数
小数:100*random.random()
整数:random.randint(100)
lambda 匿名函数
省略了用 def 声明函数的lambda 函数
网络传输协议
UDP:User Datagram Protocol,用户数据报协议
TCP:Transmission Control Protocol 传输控制协议
FTP:文件传输协议
HTTP:超文本传输协议
SMTP:简单邮件传输协议
单引号、双引号、三引号用法
单引号和双引号没有什么区别,不过单引号不用按 shift,打字稍微快一点。
表示字符串的时候,单引号里面可以用双引号,而不用转义字符,反之亦然。
但是如果直接用单引号扩住单引号,则需要转义
三引号可以直接书写多行,通常用于大段,大篇幅的字符串
python 垃圾回收机制
引用计数:变量保存引用计数加 1,删除变量,计数减1,当计数为0,删除变量内存占用。
标记清除:基于追踪(Tracing)回收技术实现的垃圾回收算法
对象之间通过引用(指针)连在一起,构成一个有向图,对象构成这个有向图的节点,而引
用关系构成这个有向图的边。从根对象(root object)出发,沿着有向边遍历对象,可达的
对象标记为有用的对象,不可达的对象就是要被清除的对象。所谓根对象就是一些全局引用
对象和函数栈中的引用,这些引用所引用的对象是不可被删除的。
HTTP 请求中 get 和 post 区别
GET 请求是通过 URL 直接请求数据,提交有数据大小的限制,因为数据参数是暴露在 URL 中的。
POST 请求是放在请求头中的,是没有设置限制的,但是实际上浏览器也有默认值,请求参数信息是放在请求头的,所以安全性较高。
python 中读取 Excel 文件的方法
from xlrd import xldate_as_tuple
table=xlrd.open_workbook(r’地址’).sheets()[0]
dict={‘列名’:’’}
dict[‘列名’]=table.cell_value(rown,0)
[]…append(dict)
多线程、多进程
多进程和多线程编程,可以同时处理多个任务,充分使用 CPU 性能,节约
时间等。
进程,是系统进行资源分配和调度的基本单位,是操作系统结构的基础
线程,有时被称为轻量级进程,是程序执行流的最小单元。线程是进程中的一
个实体
进程和线程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线
程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文
正则中 search 和 match
match()函数只检测 RE 是不是在 string 的开始位置匹配, search()会扫描整个 string
查找匹配并返回第一个成功的匹配