Python常见面试题【悟空教程】

1.MySQL 数据库总结 MySQL 可以建多少个数据库,理论上是没有限制的,每一个数据库可以有上亿的对象,但是一般基于硬件要求、效率问题一般不超过64个, 超过64个会对数据处理速度造成影响,每一张表建议不超过过1亿条数据。

2.Python 话题 1.最受欢迎的Python开源框架 1:Django 2:Twisted 3:Tornado 除了以上三种常用的开源框架外 还有 : Diesel、Flask、Cubes、Kartograph、Pulsar、Web2py、Falcon、DPark、Buildbot、Zerorpc、Bottle、webpy、Scrapy

3.python常用的web框架

1:Django 2:Tornado 3:Bottle 4:web.py 5:web2py 6:Quixote(豆瓣网就是基于该框架开发的)

4.python几种流行框架的比较 https://zhidao.baidu.com/question/1047367767941211939.html 国内著名网基于Python开发的 豆瓣、知乎、美团、咕咚网、快玩游戏。

5.Python常用的内置模块 multiprocessing (多进程模块) Queue(多线程编程) os (用于获取环境变量、路径,判断文件等) functools(包含一些常用的函数) collection(集合、常用数据结构算法) re(正则匹配,字符的查询替换等操作)

6.python中re模块的match()和search()函数的区别 re模块中match(pattern,string,[flags]),检查string的开头是否与patter匹配 re模块中search(pattern,string,[flags]),在string搜索pattern的第一个配置值

7.python2和python3的区别 Python2中使用 ASCII 码作为默认编码方式导致string有两种类型str和unicode,Python3只支持unicode的string Python2中采用相对路径的import Python3采用的是绝对路径的方式进行import python3的缩进更加的严格 python3采用的是print函数 exec函数 python2采用的是 print语句和exec语句 python2不相等操作符"<>"被Python3废弃,统一使用"!=" long整数类型被Python3废弃,统一使用int Python3中这些方法再不再返回list对象:dictionary关联的keys()、values()、items(),zip(),map(),filter(),但是可以通过list强行转换

8.什么是HTTP协议 http:超文本传输协议,使用的是可靠的数据传输协议,在传输过程中不会被损坏或产生混乱,http可以将服务器各种信息快速可靠的传输到桌面上的浏览器上去 9.什么是web客户端 用于接收web服务器传输信息的终端叫web客户端,比如 IE浏览器 火狐Firefox 谷歌chrome 10.什么是URL URL:统一资源定位符,URL描述了一台特定服务器上某资源的特定位置 URL第一部分 说明了访问资源所使用的协议类型,第二部分表示服务器的inter网址第三部分指定了web服务器上的某个资源

11.web服务请求中常见状态码含义 200 :请求成功,请求的所有数据都在响应主题中 304 客户端发起一个get请求,而资源最近未被修改,则用304说明资源未被修改,带有这个状态码的响应不应该包含实体的主体部分。 305 说明必须通过一个代理来访问资源;代理的位置由location首部给出 403 该请求被服务器拒绝了 404 无法找到所请求的URL 500 服务器遇到了一个阻碍它为请求提供服务的错误 503 服务器此时无法为请求提供服务/

12.HTTP 协议栈 HTTP 应用层协议,它把网关的细节都交给了通用的可靠的因特网传输协议TCP/IP协议 TCP 传输控制协议 无差错的数据传输 按序传输

13.什么是DNS 域名解析服务。将主机名转换为IP地址

在浏览器地址栏输入一个HTTP的URL地址,浏览器怎么通过HTTP显示位于服务器上的一个HTML资源 (1)浏览器首先从URL中解析出服务器的主机名并转换成服务器的IP地址 (2)浏览器将端口号从URL中解析出来,建立一条与web服务器的TCP链接 (3)浏览器向服务器发送一条HTTP请求报文,服务器向浏览器回送一条HTTP响应报文 (4)关闭连接,浏览器显示文档

14.常用的加密算法有对称加密和非对称加密 对称加密:发送方使用密钥将明文加密成密文,接收方则使用相同的密钥将密文还原成明文。常用的对称加密算法有:RSA RC4 DES 非对称加密:发送方使用公钥对数据加密,接收方使用私钥进行解密。常用非对称算法:MD5 HASH

15.Python常用的数据结构和算法模块有:collection heapq operator itertools collection 用法介绍 https://www.cnblogs.com/George1994/p/7204880.html 示例网址 https://blog.csdn.net/guzhenping/article/details/54987308

