2018年秋招运维岗面试常见python和数据结构知识点总结
python中的函数:
def foo(): 定义函数return 1
foo() 调用函数
定义类:
class 类名:def 方法1(self,参数列表):self指哪一个对象调用的方法就是哪一个对象的引用。passdef 方法2(self,参数列表):pass
python捕获异常:
try:执行的代码
except:错误的代码
面向对象和面向过程
面向过程:强调的是步骤。
面向对象:强调的是功能。
封装:根据职责将属性和方法封装到一个抽象的类中。
继承:实现代码的重用
多态:不同的子类调用相同的方法产生不同的结果
python中的闭包:
闭包指根据不同的配置信息得到不同的结果。
id命令:
python中的id命令用来查看内存地址。
python中的装饰器:
为了给某段程序添加功能,但该程序已经上线或已经被使用,那么不需要批量修改源代码装饰器用于拓展原来
函数功能,特殊之处在于他的返回值也是一个函数。使用@符号可以将装饰器应用到函数。
@outer 一个修饰符就是一个函数。
python中的kwargs和*args:**
**kwargs参数表示的就是一个字典。
*args用来将参数打包成tuple给函数用。
python的内存分配以及垃圾回收:
python采用计数的方式来管理分配内存,python的每个对象都有一个引用计数,这个引用计数表明了有多少个对象指
向他,计数为0即表示释放。
python中的GC模块主要运用了引用计数来跟踪和回收垃圾,还可以通过‘标记--清除’解除可能出现的回环问题。
python多线程:
1.解耦降低关联性
2.支持并发
3.支持忙闲不均,防止一次制造太多来不及处理,等生产者慢下来再处理。
python遍历列表的4种方法:
app_list = [1234,5678,9999]
for app_id in app_list:print app_id
for index,app_id in enumerate(app_list):print index,app_id enumerate()说明
enumerate()是python的内置函数
enumerate在字典上是枚举、列举的意思
对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以
同时获得索引和值enumerate多用于在for循环中得到计数for i in range (len(app_list)):print i,app_list[i]
for app_id in iter(app_list):print app_id
iter()函数有两种用法,一种是传一个参数,一种是传两个参数。结果都是返回一个iterator对象。
python类型转换:
num_list=[1,2,3,4]
type(num_list)
num=tuple(num_list) 转换为元祖类型
type(num)
python删除列表重复数据:
b=list(set(num_list))会从大到小排列
python如何复制对象:
使用 copy模块来复制对象
例:import copylist = [1,2,3,4]b = listc = copy.copy(list) 浅拷贝d = copy.deepcopy(list) 深拷贝
python中的深拷贝和浅拷贝的定义:
在python中对象的赋值就是对象的引用,当创建一个对象把他赋值给另一个变量时,Python只是拷贝了对象的引用而已。
浅拷贝:拷贝了最外围对象本身,内部的元素只是拷贝了一个引用而已,也就是只复制对象,对象的引用不复制。
深拷贝:外围和内部元素都进行了拷贝对象本身,而不是引用,把对象复制了一遍,并且该对象中引用的其他对象也复制。
python如何发送邮件:
SMTP(邮件传输协议),只可用来发送邮件,不可用来接受邮件,默认端口号是25。也可以使用email模块。
如何使用python删除文件?
使用OS模块
os.remove(path) 删除文件
os.removedirs(path) 递归的删除目录,只删除父目录,子目录为空会报错。
os.rmdir(path) 删除目录要求为空
python如何copy一个文件?
在shutil模块中有一个copyfile函数可以实现。
python中的socket套接字
用于描述IP地址和端口,是一个通信链的句柄,用于实现不同虚拟机或者不同计算机间通信。
python中列表,元组的区别
列表和元组都是容器,列表是可变的,元组是不可变的。
python如何来查询和替换一个字符串?
sub()方法来查找和替换。
sub(replacement,string,[count=0])被替换 替换 可选
subn()和sub()一样,不过会返回一个二维数组,包括替换后的新字符串和总共替换的数量。
单例模式:
确保一个类只有一个实例存在,python模块就是一种单例模式,第一次导入生成.pyc文件,第二次直接
加载.pyc文件。把相关函数和数据定义在一个模块中,就可以获得单例对象。
UTF-8占用字节数:
一个utf-8数字占用一个字节,英文字母占用一个字节,少数汉字占用三个字节,多数汉字占用四个字节。
计算字符串长度:
通过内置方法len()来计算字符串的长度。
aa = 'afebb' print len(aa)
python中__name__==__main__的作用
让你写的脚本模块既可以导入到别的模块中用,另外该模块自己也可执行。
如果我们是直接执行某个.py文件的时候,该文件中那么”__name__ == '__main__'“是True,但是我们如果从另外一个.py
文件通过import导入该文件的时候,这时__name__的值就是我们这个py文件的名字而不是__main__。这个功能还有一个用处:调试代码的时候,在”if __name__ == '__main__'“中加入一些我们的调试代码,我们可以让外部
模块调用的时候不执行我们的调试代码,但是如果我们想排查问题的时候,直接执行该模块文件,调试代码能够正常运行!
数据结构与算法:
链表:
链表:是一种由节点(Node)组成的线性数据集合,每个节点通过指针指向下一个节点,它是由节点组成的并能表示序列的数据结构。
单链表:每个节点仅指向下一个节点,最后一个节点指向空(Null)
双链表:每个节点有两个指针p,n,p指向前一个节点,n指向下一个节点,最后一个节点指向空(null)
循环链表:每个节点指向下一个节点,最后一个节点指向第一个节点。
栈:
栈是一个数据集合,支持两个基本操作,push用于将元素压入栈,pop用于删除栈顶元素,后进先出。
队列:
队列是一种元素集合,支持两种基本操作:enqueue用于添加一个元素到队列,dequeue用于删除队列中的元素,先进先出数据结构。
树:
树是一种无向,联通的无环图。
二叉树:是一种树形数据结构,每个节点最多有两个节点,称为左子节点和右子节点。
满二叉树:二叉树中每个节点有0或2个子节点。
完美二叉树:二叉树中每个节点有两个子节点,并且所有叶子节点的深度是一样的。
完全二叉树:二叉树中除最后一层外其他各层节点数都达到最大值,最后一层的节点都持续集中在左边。
堆:
堆是一种给予树的满足某些特性的数据结构,整个堆中所有子节点的键值都满足相同的排序条件。
最大堆:父结点的键值永远大于等于所有子节点的键值,根结点的键值是最大的。
最小堆:父节点的键值永远小于等于所有子节点的键值,根节点的键值是最小的。
DDOS攻击原理以及检测:
DDOS意思是分布式拒绝服务,即采取一些垃圾数据包来阻塞网络的网路通道,导致网站不能正常访问。分布式
服务攻击就是利用一台主服务器来控制N台肉鸡来对目标服务器进行服务拒绝攻击的方式。
检测:首先网站打不开的话,可以尝试使用3389连接,可以用ping来测试,再一种方法就是用telnet方法来登录80端口查看,
看会不会出现黑屏。这些都无法连接,则判断是收到了DDOS攻击。然后如果除了80端口以外其他端口均正常,ping命令也正常,那就是80端口坏了,然后查看IIS(互联网信息服务)是否正常,
可以把80端口改为其他端口,若可以正常访问,则判断收到了CC攻击。
几种常见的DDOS攻击:
SYN/ACK Flood攻击可以通过各种系统的网络服务,主要通过向受害主机发送大量的伪造源IP和源端口的SYN或ACK包,导致主机的缓存资源被耗尽
或忙于发送回应包而拒绝服务,由于源IP是伪造的追踪起来比较困难,缺点是实施起来有一定的难度,需要高带宽的僵尸主机。
TCP全攻击:通过许多僵尸主机不断地与受害服务器建立大量的TCP连接,直到服务器的内存资源被拖垮,从而造成拒绝服务。
CC攻击:和服务端建立正常的TCP连接,并不断的向脚本程序提交查询,列表等大量耗费数据库资源的调用,典型的以小博大攻击。
DDOS攻击的防护:
1.采用高性能的网络设备
2.保证充足的网络带宽
3.安装专业的抗DDOS防火墙,例如冰盾防火墙
2018年秋招运维岗面试常见python和数据结构知识点总结相关推荐
- 2018年秋招运维岗面试常见Linux运维知识点总结
Linux中常见命令: ping命令:可测试网络是否通畅.ping命令使用的是网络层的ICMP协议,但从命令本身来看是属于第七层应用层.traceroute:电脑网络工具,可显示数据包在IP网络经过的 ...
- 6个linux运维典型问题,Linux运维人员面试常见的问题及答案(二)
今天小编要跟大家分享的文章是关于Linux运维人员面试常见的问题及答案(二).准备参加Linux运维面试的小伙伴们是否做好了面试准备,今天在这里小编继续为大家分享一些Linux运维人员面试中的常见问题 ...
- 超硬核!腾讯运维岗面试必问11题,我说的,不信就来看看
不要怕大公司面试,找到核心的高频问题,就解决了80%的面试题 请你谈谈进程和线程的区别? 1)进程 进程是程序的一次执行过程,是一个动态概念,是程序在执行过程中分配和管理资源的基本单位,每一个进程都有 ...
- 2021秋招运维工程师岗位常考的知识点
未雨绸缪,春招已去,秋招即来,结合这两年秋招常考察的知识点做下汇总,方便大家学习和准备. 常考的网络知识点 1. 网络知识点 OSI七层参考模型及其作用,每层下包含的协议: ARP的工作原理: Ip地 ...
- 深信服2019秋招技服岗面试总结
深信服笔试经验总结: 深信服的技服岗笔试总体来看比较简单,分为40道单选题和2道问答题. 单选题考的内容主要是网络基础(IP地址与子网掩码等).Windows简单命令.云计算的基础概念以及常识性的知识 ...
- 2018百度运维岗秋招面试题:36匹马6跑道快速找出前三名
36匹马赛跑,跑道同时只能容许6匹马.问最少跑多少次可以找出前三名 这道题是在2018年秋招百度面试官给我的问题,我投的是运维研发,要求是编程实现,很显然没有计时器不然还有啥问的,发博客也希望有大佬给 ...
- 2018年秋招笔试面试---小学渣求职历险记(深圳篇)
前文导读:2018年秋招笔试面试----小学渣求职历险记(中南篇) 我从来没有去过深圳,每次都是从男友那里了解到关于深圳的只言片语,说深圳开放,深圳包容,深圳如何如何-.反正我内心是不以为然的,眼见为 ...
- 2018 秋招 百度二轮面试---血淋淋的经历写实
2017 秋招 百度二轮面试-血淋淋的经历写实 一名自信向上的良好青年,参加百度面试被面试官按在地板来回摩擦~(不知是哪位好汉说的,借用一下) 简单回顾一下,下午的经历吧 下午百度二面对话大概是这样的 ...
- 2018微软秋招面试经验(软件工程师岗位)
秋招去了微软面试,拿到了offer.经验分享给大家,希望有帮助. 先说我自身的情况.国内不知名双非院校本科,计算机专业.参加过ACM,最高China-Final金奖:参加过数学建模,最高国一:做过一年 ...
最新文章
- 数据结构Java版之红黑树(八)
- Github标星8.3k+,Tensorflow 2.0的代码实现及教学材料(“龙书”)公布下载了!
- jsr303jsp页面怎么显示错误信息_springmvc使用JSR-303进行数据校验实例
- “东数西算”,全国一体化算力网络八大枢纽节点批复函+图解
- 小程序功能模块-优客娱乐视频1.0.5源码
- 计算机组成原理之磁盘
- Android开发文档
- 【以太坊源码阅读】椭圆曲线加密和EIP155
- Map转Object和List<Map> 转List Object
- FAQ:The field file exceeds its maximum permitted size of 1048576 bytes.
- “宠物”项目、“西瓜”项目、怎样打这些“怪物项目”?
- 【NOI2015模拟YDC】游戏
- 【JVM】运行时数据区介绍,程序计数器和虚拟机栈详解
- 企业微信添加微信好友失败怎么办?
- 数据库一条insert插入多条记录
- 蓝牙芯片设计看上海,终端产品找深圳
- 学号20182325袁源 实验一《Linux基础与Java开发环境》实验报告
- 存储技术最强科普,这一篇就够了
- 《全息离我们有多远》
- intellij idea 2018.1中文破解版 附注册码汉化包
热门文章
- Three.js凹凸贴图bumpMap和法线贴图.normalMap
- IOS错误之----警告 Local declaration of 'XXX' hides insta
- unity warning CS0108: test4.name' hides inherited memberUnityEngine.Object.name’.
- 内网域横向PTHPTKPTT哈希票据传递
- PS怎么做出旧电视图像故障视觉特效
- 《跟开涛学SpringMVC》学习笔记
- 我的世界服务器显示大字,我的世界上面指令让界面出现字体 | 手游网游页游攻略大全...
- 小O地图EXE版V0.9.5.5 - 功能总览
- 孤立森林:大数据背景下的最佳异常检测算法之一
- 看完《长安十二时辰》惊呆了!难道唐朝就已经有大数据和云计算?