中国移动云计算中心苏小研python开发工程师面经汇总

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

苏小研面试:一面(专业面)+二面(HR面)+三面(领导面)苏小研考试:机考(行测+性格测试)注:我参加的是2019秋招,三场面试连续面试。一面:1、xrange与range区别:Xrange:list对象;一上来开辟一块很大的内存;Range:一个生成器;每次调用返回其中的一个值;内存效率更高;要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间。2、如何创建一个字典变量:添加键-值对修改键值对删除键值对遍历字典:(注意:返回值与存储顺序不同)forkey,valueinemployers.items():#遍历所有键-值对print(key)print(value)forkeyinemployers.keys():#遍历所有键print(key)forvalueinemployers.values():#遍历所有值print(value)3、手撕代码:如何统计一堆数据中每个数据出现的频率?(用字典数据结构能减少算法复杂度)略4、直播协议:RTMP协议(RealTimeMessagingProtocol)实时消息传输协议。是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。他有多种变种:1.RTMP工作在TCP之上,默认使用端口1935;2.RTMPE在RTMP的基础上增加了加密功能;3.RTMPT封装在HTTP请求之上,可穿透防火墙;4.RTMPS类似RTMPT,增加了TLS/SSL的安全功能;5、session和cookie技术区别???Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。Cookie:HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。Cookie就是这样的一种机制。它可以弥补HTTP协议无状态的不足。给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。Cookie功能需要浏览器的支持。记录用户访问次数。Cookie的不可跨域名性。HTTP协议不仅是无状态的,而且是不安全的。使用HTTP协议的数据不经过任何加密就直接在网络上传播,有被截获的可能。使用HTTP协议传输很机密的内容是一种隐患。如果不希望Cookie在HTTP等非安全协议中传输,可以设置Cookie的secure属性为true。浏览器只会在HTTPS和SSL等安全协议中传输此类Cookie。Session:Session是服务器端使用的一种记录客户端状态的机制,使用上比Cookie简单一些,相应的也增加了服务器的存储压力如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。两者的区别1、cookie数据存放在客户端,session数据放在服务器上。2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。3、session会在一定时间内保存在服务器上,当访问增多,会比较占用你服务器的性能,考虑性能应当使用cookie。4、不同浏览器对cookie的数据大小限制不同,个数限制也不相同。5、可以考虑将登陆信息等重要信息存放为session,不重要的信息可以放在cookie中。两者的联系1、都是用来记录用户的信息,以便让服务器分辨不同的用户。2、可以搭配使用,但都有自己的使用局限,要考虑到安全和性能的问题6、IOS七层作用应用层:所有能产生网络流量的程序表示层:数据的表示格式。比如数据的表示格式、数据的加密与解密和数据压缩格式等。会话层:会话层的作用是开启、关闭两个主机之间的连接,管理主机之间的连接等。该层的作用就是控制主机之间连接状态的,包括通信方式等。比如在QQ中,开启一个视频通话就相当于开启了一个会话。会话层更多的是在RPC中进行使用的。传输层:该层定义了数据的传输协议。像数据到达的顺序、校验是否真正到达等,是需要运输层来实现的。网络层:路由转发,负责不同网络之间转发数据包,根据IP协议,决定数据最终到哪里去(TCP协议和UDP协议。)数据链路层:对物理层的数据进行校验处理等,同时通过MAC地址,在不同的网络设备之间进行通信。(ARP、IP、ICMP)物理层:发送的是01比特位,传输的是二进制数据流。TCP/IP协议采用4层结构,分别是应用层、传输层、网络层和链路层,每一层都呼叫它的下一层所提供的协议来完成自己的需求。ppp:是一个在数据链路层的协议。名字叫点对点协议。用户拨号上网,互联网运营商对ppp给些参数,然后配置网络层,这样就可以有临时ip进行上网,在结束时候,由ppp里的一个协议释放链接。ARP协议的作用:主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。(问住我了)7、http与https的区别:1)、http是超文本传输协议,信息是明文传输,不安全;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。2)、http和https使用的是完全不同的连接方式,端口也不一样,前者是80,后者是443。8、进程和线程:进程资源分配的基本单位;占用内存多;共享复杂;cpu利用率低;进程之间不会互相影响;(进程拥有各自独立的地址空间)(计算密集型操作)线程操作系统能够进行运算调度的最小单位;占用内存少;共享简单cpu利用率高;线程之间互相影响;(共享所属进程的资源)(IO密集型)9、查询进程信息:ps–rf/-aux|grep1692310、写几句mysql语句,我写的最基本的增删改查?表操作创:(auto_increment表示自动增长)createtablestudents(idintauto_incrementprimarykey,snamevarchar(10)notnull,sexvarchar(10)notnull,join_timedatatimenotnull);改:altertablestudentsaddbirthdaydatetime;删:droptable表名;数据操作:增:insertintostudentvalues(1,’桑倩’,’女’,now())删:deletefromstudentswheresex=‘男’;改:updatestudentssex=‘男’wheresname=’张三’;查:select*fromstudentswhereid3;排:select*from表名orderby列1asc|desc,列2asc|desc,.聚合函数:selectmax(id)fromstudentswheregender=0;检索出员工工资最高的员工姓名和工资select*fromuserwhereemployee_salary=(selectmax(employee_salary)fromuser);(为什么不是EMPLOYEES)11、正则表达式?从文本搜索字符串、字符串替换正则表达式是用匹配或者描述字符串的工具。用处:a.判断字符串是否满足某个条件---判断输入的字符串是否是邮箱/手机号码。是否是ip地址b.提取满足条件的字符串c.字符串替换grep、sed、find等linux命令要会。12、Python导包顺序以及机制?1.python首先会去寻找内置(built_in)的包(.py所在文件的目录)2.然后按照PYTHONPATH环境变量中指定的路径,按顺序搜索。3.再就是按照能被python解释器识别到的.pth文件中指定的路径去搜索。对于后面两点,可以通过sys.path来一起查看(解释器在启动时会通过site.py创建sys.path)13、在浏览器输入网址发生了什么详细过程浏览器查找域名的IP地址(域名就是指输入的网址)浏览器缓存–浏览器会缓存DNS记录一段时间。有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分钟到30分钟不等)。路由器缓存–接着,前面的查询请求发向路由器,它一般会有自己的DNS缓存。ISPDNS缓存–接下来要check的就是ISP缓存DNS的服务器。在这一般都能找到相应的缓存记录。递归搜索–你的ISP的DNS服务器从跟域名服务器开始进行递归搜索,从.com顶级域名服务器到Facebook的域名服务器。一般DNS服务器的缓存中会有.com域名服务器中的域名。14、lambda作为一个表达式,定义了一个匿名函数;使用lambda函数能够创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤;例:f=lambdax,y:x+y#求两个函数的和。x,y是参数,x+y是函数返回值foo=[2,18,9,22,17,24,8,12,27]print(list(map(lambdax:x*2+10,foo)))#[14,46,28,54,44,58,26,34,64]15、浏览器如何访问网页?ip路由如何访问内网?(源地址、目的地址,MAC地址不变)网关:每个计算机都要配网关,网关就是决定从一个网段到另一个网段给谁?网站里的网页如何到客户端的?16、Python中的内置数据结构:列表list、元组tuple、字典dict、集合set,涵盖的仅有部Python的可变数据类型:列表list、字典dict、集合setPython的不可变数据类型:元组Tuple,一经初始化,就不能修改,只能对元素进行查询。因为tuple不可变,所以代码更安全。(数据类型:python3中有六个标准的数据类型:number(数字型:int、float、bool)、string(字符串型)、list(列表)、type(元祖)、dictionary(字典)、set(集合)什么可变数据类型和不可变数据类型:可变数据类型:value值改变,id值不变;不可变数据类型:value值改变,id值也随之改变。可变类型:list、dict、set()不可变类型:数值型、str、tuple)17、python是怎么进行内存管理的?1)引用计数:python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,即引用计数,当对象被创建时就创建了一个引用计数,当对象不再需要时,这个对象的引用计数为0时,它被垃圾回收。2)垃圾回收:当内存中有不再使用的部分时,垃圾收集器就会把他们清理掉。3)内存池机制:用于管理对小块内存的申请和释放。18、python中如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别)浅拷贝:copy模块的copy()函数深拷贝:copy模块的deep.deepcopy()函数19、请写一段脚本,查找/data/test目录下3天前的文件,从中挑选出大小超过10M的删除掉。#!/bin/shfind/data/test-mtime+3-size+10M-execrm{}\20、描述数组、链表、队列、堆栈的区别?数组与链表是数据存储方式的概念,数组在连续的空间中存储数据,而链表可以在非连续的空间中存储数据;队列和堆栈是描述数据存取方式的概念,队列是先进先出,而堆栈是后进先出;队列和堆栈可以用数组来实现,也可以用链表实现。21、post()与get()22、什么是函数装饰器???(好多人被问了)1)装饰器:本质是一个函数,用来装饰别的函数,给其他函数附加新的功能。2)多个装饰器:3)带参数的被装饰参数:

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功