Python笔试面试题总结(一)
最近一直在面试找工作,总算是决定去一家公司入职。这里对最近这半个月的一些笔试面试题进行分享,希望对大家有帮助。今天首先总结笔试题部分,明天将慢慢给出答案,并给出面试题总结。大家可以先进行参考,看看是否都能做出来。
1
基础笔试题
1、xrange() 和 range() 的区别,等价于 Python3 与 Python2 中 range() 的区别
2、list、tuple、set、dict 分别是什么
3、多进程与多线程的区别
4、什么是生成器(也是常问的面试题)
5、如果实现列表去重,可参考前面文章:笔试题答案分享
6、is 和 == 的区别,可参考前面文章:Python编程笔记(二):==和is
7、*args 和 **kwargs 有什么作用,那 * 和 ** 分别有什么作用,可参考前面文章:Python每日一题
8、什么是 lambda 表达式,有什么作用
9、什么是闭包?有什么应用?
10、如果实现 1~100 的求和
11、functools.wrap() 有什么作用 (面试时问装饰器时也会问到)
2
Python Web笔试题
1、什么是wsgi
2、什么是MVC,它是设计模式吗
3、wsgi的服务器有哪些
4、Ngnix和Gunicon分别有什么作用
5、项目上你们是怎么部署代码的
6、通过什么工具管理代码和扩展库
7、举例你最熟悉和最喜欢的 Python Web 框架,并说出理由
8、你用过哪些 Python 爬虫的框架库,说说它有什么好处
3
程序题
- 关于多继承问题,扩展需要了解 MRO
class A(object):
x = 3
class B(A):
pass
class C(A):
pass
print(A.x, B.x, C.x) # 3 3 3
B.x = 4
print(A.x, B.x, C.x) # 3 4 3
A.x = 5
print(A.x, B.x, C.x) # 5 4 5
- 关于装饰器
def b(func):
print("bbb")
def wrap(*args, **kwargs):
print("wrap")
return(func(*args, **kwargs))
return wrap
@b
def a():
print("aaa")
a()
a()
"""
bbb
wrap
aaa
wrap
aaa
"""
- 关于可变类型做函数参数,需要解释原因
def t(a = []):
a.append(1)
print(a)
t()
t()
4
编程题
1、实现二分查找
2、实现简单的二叉树,并实现层次遍历与深度遍历
3、实现字典的 key 取交集
4、实现一个 LRU ,使得查询、删除与添加的时间复杂度为O(logn)
5、嵌套列表的扩展,如[1, 2, [3, [4, [5, 6]]]] 输出为 [1, 2, 3, 4, 5, 6]
5
项目大题
1、如果有一个千万级的抽奖活动,你作为负责人,会怎么去设计这个系统
2、如果现在要实现一个简单用户登录系统,支持多个第三方站点登录,比如微信、QQ等。你会如何设计表结构?为什么会这样设计
3、如何实现单点登录
4、如果现在要设计一个商品抢购的活动,你会用到什么技术?
愿关注我们的人都能找到
属于自己的皮球
- 机器学习之Python基础(一)
- 中国造机器人突破新高,将大量挤压就业空间,明天在哪里打工?
- 嵌入式数据库Perst
- USB 设备的PID-Product ID,VID-Vendor ID
- Asp.Net4.0/VS2010新变化(3):webform中也可以直接url路由
- IIS7上部署Asp.Net4.0时UrlRouting的若干问题
- As3.0中的反射
- 域名yg.cc以10.2万元的价格结拍,可搭建“摇滚”音乐平台
- 修改 Windows Host 文件工具
- win7下恢复“经典任务栏”/“快速启动栏”,关闭“窗口自动最大化”
- WCF和ASP.NET Web API 接口执行时间监控
- 额的神啊:AS3中Button被disable了,也会触发Click事件!
- [原创]CI持续集成系统环境---部署gerrit环境完整记录
- CentOS设置Mono环境变量
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 删除链表的倒数第N个节点
- Open3d学习计划—高级篇 2(彩色点云配准)
- Android7.0上某些PopuWindow出现显示位置不正确问题的解决方法
- 有效的括号
- Android PopupWindow实现左侧弹窗效果
- LeetCode. 209. 长度最小的子数组
- 一篇文章就能了解Rxjava
- 二叉树遍历非递归程序 -- 使用栈模拟系统栈
- Android开发之多媒体文件获取工具类实例【音频,视频,图片等】
- 二叉树及leetcode练习题
- 利用递归函数的返回值
- Android DataBinding的官方双向绑定示例
- 整数拆分
- Android Drawerlayout实现侧滑菜单效果
- 分割等和子集