我将在两周内面试一次涉及Python编程的实习。
谁能建议我应该抛光哪些区域?我在面试中寻找Python开口方面的常见问题。除了我已经使用该语言已有一年多的事实之外,我没有意识到他们会问我什么。
像进行C或C ++面试一样,有很多问题,从字符串反转到建立链接列表,但对于Python面试,我一无所知。
欢迎个人经验和/或建议。
我将在两周内面试一次涉及Python编程的实习。
谁能建议我应该抛光哪些区域?我在面试中寻找Python开口方面的常见问题。除了我已经使用该语言已有一年多的事实之外,我没有意识到他们会问我什么。
像进行C或C ++面试一样,有很多问题,从字符串反转到建立链接列表,但对于Python面试,我一无所知。
欢迎个人经验和/或建议。
Answers:
以下是一些简单的方法:
涉及Python 列表推导的内容如何?对我而言,这些是我在Dive into Python中了解到它们之后在C ++上的最大卖点之一。
“编写一个列表理解,以建立从1到10(含10)(含1和10)(含)的偶数列表。”
答案是这样的(请注意范围值可避免出现击剑错误):
foo = [x for x in range(1, 11) if (x % 2) == 0]
print foo
[2, 4, 6, 8, 10]
因此,如果您了解Dive into Python中列出的所有概念,那将涵盖大多数重要功能。
range(2,11,2)
而在Python 3.x中,list(range(2,11,2))
。
Python是通过引用传递还是通过值传递也是一个很好的问题。
我被问到的问题:
我会在这个答案中列出。尝试尽可能刷新列表中的内容。如果您直到最后都无法做到,请不要担心。
人们提供了其他链接。我还建议使用Python的隐藏功能。以防万一他们向您提出一些棘手的问题。
您的感觉是什么,他们会尝试测试您是否了解Python,看看您是否可以用Python完成工作,还是测试您是否可以编程(使用Python)?
那是完全不同的事情。
如果他们想让您证明自己了解Python,则可能会强迫您执行诸如创建生成器之类的操作,然后不使用进行操作yield
。解释类的工作方式。解释C3方法的解析顺序。等等。
如果他们想让您证明可以使用Python完成工作,则需要具备基本的数据结构能力,并具有要用于各种任务的库列表。因此,您需要熟悉字典,集合和数组。同样,您需要了解诸如BeautifulSoup
解析HTML之类的事情,能够谈论可用于Web开发的框架等。您不一定需要了解如何很好地使用这些内容,但是您应该知道在哪里使用。一旦面试官给了你有记录的东西,就可以找到更多的方法,并能够实际使用它们。
如果他们想让您证明您可以编程(使用Python),则需要了解基本数据结构和算法。这与您将要问到的C / C ++问题非常接近,不同之处在于,您将被期望使用本机数据结构,从而使生活变得轻松。
为了安全起见,您应该在某种程度上为这三个方面做好准备。例如,通读http://docs.python.org/tutorial/并给自己做一些笔记。希望您已经知道如何编程。然后尝试一些随机任务,并强迫自己使用您可能错过的库。因此,例如,读取一些CSV,以编程方式从网页中提取信息,使用框架构建小型网站等。