记一次找工作经历---python

2018-06-18 03:10:15来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

坐标南京 211 cs专业 

工作经验算上实习1年多,外包公司,员工各种离职,项目越做越难,工资不涨怒而离职。目前陷入找工作的泥潭,记录一些知识点的不足来督促自己吧。

2018/5/29 zn公司 : 很棒的公司,环境好,员工都是年轻人,大牛很随和,问了很多题目,回答上来一部分,还答错了一部分。

1、多个装饰器调用时先后关系

def decoratora(func):
	print 'decorator_a start'
	def wrapper():
		print 'in the wrapper_a'
		func()
	return wrapper

def decoratorb(func):
	print 'decorator_b start'
	def wrapper():
		print 'in the wrapper_b'
		func()
	return wrapper

@decoratora
@decoratorb
def test():
	print 'in the func'

 不进行调用test 此时结果:

先调用decoratorB 再调用decoratorA

 接着加上 test()

这里就有点迷糊了。为啥先调用wrapper_a呢,再加一点代码就看清楚了

def decoratora(func):
    print 'decorator_a start'
    def wrapper():
        print 'in the wrapper_a'
        func()
        print 'go out wrapper_a'
    return wrapper

def decoratorb(func):
    print 'decorator_b start'
    def wrapper():
        print 'in the wrapper_b'
        func()
        print 'go out wrapper_b'
    return wrapper

@decoratora
@decoratorb
def test():
    print 'in the func'

test()

https://blog.csdn.net/jyhhhhhhh/article/details/54627850 这里有帖子说的很清楚了。

2、定时任务 

  crontab -l 查看 -e 编辑 -r 删除所有

  ***** 执行命令

  这里分别指 分 时 日 月 周  

  其中*表示全部 ,表示和 -表示一个时间段 /n 隔一段时间(n的时间)

  crontab真实文件放在 /var/spool/cron 目录下可以写一个文件通过crontab命令来调用 不能直接修改文件

 

3、python2和python3的区别

  3.1 print() 

  3.2 raw_input与input合并为input

  3.3可以使用中文作为变量名

4、序列化

  这里是把内存的运行数据保存下来 模块是pickle  pickle.dumps 和 pickle.load

   josn 也是有这两个方法用法相同

5、生成器和迭代器区别

  迭代器是一个实现了迭代器协议的对象,例如

it=range(2)
ite=iter(it)
ite.next()

  生成器是迭代器的一种,是使用yield语句快速生成的迭代器,把一个普通函数变成生成器,每次执行到yield都会停止,调用next继续执行。

6、树的遍历 前序中序后序

  前序遍历:根节点 左节点 右节点

  中序遍历:左节点 根节点 右节点

  后序遍历:左节点 右节点 根节点

7、字符串找最大相同

  这里的思路是创建一个二维数组来保存相同位置的状态

  

#coding:utf-8

def getLongestString(str1,str2):
    len1=len(str1)
    len2=len(str2)
    record=[[0 for i in range(len2+1)] for j in range(len1+1)]
    print record
    maxNum=0 #最长匹配长度
    p=0         #匹配起始位

    for i in range(len1):
        for j in range(len2):
            if str1[i]==str2[j]:
                record[i+1][j+1]=record[i][j]+1
                if record[i+1][j+1]>maxNum:
                    maxNum=record[i+1][j+1]
                    p=i
    return str1[p-maxNum:p],maxNum



if __name__ == '__main__':
    str1='abcefghijk'
    str2='dasdghijad'
    res=getLongestString(str1,str2)
    print res
View Code

结果

8、网络结构

  问了一个问题,在浏览器输入百度的网址,到显示百度的页面为止,数据是怎么工作的。

  首先要明确网络的七层协议:应用层 表示层 传输层 会话层 网络层 数据链路层 物理层 数据被一层层传输,传到服务器,然后再返回数据包,浏览器进行解析,打开网页。

  1.DNS解析 根据输入的域名进行解析到服务器的具体地址。这里浏览器会有缓存,如果没有则发出DNS请求到DNS服务器。

  2.发出TCP请求 这里的重点是三次握手(具体参数)

  三次握手

  3.http请求

  4.负载均衡 将自己ip的请求分配到服务器上

  5.浏览器渲染 

5/30 第二次面次 bjps 地方很偏,找了好久才找到,里面氛围很好,唯一就是偏僻。去了之后答了一份题目,然后问了一些基础的东西

1.如何手动释放内存

  import gc   gc.collect()

2.search 和match的区别

  这里是re模块的,match只会匹配RE是不是String的开始位置,search会扫描整个string

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Python生成短uuid的方法

下一篇:列表的‘魔法’方法