1、字符串常用方法? (5个以上)
- find方法可以在一个较长的字符串中查找子串
- join方法是非常重要的字符串方法,他是split方法的逆方法
- split方法,是一个非常重要的字符串,它是join的逆方法
- strip 方法返回去除首位空格
- replace方法返回某字符串所有匹配项均被替换之后得到字符串
2、进程和线程的区别是什么,至少写出三条?
1、进程包含线程
2、线程共享内存空间
3、进程内存是独立的
4、进程可以生成子进程,子进程之间互相不能互相访问
5、线程可以帮助应用程序同时做几件事
3、字典常用方法
- clear:方法清除字典中所有的项
- get:方法是个更宽松的访问字典项的方法
- for:循环字典的三种方法
- update:方法可以利用一个字典项更新另一个字典
4、列举四个常见的魔法方法,并写出他们的执行顺序?
new : 先于__init__方法,每生成一个实例执行一次,new 类方法创建实例对象
init : __init__方法每生成一个实例就会执行一次,初始化实例对象
call : 后与__init__方法,C()() 使用类再加一个括号调用,
del : 析构方法,删除无用的内存对象
5、什么是mysql事务,四大特性和四个隔离界别分别是什么?
事务:
- 事务(Transaction)是数据库区别于文件系统的重要特性之一,事务会把数据库从一种一致性状态转换为另一种一致性状态。
2.在数据库提交时,可以确保要么所有修改都已保存,要么所有修改都不保存。
四大特性:原子性,一致性,隔离性,持久性
四大隔离级别:未提交读(脏读) 提交读(不可重复读) 幻读 可串行读
6、简述常见数据结构,并说明其特点?(非python的基础数据类型)
栈:先进后出的数据集合
队列:先进先出的数据集合
链表:添加删除元素,比列表高效
数组:所谓数组,就是相同数据类型的元素按一定顺序排列的集合
哈希:哈希表(也叫散列表),根据关键值对(Key-value)而直接进行访问的数据结构。
7、python的垃圾回收机制,并简述其原理?
引用计数:当一个对象的引用被创建或者复制时,对象的引用计数加1;当一个对象的引用被销毁时,对象的引用计数减1
标记-清除:第一阶段是标记阶段,GC会把所有的活动对象打上标记,第二阶段是把那些没有标记的对象非活动对象进行回收。
分代回收:分代回收是建立在标记清除技术基础之上的,是一种以空间换时间的操作方式。
8、python中四大高阶函数?并举例说明?
Sorted函数
filter()函数
Map方法
reduce函数
9、简述redis主从同步原理?
- CPA原理是分布式存储理论的基石: C(一致性); A(可用性); P(分区容忍性);
- 当主从网络无法连通时,修改操作无法同步到节点,所以“一致性”无法满足
- 除非我们牺牲“可用性”,也就是暂停分布式节点服务,不再提供修改数据功能,直到网络恢复
一句话概括CAP: 当网络分区发生时,一致性和可用性两难全
10、linux常见命令(10个以上)?
Stop(关闭)
restart(重启)
reboor(重启)
reload(重载)
poweroff(关机)
halt(关机)
cat(在命令提示符下查看文件内容)
more(在命令提示符下查看文件内容)
less(在命令提示符下查看文件内容)
Ls(在命令提示符下查看文件内容)
cp(复制文件或目录)
cd(切换目录)
rm(删除文件)
11、mysql常见的优化方式有哪些,至少写出五条?
- 字段设计优化 适应遵循数据库三范式
- 引擎的选择 适应选择MyIsam & InnoDB
- 索引 索引也会消耗内存空间,并不是越多越好。而且索引的种类都有各自的有点
- 查询缓存 将 select查询结果缓存起来,key 为SQL语句,value 为查询结果
- 分区
- 水平分割和垂直分割
- 集群
- SQL语句
- 服务器的选择 选择配置较高的服务器
12、post和get的区别是什么,至少写出三条?
- 收发数据来说
GET请求一般用去请求获取数据,
POST一般作为发送数据到后台时使用
2、传输数据的参数上
GET 一般放在URL中明文传输
POST 一般放在请求体中传输
3、刷新浏览器或者重复请求上(后退)来说
GET请求刷新浏览器或回退时没有影响
POST回退时会重新提交数据请求
4、数据缓存上来说
GET 请求可被缓存
POST 请求不会被缓存
5、历史记录上来说
GET 请求保留在浏览器历史记录中
POST 请求不会保留在浏览器历史记录中
6、收藏上来说
GET 请求可被收藏为书签
POST 不能被收藏为书签
13、你常用的mysql引擎有哪些?各引擎间有什么区别?
1)InnoDB支持事务,MyISAM不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyISAM就不可以了。
2)MyISAM适合查询以及插入为主的应用,InnoDB适合频繁修改以及涉及到安全性较高的应用
3)InnoDB支持外键,MyISAM不支持
4)从MySQL5.5.5以后,InnoDB是默认引擎
5)InnoDB不支持FULLTEXT类型的索引
6)InnoDB中不保存表的行数,如select count() from table时,InnoDB需要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count()语句包含where条件时MyISAM也需要扫描整个表
7)对于自增长的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中可以和其他字段一起建立联合索引
8)清空整个表时,InnoDB是一行一行的删除,效率非常慢。MyISAM则会重建表
9)InnoDB支持行锁(某些情况下还是锁整表,如 update table set a=1 where user like ‘%lee%’。
14、Python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别)?
赋值,浅拷贝,深拷贝
赋值 =
浅拷贝,没有拷贝子对象,所以原始数据改变,子对象会改变,
深拷贝,包含对象里面的自对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变
15、用Python匹配HTML tag的时候,<.>和<.?>有什么区别?
给定字符串: aabab 的话,
a.*?b匹配最短的,以a开始,以b结束的字符串。它会匹配aab(第一到第三个字符)和ab(第四到第五个字符)
a.*b 匹配最长的, 匹配到 aabab
16、Python都有哪些自带的数据结构?(每个数据结构写出3个对应的方法)
列表:pop,append,sort
字典:get,for,update
17、请写出至少8个python中常见的关键字?
And or not true false return pass if elif else
18、python中pass语句的作用?并举例说明?
占位符,不需要输出任何语句的时候执行函数用pass占位即可
Def func():
Pass
Fucn()
19、简述break和continue的区别和共性?
区别:
break,结束循环,不在进行下一个循环的操作
Continue,结束本次循环,准备进行下一个循环
共性:结束循环
20、linux常见命令(10个以上)?
Stop(关闭)
restart(重启)
reboor(重启)
reload(重载)
poweroff(关机)
halt(关机)
cat(在命令提示符下查看文件内容)
more(在命令提示符下查看文件内容)
less(在命令提示符下查看文件内容)
Ls(在命令提示符下查看文件内容)
cp(复制文件或目录)
cd(切换目录)
rm(删除文件)