Python Interview Questions

Tim Chase python.list at tim.thechases.com
Tue Oct 30 20:24:04 CET 2007


 > I have used Python for a couple of projects last year and
 > I found it extremely useful. I could write two middle size
 > projects in 2-3 months (part time). Right now I am a bit
 > rusty and trying to catch up again with Python.
 >
 > I am now appearing for Job Interviews these days and I am
 > wondering if anybody of you appeared for a Python
 > Interview. Can you please share the questions you were
 > asked. That will be great help to me.

While I haven't interviewed precisely for Python, I've been
on the other (interviewing) end and can offer a few of the
sorts of things I ask.  I don't expect perfect answers to
all of them, but they show me a range of what the
interviewee knows.  I try and give a scattershot of
questions from the following areas to try and narrow down
where they fall in terms of pythonability, and then grill
more deeply around the edges that I find.

Basic Python:
=============
- do they know a tuple/list/dict when they see it?

- when to use list vs. tuple vs. dict. vs. set

- can they use list comprehensions (and know when not to
   abuse them? :)

- can they use tuple unpacking for assignment?

- string building...do they use "+=" or do they build a list
   and use .join() to recombine them efficiently

- truth-value testing questions and observations (do they
   write "if x == True" or do they just write "if x")

- basic file-processing (iterating over a file's lines)

- basic understanding of exception handling

Broader Basic Python:
=====================
- questions about the standard library ("do you know if
   there's a standard library for doing X?", or "in which
   library would you find [common functionality Y]?")  Most
   of these are related to the more common libraries such as
   os/os.path/sys/re/itertools

- questions about iterators/generators

- questions about map/reduce/sum/etc family of functions

- questions about "special" methods (__<foo>__)

More Advanced Python:
=====================
- can they manipulate functions as first-class objects
   (Python makes it easy, but do they know how)

- more detailed questions about the std. libraries (such as
   datetime/email/csv/zipfile/networking/optparse/unittest)

- questions about testing (unittests/doctests)

- questions about docstrings vs. comments, and the "Why" of
   them

- more detailed questions about regular expressions

- questions about mutability

- keyword/list parameters and unpacked kwd args

- questions about popular 3rd-party toolkits (BeautifulSoup,
   pyparsing...mostly if they know about them and when to use
   them, not so much about implementation details)

- questions about monkey-patching

- questions about PDB

- questions about properties vs. getters/setters

- questions about classmethods

- questions about scope/name-resolution

- use of lambda

Python History:
===============
- decorators added in which version?

- "batteries included" SQL-capible DB in which version?

- the difference between "class Foo" and "class Foo(object)"

- questions from "import this" about pythonic code

Python Resources:
=================
- what do they know about various Python web frameworks
   (knowing a few names is usually good enough, though
   knowledge about the frameworks is a nice plus) such as
   Django, TurboGears, Zope, etc.

- what do they know about various Python GUI frameworks and
   the pros/cons of them (tkinter, wx, pykde, etc)

- where do they go with Python related questions (c.l.p,
   google, google-groups, etc)

Other Process-releated things:
==============================
- do they use revision control
   (RCS/CVS/Subversion/Mercurial/Git...anything but VSS) and
   know how to use it well

- do they write automated tests for their code

Touchy-feely things:
====================
- tabs vs. spaces, and their reasoning

- reason for choosing Python

- choice of editor/IDE

Good luck with your interviewing and hope this helped,

-tkc








More information about the Python-list mailing list