Python基础面试题整理
基础
- Python中lambda是什么意思
- Python中的pass是什么意思
- 作为解释型语言,Python如何运行
- 什么是Python的单元测试
- 在Python中unittest是什么
- 如何将数字转换为字符串
- 什么是Python中的模块和包
- 解释如何在Python中生成随机数字
- 在Python中如何使用//运算符
- 提到使用Python的五个好处
- 简单说明在Python中如何使用split函数
- json和字典的区别
- python如何连接数据库操作
进阶
- 解释如何访问用C语言编写的Python模块
- range和xrang的区别
- *args ,**kwargs他们的区别和用法
- 装饰器的作用是什么给出一个具体的例子讲将装饰器写法还原回去
- map()和reduce和lambda的结合使用
- python中变量单下划线和双下滑线的区别
- python中多线程和多进程的区别i/o密集型适合用什么方式解决
- 什么是协程,他的好处是什么
- 什么是pickling和unpickling
- 有哪些工具可以帮助查找错误或执行静态分析?
- 什么是Python中的生成器
- __new__和__init__的区别
- 如何复制Python中的对象
- python中deepcopy和copy的区另
- python并行
- socket编程简单的描述一下select和epol丨模型的区别
- 提到Python中的局部和全局变量的规则是什么
- 怎样才能跨模块共享全局变量
- 解释如何在Unix上创建一个Python脚本可执行文件
- Python垃圾回收机制
- 按下述要求编写代码,实现以下功能:
(1)编写代码下载https://en.wikipedia.org/wiki/Machine_translation 页面的内容并保存为mt.html
(2)统计mt.html中标签下所有单词并存储到mt_word.txt中,要求:
a) 每个单词一行。单词在前,单词出现的次数在后,中间用Tab( )分隔。
b) 单词按照数目从多到少排列。比如说单词a出现了100次,单词b出现了10次,则单词a要在单词b前面。
数据结构
- python set和list哪个效率高?
- 100w条数据用什么数据结构存储查询效率更高
- 实现二叉树遍历
- 用两个栈实现一个队列
- hash键值重复怎么处理
算法
- 二分查找法
- 1-7个等概率随机数, 生成0-1等概论随机数(使用别人的方法做递归最好限定最大递归深度)
- 文件 a b c c a b 统计每个字符个数
- 个窗口卖5张票,用Java/Python实现
- 列表l1 l2 求l2中和l1中元素相加为10的
- 一个整形数组,给定一个数,在数组中找出两个数的和等于这个数,并打印出来,我写的时间复杂度高,要求O(n)
- n个整数,找出连续的m个数加和是最大
- 汉诺塔求解: 汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵
天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序
摞着 64 片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放
在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只
能移 动一个圆盘 - 求一个列表的最小公倍数
- list=[1,2,3,4,5] target=3快速找出数组中两个元素之和等于target最优解是什么
时间复杂度是? - 统计在一个队列中的数字,有多少个正数,多少个负数,如[1, 3, 5, 7, 0, -1,-9, -4, -5, 8]
- 字符串 "axbyczdj",如果得到结果“abcd”
- 已知一个字符串为“hello_world_yoyo”, 如何得到一个队列
["hello","world","yoyo"] - 已知一个数字为 1,如何输出“0001”
- 已知一个队列,如: [1, 3, 5, 7],如何把第一个数字,放到第三个位置,得到:[3, 5, 1, 7]
- 已知 a = 9, b = 8,如何交换 a 和 b 的值,得到 a 的值为 8,b 的值为 9
- 打印出 100-999 所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153 是一个"水仙花数",因为 153=1 的三次方+5 的三次方+3 的三次方。
- 如果一个数恰好等于它的因子之和,则称该数为“完全数”,又称完美数或完备数。 例如:第一个完全数是 6,它有约数 1、2、3、6,除去它本身 6 外,其余3 个数相加,1+2+3=6。第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身 28外,其余 5个数相加,1+2+4+7+14=28。那么问题来了,求 1000 以内的完全数有哪些?
- 用 python 写个冒泡排序
- 已知一个队列[1, 3, 6, 9, 7, 3, 4, 6]按从小到大排序,按从大大小排序,去除重复数字
- 计算n的阶乘
- 已知一个数列:1、1、2、3、5、8、13、。。。。的规律为从 3 开始的每一项都等于其前两项的和,这是斐波那契数列。求满足规律的 100 以内的所以数据
- 计算 x 的 n 次方,如:3 的 4 次方 为 333*3=81
- 写一个小程序:控制台输入邮箱地址(格式为 username@companyname.com),
程序识别用户名和公司名后,将用户名和公司名输出到控制台。
要求:-
- 校验输入内容是否符合规范(xx@yy.com), 如是进入下一步,如否则抛出提
- 示"incorrect email format"。注意必须以.com 结尾
-
- 可以循环“输入--输出判断结果”这整个过程
-
- 按字母 Q(不区分大小写)退出循环,结束程序
-
- 如何遍历查找出某个文件夹内所有的子文件呢?并且找出某个后缀的所有文件
Web开发
- 写一个flask接口
- 解释什么是Flask及其好处?
- Django,Pyramid和Flask有什么区别
- Flask-WTF是什么,有什么特点
- 如何在Flask中访问会话
- Flask是一个MVC模型吗?如果是,可以示例一下吗
- 解释Python Flask中的数据库连接?
- 解释如何最大限度地减少Python开发中的Memcached服务器中断
- 解释Python项目中应不应该使用Memcached?
- nginx和uwsgi怎么样进行项目部署的分别说说他们的作用
- django中中间件的作用是什么
- csrf是什么
- django中缓存怎么用
代码理解
- 下面的代码会输出什么, 有什么问题
def f(x,l=[]):
for i in range(x):
l.append(i*i)
print l
f(2)f(3,[3,2,1])f(3)
- 阅读下面的代码,写出A0,A1至An的最终值
A0 = dict(zip(('a','b','c','d','e'),(1,2,3,4,5)))
A1 = range(10)
A2 = [i for i in A1 if i in A0]
A3 = [A0[s] for s in A0]
A4 = [i for i in A1 if i in A3]
A5 = {i:i*i for i in A1}
A6 = [[i,i*i] for i in A1]