16.Python之pandas简单介绍及使用(一) Pandas 简单介绍 https://www.cnblogs.com/misswangxing/p/7903595.html pandas该工具是为了解决数据分析任务而创建的,pandas纳入了大量库和一些标准的数据模型,提供了高效的操作大型数据库所需的工具,pandas提供了大量使我们便捷地处理 数据的函数和方法,它使Python成为强大而高效的数据分析环境的重要因素之一,属于python的一个数据分析包。

17.Python如何进行内存管理机制 1.对象的引用计数机制 2.垃圾回收机制 3.内存池机制

18.如何在一个function里面设置一个全局的变量 在function的开始插入一个global声明:

19.python 函数中 *args 和 **kwargs 参数的应用 1.当你不确定函数里要传递多少个参数时可以使用 *args (可以传递任意数量的参数) 2.**kwargs 允许你使用事先没有定义的参数名 20.Python中的作用域 python中当遇到一个变量的话它会按照这样的顺序进行搜索 本地作用域(Local)→当前作用域被嵌入的本地作用域(Enclosing locals)→全局/模块作用域(Global)→内置作用域(Built-in)

21.Python中read,readline,readlines 的作用。 read 读取整个文件 readline 读取下一行,使用生成器的方法 readlines 读取整个文件到一个迭代器以供我们遍历

22.Django中的请求生命周期 django的请求生命周期是指当用户在浏览器输入url到用户看到网页的这个时间段内。大致发生的过程如下: 1.当用户在浏览器中输入url时,浏览器生成请求头和请求体发给服务端(请求头和请求体中会包含浏览器的动作,这个动作通常为get或者post,体现在url中) 2.url进过django中的wsgi,再经过django的中间件,最后url到路由映射表,在路由中一条一条进行匹配,一旦其中一条匹配成功就执行相对应的视图函数。 3.视图函数根据客户端的请求查询相应的数据,返回给django,然后django把客户端想要的数据作为一个字符串返回给客户端。 4.客户端浏览器收到返回的数据,进过渲染后显示给用户。

23.FBV模式和CBV模式 一个url对应一个视图函数,这个模式叫做FBV(Function Base Views) FBV请求过程: 用户发送url请求,django会依次遍历路由映射表中的所有记录,一旦路由映射表其中一条匹配成功,就执行视图函数中对应的函数名。 一个url对应一个类,这个模式叫CBV(Class Base Views) CBV请求过程: 当服务端使用cbv模式的时候,用户发给服务端的请求包含url和method,这两个信息都是字符串类型,服务端通过路由映射表匹配成功后 会自动去找dispatch方法,然后django会通过dispatch反射的方式找到类中对应的方法并执行类中的方法执行完毕之后,会把客户端想要的 数据返回给dispatch方法,由dispatch方法把数据返回给客户端。

24.mongodb Redis mysql mongodb是一个内存数据库,数据都放在内存里面的,对于数据的操作大部分都在内存中,但mongodb并不是单纯的内存数据库 持久化方式: mongodb的所有数据实际上是存放在硬盘的,所有要操作的数据通过mmap的方式映射到某个区域内,然后mongodb就在这块区域里进行数据修改。

Redis Redis是一个内存数据库 Redis中所有数据都放在内存中,持久化使用RDB方式或者aof方式

mysql 无论数据还是索引都存放在硬盘中,到要是用的时候才交换到内存中,能够处理远超内存总量的数据。

当物理内存够用的时候, Redis性能优于mongodb,mongodb优于mysql 当物理内存不够用的时候,Redis和mongodb都会使用虚拟内存 mysql不需要考虑数据量跟内存的关系,不过内存的量和热数据的关系极大地影响性能的表现。(如果当物理内存和虚拟内存都不够用的时候,mysql是最好的选择)

25.mysql常用语句语法 创建表格命令:create table tablename(字段) 增: inser into tablename values(value,values) 删: delete from tablename where <条件> 改: update tablename set 字段=值 (where) 查: select * from tablename where语句

26.MySQL锁机制详解及死锁处理方式 MySQL有三种锁的级别:页级、表级、行级

所谓死锁<DeadLock>: 是指两个或两个以上的进程在执行过程中, 因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去. 此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等竺的进程称为死锁进程. 表级锁不会产生死锁.所以解决死锁主要还是真对于最常用的InnoDB. 遇到死锁的处理方式

