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开发的面试中,我们经常会遇到关于链表操作的问题.链表作为一个非常经典的无序列表结构,也是一个开发工程师必须掌握的数据结构之一.在本文中,我将针对 ...
随机推荐
- Hibernate配置log4j日志环境
1.准备所需的jar 说明:具体所使用的jar包的版本与你所使用的Hibernate版本有关,我用的是(hibernate-release-4.3.11.Final) <1>准备slf4j ...
- apache2.4设置外网访问问题
Apache 从2.2升级到 Apache2.4.x 后配置文件 httpd.conf 的设置方法有了大变化,以前是将 deny from all 全部改成 Allow from all 实现外网访问 ...
- Python 批量修改文件名
最近下载了几部美剧(越狱.迷失.权利的游戏......),每集文件名都好长好长..想改短一些,但一个一个改太累了,于是写了个脚本来实现批量修改: 修改前文件名: 修改后文件名: 代码实现: #enco ...
- [leetcode] 根据String数组构造TreeNode,用于LeetCode树结构相关的测试用例
LeetCode 跟树结构相关的题目的测试用例中大多是通过String数组来构造树.例如{2,#,3,#,4,#,5,#,6},可以构造出如下的树(将树结构逆时针选择90度显示): 6 ...
- 2016HUAS_ACM暑假集训4A - 递推
利用组合公式C(n,m)=C(n-1,m)+C(n-1,m-1).也就是从n个数里面选择m个数.按递增方式放在每一层循环. 杨辉三角+二项式定理,还真是挺有“意思”的一道题.说实话,非原创.见谅... ...
- Google Java编程风格指南
出处:http://hawstein.com/posts/google-java-style.html 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Comm ...
- WPF 打印
1. System.Windows.Controls.PrintDialog printDialog = new System.Windows.Controls.PrintDialog(); if ( ...
- Yii2 利用controllerMap自定义控制器类
版权声明:本文为博主原创文章,未经博主允许不得转载. Yii2框架为我们自定义好的 controllers,Models,views,标准的MVC结构框架,但是有些时候我们写接口希望结构更加清晰而不 ...
- 错误: 程序包com.sun.istack.internal不存在
eclipse下maven打包是出现如下错误: [ERROR] D:\code-old\daba_user_mvn\src\main\java\com\dada\transaction\service ...
- mybatis 与 缓存
首先从配置文件说起,有个cacheEnabled的配置项,当设置为true时(默认就是true),Session就会用一个CachingExecutor来包装我们的Executor实例: public ...