记录一次小面试(1)

正文:

1.斐波那契数列。

a = 0
b = 1
while b < 100:
    print(b)
    a, b = b, a + b
result_list = []
for i in range(11):
    if i == 0 or i == 1:
        result_list.append(1)
    else:
        result_list.append(result_list[i-2] + result_list[i-1])
print(result_list)

2.去除list中重复的元素。

lis = [1, 2, 3, 1, 2, 3, 4, 1, 5]
print(list(set(lis)))

集合(set)是一个无序的不重复元素序列

3.查询,替换字符串的内容。

test_str = 'test a test test'
print(test_str.find('b'))
print(test_str.replace('test', 'a'))

find() 如果找到该字符串,返回子字符串的索引值,否则返回-1
replace() 则是返回替换后的字符串。

4.删除一个文件。

import os
os.chdir('/指定目录')
try:
    os.remove('指定文件')
except FileNotFoundError as e:
    print(e)

5.session,cookie的区别。

存放位置不同:session存放在服务器端,cookie存放在客户端。

安全性不同:可以通过分析或者盗取存放在本地客户端的cookie达到欺骗的效果,session存放在服务器端相对安全。

占用资源不同:因为session存放在服务器中,当访问量上升时回占用服务器性能,而cookie占用的资源则比较少。

6.七层网络协议。

物理层,数据链路层,网络层,传输层,会话层,表示层,应用层

7.用已知的开源软件三台服务器开发一个pv30000的网站。

pv:Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次。
uv:Unique Visitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。

以下个人见解,面试的时候也没坚持到这里,很遗憾没能获得一点指导意见。

一台服务器用于运行django+uwsgi+nginx的web服务,django用于处理动态请求,nginx用于分发请求实现动静分离。
一台服务器用于运行mysql数据库。
一台服务器用于运行redis缓存,可以把一些访问量比较大,内容更新速率不高的页面放入缓存,减少数据库的压力,此外可以运用rq或celery队列把一些实时性要求不高的任务放入缓存队列中异步完成。。

总结:

作完了自我介绍,介绍了一下项目之后,因为在斐波那契数列中写出了a=b, b=a+b而没有用a, b=b, a+b和删除一个文件题中只写了一句os.remove()被面试官说不够严谨起码要有完整的代码片段比如try,except等,就开始被面试官开始礼貌用语收尾,其他题目也没有机会跟我讲解就说回去等通知(就是你凉凉了可以走了)。

本以为小型一点的创业公司应该可能或许是十拿九稳,笔试题也比较简单,最终还是倒在自己的随意和不严谨,基础完完全全不够扎实,接下来目标是恶补python,mysql,django,数据结构和一些算法的基础。(得出这个深刻结论其实是因为另外一次电话面试,等我恶补完了再分享出来,简直是灾难片现场。。。)

你可能感兴趣的:(记录一次小面试(1))