27.Django中查询queryset时什么情况下使用Q ? 在进行相对复杂的查询时,使用 django.db.models.Q Django中想验证表单提交是否格式正确要用到Form中哪个函数? is_valid()

28.Python里面如何拷贝一个对象 1.浅拷贝: 使用copy.copy,它可以进行对象的浅拷贝,它复制了对象,但对于对象中的元素,依然使用引用(换句话修改拷贝对象的元素,则被拷贝对象的元素也会被修改) 2.深拷贝: 使用copy.deepcopy,它可以进行深拷贝,不仅拷贝了对象,同时也拷贝了对象中的元素,获得了全新的对象,与被拷贝对象完全独立, 但这需要牺牲一定的时间和空间。 29.Session和Cookie的区别与联系 https://www.cnblogs.com/endlessdream/p/4699273.html Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。 可以考虑将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。 Cookie分为会话cookie和持久cookie 若不设置过期时间,则表示这个cookie的生命周期为浏览器的会话周期,关闭浏览器窗口,cookie就消失,这种生命周期为浏览器会话期的cookie 被称为会话cookie,会话cookie一般不存在硬盘上而是保存在内存里。 若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效指导超过设定的时间,存储到硬盘的cookie被称为持久cookie Cookie具有不可跨域性,两个不同浏览器的cookie不通用。 Session是另一种记录客户状态的机制,不同的是cookie保存在客户端浏览武器中,而session保存在服务器上,当客户端浏览器访问服务器的时候,服务器把客户端 的信息以某种形式保存在服务器上,这就是session,当客户端浏览器再次访问浏览器的时候只需要从该session中查找该客户的状态就可以了。

30.Numpy提供N维数组,一种快速高效的内存多维数组,它提供矢量化数学运算。 Scipy库依赖于NumPy,提供便捷和快速的N维向量数组操作。scipy库的建立就是和NumPy数组一起工作,并提供许多用户友好和有效的数值例程。 Pandas包含高级数据结构,以及和让数据分析变得快速、简单,它是建立在Numpy之上的 Matplotlib 是python的一个可视化模块。可以方便的制作线条图,饼图,柱状图以及其它专业图形

原文发布于微信公众号 - Java帮帮(javahelp)

原文发表时间:2018-08-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏C/C++基础

Linux命令(9)——tcpdump命令

tcpdump是一款类Unix/Linux环境下的抓包工具,允许用户截获和显示发送或收到的网络数据包。tcpdump 是一个在BSD许可证下发布的自由软件。

1403
来自专栏算法修养

服务器推技术研究Comet

服务器推技术 最近参与的一个关于股票的项目,有这样一个需求。服务器需要主动推送给客户端消息。这和传统的Web模式不同。传统的Web系统,客户端和服务器的交互是这...

3448
来自专栏Java架构

前沪江高级架构师学习笔记分享:分布式框架设计与实现

2046
来自专栏Golang语言社区

goroutine背后的系统知识

Go语言从诞生到普及已经三年了,先行者大都是Web开发的背景,也有了一些普及型的书籍,可系统开发背景的人在学习这些书籍的时候,总有语焉不详的感觉,网上也有若干流...

3514
来自专栏Golang语言社区

goroutine背后的系统知识

Go语言从诞生到普及已经三年了,先行者大都是Web开发的背景,也有了一些普及型的书籍,可系统开发背景的人在学习这些书籍的时候,总有语焉不详的感觉,网上也有若干...

3518
来自专栏后台全栈之路

基于汇编的 C/C++ 协程 - 实现

将 libco 和 libevent 两者的功能糅合起来,所以我把我的工程,命名为 libcoevent,意为 “基于 libevent 的同步协程服务器编程框...

5793
来自专栏JavaEdge

大道缓存1 缓存特征2 缓存介质3 缓存分类和应用场景缓存实战

用户请求从界面(浏览器/App)到网络转发、应用服务再到存储(数据库或文件系统),然后返回到界面呈现内容。

1211
来自专栏蓝天

Linux下共享库(SO)有关的几个环境变量

Linux支持共享库已经有悠久的历史了,不再是什么新概念了。大家都知道如何编译、连接以及动态加载(dlopen/dlsym/dlclose) 共享库。但是,...

1561
来自专栏代码世界

Python之进程

进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机...

6537
来自专栏程序员互动联盟

【专业技术】linux下socket编程

1. 网络中进程之间如何通信 进程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作...

3326

扫码关注云+社区

领取腾讯云代金券