目录
-
- 1、Redis中默认有多少个哈希槽
- 2、实例变量和类变量的区别
- 3、解释一下Python中的身份运算符
- 4、yield from 和 yield 的区别
- 5、py2项目如何迁移成py3
- 6、生产者消费者模型的应用场景
- 7、简述数据库的读写分离
- 8、解释//、%、* *运算符?
- 9、什么是轮询和长轮询
- 10、如果Redis中的某个列表中的数据量非常大,如何实现循环显示每一个值?
- 11、Python的局限性?
- 12、区分Python中的remove,del和pop?
- 13、什么是ajax请求?手写一个ajax请求
- 14、什么是覆盖索引
- 15、简述多进程开发中join和deamon的区别
- 16、在Python中有多少种运算符?解释一下算数运算符。
- 17、python3和python2中int和long的区别
- 18、什么是抽象?
- 19、将列表alist=[{'name':'a','age':25},{'name':'b','age':30},{'name':'c','age':20}],按照age的值从大到小排列。
- 20、解释一下Python中的继承
- 21、break、continue、pass是什么?
- 22、ascii、Unicode、utf-8、gbk的区别
- 23、如何在Python中管理内存?
- 24、Python中的Map Function是什么?
- 25、如何保证Redis中的数据都是热点数据
- 26、当退出Python时,是否释放全部内存?
- 27、select、poll、epoll模型的区别
- 28、什么是C/S和B/S架构
- 29、列举Redis支持的过期策略
- 30、输入某年某月某日,判断这是这一年的第几天?
- 31、什么是Twemproxy
- 32、写出如下代码的输出结果
- 33、如何使用python删除一个文件或者文件夹?
- 34、为什么学python
- 35、如何修改本地hosts文件
- 36、编写程序,查找文本文件中最长的单词
- 37、用一行代码实现数值交换
- 38、数据库的导入与导出命令
- 39、Redis中watch的作用
- 40、MySQL常见数据库引擎及区别
- 41、使用python将数据库的student表中的数据写入db.txt
- 42、了解过Hbase,DB2,SQLServer,Access吗
- 43、解释一下Python中的继承?
- 44、什么是并发和并行
- 45、json序列化时可以处理的数据类型有哪些?如何定制支持datetime类型?序列化时,遇到中文转成unicode,如何保持中文形式?
- 46、二叉树是非线性结构,栈和队列以及线性表都是线性结构,对吗?
- 47、如何以就地操作方式打乱一个列表的元素?
- 48、对列表[3,1,-4,-2]按照绝对值排序
- 49、Python中的字典是什么?
- 50、类和对象有什么区别?
- 51、什么是Python中的猴子补丁?
- 52、实现99乘法表(使用两种方法)
- 53、什么是负索引?
- 54、实现一个装饰器,通过一次调用,使函数重复执行5次
- 55、如何高效的找到Redis中所有以felix开头的key
- 56、列表中保留顺序和不保留顺序去重
- 57、python的底层网络交互模块有哪些
- 58、一个大小为100G的文件etl_log.txt,要读取文件的内容,写出具体过程代码
- 59、axios的作用
- 60、解释一下Python中的//,%和 ** 运算符
- 61、简述生成器,迭代器,装饰器以及应用场景
- 62、比较:a=[1,2,3]和b=[(1),(2),(3)]以及c=[(1,),(2,),(3,)]的区别
- 63、什么是c3算法?
- 64、字节码和机器码的区别
- 65、MySQL执行计划的作用和使用方法
- 66、简述left join和right join的区别
- 67、什么是LVS
- 69、python中enumerate的意思是什么?
- 70、常用字符串格式化有哪几种?
- 71、列举字符串、列表、元组、字典每个常用的5个方法
- 72、如何更改列表的数据类型?
- 73、什么是一致性哈希
- 74、曾经使用过哪些前端框架
- 75、简述OSI七层协议
- 76、python递归的最大层数?
- 77、如何用一行代码生成[1,4,9,16,25,36,49,64,81,100]?
- 78、query作为sql模板,args为将要传入的参数
- 79、使用with语句的好处是什么
- 80、什么是lambda函数?
- 81、解释一下Python中的三元运算子
- 82、什么是Nginx
- 83、!=和is not运算符的区别?
- 84、介绍一下try except的用法和作用?
- 85、公司线上和开发环境使用的什么系统
- 86、什么是keepalived
- 87、如何使用索引来反转Python中的字符串?
- 88、从0-99这100个数中随机取出10个,要求不能重复
- 89、实例方法、静态方法和类方法的区别
- 90、什么是gevent
- 91、python是如何进行内存管理的?python的程序会内存泄漏吗?说说有没有什么方面阻止或者检测内存泄漏?
- 92、请写一个Python逻辑,计算一个文件中的大写字母数量
- 93、获取python解释器版本的方法
- 94、什么是负载均衡
- 95、类的加载和实例化过程
- 96、路由器和交换机的区别
- 97、Python中的生成器是什么?
- 98、索引有什么作用,有哪些分类,有什么好处和坏处?
- 99、1<(22)和1<22的结果分别是什么?
- 100、什么是域名解析
- 结束语
![~~在这里插入图片描述~~](https://img-blog.csdnimg.cn/20210708212026955.gif#pic_center)
1、Redis中默认有多少个哈希槽
1、 2^14个
2、 Redis 集群没有使用一致性hash, 而是引入了哈希槽的概念。
2、实例变量和类变量的区别
1、 实例变量是对于每个实例都独有的数据
2、 类变量是该类所有实例共享的属性和方法
3、解释一下Python中的身份运算符
这也是一个在Python面试中常问的问题。
通过身份运算符‘is’和‘is not’,我们可以确认两个值是否相同。
>>> 10 is '10'
False
>>> True is not False
True
4、yield from 和 yield 的区别
简述yield和yield from
# 下面a()和b()是等价的
def a():
yield from [1,2,3,4,5]
def b():
for i in [1,2,3,4,5]:
yield i
for i in a():
print(i)
for i in b():
print(i)
yield将一个函数变成一个生成器
yield 返回一个值
yield from后面接可迭代对象,一个一个返回值。
5、py2项目如何迁移成py3
1、 先备份原文件,然后使用python3自带工具2to3.py将py2文件转换位py3文件
2、 手动将不兼容的代码改写成兼容py3的代码
6、生产者消费者模型的应用场景
说明
生产者只在仓库未满时进行生产,仓库满时生产者进程被阻塞;消费者只在仓库非空时进行消费,仓库为空时消费者进程被阻塞;
应用场景:处理数据比较消耗时间,线程独占,生产数据不需要即时的反馈等。比如说写入日志,将多线程产生的日志放在队列中,然后写入。
7、简述数据库的读写分离
读写分离就是在主服务器上修改,数据会同步到从服务器,从服务器只能提供读取数据,不能写入,实现备份的同时也实现了数据库性能的优化,以及提升了服务器安全。
8、解释//、%、* *运算符?
//(Floor Division)-这是一个除法运算符,它返回除法的整数部分。
例如:5 // 2 = 2
%(模数)-返回除法的余数。
例如:5 % 2 = 1
**(幂)-它对运算符执行指数计算。a ** b表示a的b次方。
例如:5 ** 2 = 25、5 ** 3 = 125
9、什么是轮询和长轮询
轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客户端的浏览器。
这种传统的HTTP request 的模式带来很明显的缺点 – 浏览器需要不断的向服务器发出请求,然而HTTP request 的header是非常长的,里面包含的有用数据可能只是一个很小的值,这样会占用很多的带宽。
var xhr = new XMLHttpRequest();
setInterval(function() {
xhr.open('GET', '/user');
xhr.onreadystatechange = function() {
};
xhr.send();
}, 1000)
长轮询是ajax实现:在发送ajax后,服务器端会阻塞请求直到有数据传递或超时才返回。 客户端JavaScript响应处理函数会在处理完服务器返回的信息后,再次发出请求,重新建立连接。
function ajax() {
var xhr = new XMLHttpRequest();
xhr.open('GET', '/user');
xhr.onreadystatechange = function() {
ajax();
};
xhr.send();
}
10、如果Redis中的某个列表中的数据量非常大,如何实现循环显示每一个值?
使用生成器一个一个取
11、Python的局限性?
1、 速度
2、 移动开发
3、 内存消耗(与其他语言相比非常高)
4、 两个版本的不兼容(2,3)
5、 运行错误(需要更多测试,并且错误仅在运行时显示)
6、 简单性
12、区分Python中的remove,del和pop?
- remove:将删除列表中的第一个匹配值,它以值作为参数。
- del:使用索引删除元素,它不返回任何值。
- pop:将删除列表中顶部的元素,并返回列表的顶部元素。
numbers = [1,2,3,4,5]
numbers.remove(5)
> [1,2,3,4]
del numbers[0]
>[2,3,4]
numbers.pop()
>4
13、什么是ajax请求?手写一个ajax请求
ajax(异步JavaScript和XML)是指一种创建交付式网页应用的网页开发技术。可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
// 不使用第三方
var xhr = new XMLHttpRequest();
xhr.open("GET", url, false);
xhr.onreadtstatechange = function() {
if (xhr.readystate == 4) {
//响应内容解析完成,可以在客户端调用了
if (xhr.status == 200) {
//客户端的请求成功了
alert(xhr.responseText);
}
}
}
xhr.send(null);
// 使用ajax
$.ajax({
type: "GET",
url: "",
dataType: "json",
success: function(data) {
},
error: function(jqXHR) {
}
});
14、什么是覆盖索引
覆盖索引又可以称为索引覆盖。
1、 解释一: 就是select的数据列只用从索引中就能够取得,不必从数据表中读取,换句话说查询列要被所使用的索引覆盖。
2、 解释二:
索引是高效找到行的一个方法,当能通过检索索引就可以读取想要的数据,那就不需要再到数据表中读取行了。如果一个索引包含了(或覆盖了)满足查询语句中字段与条件的数据就叫做覆盖索引。3、 解释三:
是非聚集组合索引的一种形式,它包括在查询里的Select、Join和Where子句用到的所有列(即建立索引的字段正好是覆盖查询语句[select子句]与查询条件[Where子句]中所涉及的字段,也即,索引包含了查询正在查找的所有数据)。
15、简述多进程开发中join和deamon的区别
1、 join:当子线程调用join时,主线程会被阻塞,当子线程结束后,主线程才能继续执行。
2、 deamon:当子进程被设置为守护进程时,主进程结束,不管子进程是否执行完毕,都会随着主进程的结束而结束。
16、在Python中有多少种运算符?解释一下算数运算符。
在Python中,我们有7种运算符:算术运算符、关系运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符。
我们有7个算术运算符,能让我们对数值进行算术运算:
1、 加号(+),将两个值相加
>>> 7+8
15
2、 减号(-),将第一个值减去第二个值
>>> 7-8
-1
3、 乘号(*),将两个值相乘
>>> 7*8
56
4、 除号(/),用第二个值除以第一个值
>>> 7/8
0.875