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 -w
4.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的任意一种语言
    import re
    with open(‘a.txt‘,‘r‘) as f:
    file_all=f.read()
    result=re.findall(r‘http://(.*com?)‘,file_all)
    for i  in  set(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  3568
 Swap:    7999  0  7999
 请问swap,total,free,shared,buffers,cached各是什么意思?
     swap:表示硬盘上交换分区的使用情况
     total:表示系统可使用的物理内存的总量为3832
     free:表示为分配的物理内存为232
     shared:多个进程共享的内存总数
     buffers:已经被系统分配而未使用的buffer内存257
     cached:已经被分配而未使用的cache内存为666
 7.什么是python中的装饰器,怎么使用?
    装饰器本质上是一个python函数或者类,它可以让其他函数或者类在不需要做任何代码修改的前提下,
    增加额外功能,装饰器的返回值也是一个函数/类对象
    使用:@+装饰器函数 写在被装饰函数的上面
    def log(level):
        def dec(func):
            def wrapper(*args,**kwargs):
                print "before func was called"
                func(*args,**kwargs)
                print "after func was called"
            return wrapper
        return dec
    @log(2)
    def funcLog():
        print "funcLog was called"
    funcLog()
==>
before func was called
funcLog was called
after func was called

 8.分别举例说明Python中list/dict/set comprehensions.
    list:[x**2 for x in range(10)]
    dict:
        strings=[‘workhard‘,‘is‘,‘important‘]
        D={key: val for val,key in enumerate(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 in f:
            do_something(line)
 10.使用Python实现一个stack。
    class Stack(object):
        def __init__(self):
            self.items=[]
        def is_empty(self):
            return self.items == []
        def peek(self):
            return self.items[len(self.items)-1]
        def size(self):
            return len(self.items)
        def push(self,items):
            self.items.append(item)
        def pop(self,item):
            return self.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())

原文地址:https://www.cnblogs.com/sxh-myblogs/p/8449262.html

时间: 2024-07-30 08:17:19

python笔试题(-)的相关文章

传说中的华为Python笔试题——两等长整数序列互换元素,序列和的差值最小(修正)

有两个序列a,b,大小都为n,序列元素的值任意整形数,无序:要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小. 1. 将两序列合并为一个序列,并排序,得到sourceList2. 拿出最大元素Big,次大的元素Small3. 在余下的序列S[:-2]进行平分,得到序列max,min4. 将Small加到max序列,将Big加大min序列,重新计算新序列和,和大的为max,小的为min. 如下,提供递归版本和迭代版本的解体思路: #!/usr/bin/env py

python笔试题1-21

1.如何实现对python列表去重并保持原先顺序 答:再创建一个列表,依次循环原列表元素并判断,若当前元素不在新建列表中,则添加即可 2.现在有两个元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数,生成列表[{'a':'b'},{'c':'d'}] 答: #答案一 test = lambda t1,t2 :[{i:j} for i,j in zip(t1,t2)] print(test(t1,t2)) #答案二 print(list(map(lambda

python笔试题42-69

42.如何在Python中拷贝一个对象,并说明他们之间的区别    答:Python中有两种拷贝方式,深拷贝与浅拷贝 浅拷贝:用赋值符号(=)即可,内存地址公用,一个改复制对象全都改 深拷贝:用copy模块下的deepcopy方法,每一个拷贝对象都是独立的内存地址 43.谈谈你对Python装饰器的理解 答:装饰器是一个内嵌函数 他能不改变原函数代码的情况下增加其装饰函数的功能 44.Python里的match()与search()区别 答:match是从字符串第一位开始匹配,若第一位不同则找不

python笔试题(三)

1.MySQL有哪些存储引擎,优化MySQL数据库的方法有哪些? MySQL支持的存储引擎有MyISAM,InnoDB,Memory,CSV,Archive 创建索引,使用复合索引,使用短索引,不在列上进行运算,不使用NOT IN操作,不在包含有NULL值得列上加索引 2.WEB开发中session与cookie的作用与区别? cookie通过在客户端记录用户身份的信息,session通过在服务端记录用户身份信息 cookie机制:理论上一个用户的所有请求都应该属于一个会话,由于web程序应用是

Python 的笔试题

其实大多数说学习Python 是纯兴趣,真的我不信,许多人已经工作了,没有那么多时间搞自己的纯兴趣了,都会为了生活奋斗,可以说转行来学python 就是未来加薪,当然,小编现在也快要准备工作了,所以也开始准备笔试,面试. 所以为了充实自己,小编决定写自己见到的笔试题和面试题.可能要写好长时间,一时半会写不了多少,只能说遇到多少写多少吧,但是只要小编有时间,会持续上传. 2017.9.6 问题一:以下代码将输出什么? list = ['a', 'b', 'c', 'd', 'e'] print l

2018春招-今日头条笔试题-第三题(python)

题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) 解题思路: 本题的做法最重要的应该是如何拼出'1234567890',对于输入表达试获得对应的结果利用python内置函数eval()即可以实现.利用5个字符串来表达'1234567890',如下(为了好看,里面加了tab空格符) '66666 ....6 66666 66666 6...6 66666 66666 66666 66666 66666''6...6 ....6 ....6 ....6 6...6 6.... 6

python 饥饿的小易(网易笔试题)

本周早些时候,学弟给我发了一道网易的笔试题,饥饿的小易,感觉有点意思-分享给大家 题目描述: 小易总是感觉饥饿,所以作为章鱼的小易经常出去寻找贝壳吃.最开始小易在一个初始位置x_0.对于小易所处的当前位置x,他只能通过神秘的力量移动到 4 * x + 3或者c.因为使用神秘力量要耗费太多体力,所以它只能使用神秘力量最多100,000次.贝壳总生长在能被1,000,000,007整除的位置(比如:位置0,位置1,000,000,007,位置2,000,000,014等).小易需要你帮忙计算最少需要

python最新笔试题

这是笔者面试小十家公司后呕心沥血总结的一些笔试编程题~具体公司就不透露了.哎,说多了都是泪啊. 1.二分法查找: l = [1, 2, 3, 4, 5, 6, 7, 8, 9] find_num = int(input('请输入一个数字:')) start = 0 end = len(l) - 1 while True: middle = (start + end) // 2 if find_num == l[middle]: print('找到了!索引是:', middle) break el

经典的阿里前端笔试题

1 请说明下面各种情况的执行结果,并注明产生对应结果的理由. function doSomething() { alert(this); } ① element.onclick = doSomething,点击element元素后. ② element.onclick = function() {doSomething()}, 点击element元素后. ③ 直接执行doSomething(). 参考答案: 1.element:调用执行时直接指向事件元素. 2.window:函数调用中的 thi