python 面试必读
总结了10道题的考试侧重点,供参考:
1.How are arguments passed – by reference of by value?
考的是语法,基本功,虽说python程序员可以不用关心堆栈指针那些头疼的东东,但传引用和传值的区别还是必需清楚的。个人感觉从python中一切都是对象的角度看,第一题问传值还是传引用其实是考官有意看面试者是不是概念清楚,真正希望考生回答的是哪些对象传递到函数中是只读的或者说不可变的。
2.Do you know what list and dict comprehensions are? Can you give an example?
印象中 list and dict comprehensions 语法比一般循环的实现简洁了很多很多,不过说实在的由于之前用多了其他语言,后来转用python的话真不太习惯。
两个常见的例子:
>>> print {i : chr(65+i) for i in range(4)}
{0 : 'A', 1 : 'B', 2 : 'C', 3 : 'D'}
S = [2 * x for x in range(101) if x ** 2 > 3]
3.What is PEP 8?
第3题 PEP8是众多pythoner们使用的编码规范,很多公司已经直接使用PEP8了,如果连看还没看过的朋友请马上看下吧:http://www.python.org/dev/peps/pep-0008/
面试中如果你还能说说PEP7,以及使用它们的感受,相信考官肯定会给你加分。
4.Do you use virtual environments?
是不是有独立配开发环境的能力。 virtual environments 给开发人员进行多版本、多环境下的开发调试带来了极大的便利,很难想象没有Virtualenv,多版本开发有多头大,不是不成,别跟自己过不去不是。
推荐:
http://pythoncentral.org/how-to-install-virtualenv-python/
https://pypi.python.org/pypi/virtualenv
5.Can you sum all of the elements in the list, how about to multuply them and get the result?
>>> data = ['5', '4', '9']
>>> sum(int(i) for i in data)
18
>>>reduce(lambda x, y: x+int(y), data, 0)
18
>>> data = [5, 4, 9]
>>> sum(data)
18
>>> reduce(lambda x, y: x*y, data)
180
>>>
6.Do you know what is the difference between lists and tuples? Can you give me an example for their usage?
list 和 tuple 的不同首先是的语法,相同点都是类似数组的容器,都可以保存任意类型的对象,不同是tuple中的元素不可变,list中的元素是可以改变的,因此list比tuple多了一些管理其中保存元素的方法,如append, insert, pop, remove, sort, reverse等。
值得一提的是 Python 2.6 开始有了tuple 的子类 collections.namedtuple 可以通过元素的名字访问tuple了 (因为它具有 attribute 语法) ,当然还可以进过元素索引下标访问。
常见的例子是:
import collections
freturn = collections.namedtuple('freturn', 'fee fie foo fum')
def f():
...
return freturn(fee, fie, foo, fum)
#读取返回值:
r = f()
print r.fie # 相当于print r[1] , 但是提高了代码的可读性
7.Do you know the difference between range and xrange?
使用中最大的区别是在内存上,另外还可以看下stackoverflow里的解答:http://stackoverflow.com/questions/94935/what-is-the-difference-between-range-and-xrange
值得注意的是python3里的range函数相当于python2的xrange。
8.Tell me a few differences between Python 2.x and 3.x
希望你对新老产品都有所关注, 2/3的区别参考:
http://docs.python.org/release/3.0/whatsnew/3.0.html
http://www.python.org/dev/peps/pep-3000/
9.What are decorators and what is their usage?
@classmethod大家一定都用,关于Decorators的说明(by Bruce Eckel):
http://www.artima.com/weblogs/viewpost.jsp?thread=240808
http://www.python.org/dev/peps/pep-0318/
Decorators for Functions and Methods
10.The with statement and its usage.
典型的pythonic语法
python 面试必读的更多相关文章
- Python面试真题答案或案例
Python面试真题答案或案例如下: 请等待. #coding=utf-8 #1.一行代码实现1--100之和 print(sum(range(1,101))) #2.如何在一个函数内部修改全局变量 ...
- Python面试 【315+道题】
Python面试 [315+道题] 第一部分 Python基础篇(80题) 为什么学习Python? 因为看到python的发展趋势,觉得需要与时俱进,第一点,python开发速度极快,能快速完成一个 ...
- 10个Python面试常问的问题
概述 Python是个非常受欢迎的编程语言,随着近些年机器学习.云计算等技术的发展,Python的职位需求越来越高.下面我收集了10个Python面试官经常问的问题,供大家参考学习. 类继承 有如下的 ...
- Python面试基础篇
1. 为什什么学习Python? Life is short, You need Python 2. 通过什什么途径学习的Python? pass 3. Python和Java.PHP.C.C#.C+ ...
- Python 面试中 8 个必考问题(转载)
Python 面试中 8 个必考问题 1.下面这段代码的输出结果是什么?请解释. def extendList(val, list=[]): list.append(val) return list ...
- 常见的25个python面试问答
常见的25个python面试问答 说到好用简洁的大数据技术,除了Hadoop.R等等,Python也是其中熠熠生辉的一员,因而广受企业和商家的青睐.求职季,不少应聘者在面试相关职业时都被要求掌握Pyt ...
- python面试笔试题汇总
Python面试攻略(嗨谈篇) 110道python面试笔试题汇总,你能答对几道? Python 面试问答 Top 25 2018 年最常见的 Python 面试题 & 答案
- 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理
服务器文档下载zip格式 刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...
- Python面试常考点之深入浅出链表操作
Python面试常考点之深入浅出链表操作 在Python开发的面试中,我们经常会遇到关于链表操作的问题.链表作为一个非常经典的无序列表结构,也是一个开发工程师必须掌握的数据结构之一.在本文中,我将针对 ...
随机推荐
- leetcode 186. Reverse Words in a String II 旋转字符数组 ---------- java
Given an input string, reverse the string word by word. A word is defined as a sequence of non-space ...
- git的使用,通过git上传修改工程
一:下载git,https://git-scm.com/downloads(若下载速度慢,可下载百度下的)接下来,默认配置,一直next 二:在github上注册账号,并新建一个项目test(英文有点 ...
- Linear Algebra lecture4 note
Inverse of AB,A^(A的转置) Product of elimination matrices A=LU (no row exchanges) Inverse of AB,A^(A ...
- go语言的命令行库
命令行应用通常很小,程序猿们也不喜欢为它编写注释.所以一些额外的工作,如解析参数有个合理的库来帮忙做就好了.https://github.com/urfave/cli 这个项目因此而生.安装:go g ...
- jQuery获取多种input值的方法
1 if($("input[name=item][value='val']").attr('checked')==true) //判断是否已经打勾 name即控件name属性,va ...
- winform中生成TreeView树
无论是webform还是winform,TreeView都是常用功能.使用递归方法很方便. 下面分享一个小实例. 数据库中3个字段,分别是:ID,itemType_name,itemType_PID ...
- spring security系列
参考文档: spring security 3 的Ajax (解决 Ajax登陆页面跳转)http://jackyrong.iteye.com/blog/1770629 Spring Securit ...
- TCP和UDP之间的区别和联系
面向连接的TCP TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接.一个TCP连接必须要经过三次 ...
- [SPI&I2C]I2C和SPI协议介绍
IIC vs SPI 现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身 ...
- Android Event
2016-10-11 http://p.codekk.com/detail/Android/wcy10586/androidEvent https://my.oschina.net/u/191330/ ...