python笔记题_python笔试题(-)

1.如何查看占用8080端口的是什么进程?

netstat –apn| grep 8080

2.DNS解析过程是怎样的?有几种解析方式,各自的区别是什么?1) 浏览器缓存

当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的IP地址(若曾经访问过该域名且没有清空缓存便存在);2) 系统缓存

当浏览器缓存中无域名对应IP则会自动检查用户计算机系统Hosts文件DNS缓存是否有该域名对应IP;3) 路由器缓存

当浏览器及系统缓存中均无域名对应IP则进入路由器缓存中检查,以上三步均为客服端的DNS缓存;4) ISP(互联网服务提供商)DNS缓存

当在用户客服端查找不到域名对应IP地址,则将进入ISP DNS缓存中进行查询。比如你用的是电信的网络,则会进入电信的DNS缓存服务器中进行查找;5) 根域名服务器

当以上均未完成,则进入根服务器进行查询。全球仅有13台根域名服务器,1个主根域名服务器,其余12为辅根域名服务器。

根域名收到请求后会查看区域文件记录,若无则将其管辖范围内顶级域名(如.com)服务器IP告诉本地DNS服务器;6) 顶级域名服务器

顶级域名服务器收到请求后查看区域文件记录,若无则将其管辖范围内主域名服务器的IP地址告诉本地DNS服务器;7) 主域名服务器

主域名服务器接受到请求后查询自己的缓存,如果没有则进入下一级域名服务器进行查找,并重复该步骤直至找到正确纪录;8)保存结果至缓存

本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时将该结果反馈给客户端,客户端通过这个IP地址与web服务器建立链接。1.递归查询:

一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机;2.迭代查询(反复查询):

一般DNS服务器之间属迭代查询,如:若DNS2不能响应DNS1的请求,则它会将DNS3的IP给DNS2,以便其再向DNS3发出请求;3./temp 独立挂载在一个分区上,现发现其磁盘空间满了,小文件过多。现在请用命令删除所有文件?

umount/temp

fidsk/temp -m -d 1 -w4.TCP建立连接三次握手,断开连接四次握手的过程是怎样的?

三次握手:

(1)主机A向主机B发送TCP连接请求数据包,其中包含主机A的初始序列号seq(A)=x。

(其中报文中同步标志位SYN=1,ACK=0,表示这是一个TCP连接请求数据报文:序号seq=x,表明传输数据时的第一个数据字节的序号是x);

(2)主机B收到请求后,会发回连接确认数据包。

(其中确认报文段中,标识位SYN=1,ACK=1,表示这是一个TCP连接响应数据报文,并含主机B的初始序列号seq(B)=y,以及主机B对主机A初始序列号的确认号ack(B)=seq(A)+1=x+1)

(3)第三次,主机A收到主机B的确认报文后,还需作出确认,即发送一个序列号seq(A)=x+1;确认号为ack(A)=y+1的报文;

四次握手:

假设主机A为客户端,主机B为服务器,其释放TCP连接的过程如下:

(1)关闭客户端到服务器的连接:首先客户端A发送一个FIN,用来关闭客户到服务器的数据传送,然后等待服务器的确认.其中终止标志位FIN=1,序列号seq=u

(2)服务器收到这个FIN,它发回一个ACK,确认号ack为收到的序号加1。

(3)关闭服务器到客户端的连接:也是发送一个FIN给客户端。

(4)客户段收到FIN后,并发回一个ACK报文确认,并将确认序号seq设置为收到序号加1.

首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。5.写一个脚本,处理以下文本内容,将域名取出,并进行计数排序

http://www.immomo.com/index.html

http://club.immomo.com/small_552.htm

http://news.immomo.com/dzjk/nrsj/http://www.immomo.com/il_sii_3803.htm

http://www.immomo.com/test.php

http://club.immomo.com/big_303.htm

得出如下结果:

www.immomo.com

club.immomo.com

news.immomo.com

使用bash/perl/python/ruby/php的任意一种语言importre

with open('a.txt','r') as f:

file_all=f.read()

result=re.findall(r'http://(.*com?)',file_all)for i inset(result):print(i)6.Linux command:free,如下:

$free-m

total used free shared buffers cached

Mem:3832 1188 2644 0 257 666

-/+buffers/cache:264 3568Swap:7999 0 7999请问swap,total,free,shared,buffers,cached各是什么意思?

swap:表示硬盘上交换分区的使用情况

total:表示系统可使用的物理内存的总量为3832

free:表示为分配的物理内存为232

shared:多个进程共享的内存总数

buffers:已经被系统分配而未使用的buffer内存257

cached:已经被分配而未使用的cache内存为6667.什么是python中的装饰器,怎么使用?

装饰器本质上是一个python函数或者类,它可以让其他函数或者类在不需要做任何代码修改的前提下,

增加额外功能,装饰器的返回值也是一个函数/类对象

使用:@+装饰器函数 写在被装饰函数的上面deflog(level):defdec(func):def wrapper(*args,**kwargs):print "before func was called"func(*args,**kwargs)print "after func was called"

returnwrapperreturndec

@log(2)deffuncLog():print "funcLog was called"funcLog()==>before func was called

funcLog was called

after func was called8.分别举例说明Python中list/dict/set comprehensions.

list:[x**2 for x in range(10)]

dict:

strings=['workhard','is','important']

D={key: val for val,key inenumerate(strings)}

set:{x**2 for x in [1, 1, 2]}9.在Python中怎么有效读取一个20GB大小的文件?

文件名:a.text

with open('a.text','r',encoding='utf-8') as f:for line inf:

do_something(line)10.使用Python实现一个stack。classStack(object):def __init__(self):

self.items=[]defis_empty(self):return self.items ==[]defpeek(self):return self.items[len(self.items)-1]defsize(self):returnlen(self.items)defpush(self,items):

self.items.append(item)defpop(self,item):returnself.items.pop()if __name__==__main__:

my_stack=Stack()

my_stack.push('a')

my_stack.push('b')print(my_stack.size())print(my_stack.peek())print(my_stack.pop())print(my_stack.peek())print(my_stack.size())print(my_stack.pop())print(my_stack.size())

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值