Python 开发面试题

Python部分

  1. 将一个字符串逆序,不能使用反转函数
  2. 求从10到100中能被3或5整除的数的和
  3. What is Python? What are the benefits of using Python?
  4. What is PEP 8?
  5. What is pickling and unpickling?
  6. How Python is interpreted?
  7. What are the tools that help to find bugs or perform static analysis?
  8. What are Python decorators?
  9. What is the difference between list and tuple?
  10. What are the built-in type does python provides?
  11. What is namespace in Python?
  12. What is lambda in Python?
  13. In Python what are iterators?
  14. What is unittest in Python?
  15. What are generators in Python?
  16. How can you copy an object in Python?
  17. What is module and package in Python?
  18. Mention what are the rules for local and global variables in Python?
  19. Explain how can you make a Python Script executable on Unix?
  20. Explain how to delete a file in Python?
  21. How can you share global variables across modules?
  22. Explain how can you generate random numbers in Python?
  23. Explain how can you access a module written in Python from C?
  24. Mention the use of // operator in Python?
  25. Mention five benefits of using Python?
  26. a=1, b=2, 不用中间变量交换a和b的值
  27. 请用自己的算法, 按升序合并如下两个list, 并去除重复的元素

    list1 = [2, 3, 8, 4, 9, 5, 6]

    list2 = [5, 6, 10, 17, 11, 2]

  28. 写一个简单的python socket编程
  29. 请描述set的用途并举例说明
  30. 请简述python2.x 与python3.x的主要区别
  31. 简述python新式类和旧式类的区别
  32. Python里面search()和match()的区别?
  33. 用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别?
  34. 请简述线程\进程\协程的特性
  35. 请简述你对python闭包的理解
  36. 静态函数, 类函数, 成员函数的区别?
  37. Python和c和Java的对比
  38. Python的内存管理
  39. Python的装饰器内部实现原理
  40. Python的面向对象和Java面向对象的区别
  41. Python面向对象的静态方法
  42. Python为啥是动态语言
  43. 动态语言和静态语言的区别
  44. 描述你知道的设计模式及各模式特点
  45. 算法(冒泡,二叉树,堆排序等)
  46. Python的线程
  47. Python的进程
  48. Python的线程池
  49. Python的面向对象和c面向过程的区别
  50. 为什么c没有面向对象依然可以封装函数
  51. 请用多线程并发爬取3个知名网站的首页
  52. 解释一下 Django 和 Tornado 的关系、差别

    Django源自一个在线新闻 Web站点,于 2005 年以开源的形式被释放出来。

    Django 框架的核心组件有:

    用于创建模型的对象关系映射为最终用户设计的完美管理界面一流的 URL 设计设计者友好的模板语言缓存系统等等

    它鼓励快速开发,并遵循MVC设计。Django遵守 BSD版权,最新发行版本是Django

    1.4,于2012年03月23日发布.Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(Do Not RepeatYourself)原则。

    Tornado是 FriendFeed使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本。这个 Web 框架看起来有些像 web.py 或者 Google 的 webapp,不过为了能有效利用非阻塞式服务器环境,这个 Web 框架还包含了一些相关的有用工具和优化。

    Tornado 和现在的主流 Web 服务器框架(包括大多数Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其 非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,这意味着对于实时 Web服务来说,Tornado 是一个理想的 Web 框架。我们开发这个 Web 服务器的主要目的就是为了处理 FriendFeed 的实时功能 ——在 FriendFeed 的应用里每一个活动用户都会保持着一个服务器连接。(关于如何扩容 服务器,以处理数以千计的客户端的连接的问题。

  53. 解释下django-debug-toolbar的使用

    使用django开发站点时,可以使用django-debug-toolbar来进行调试。在settings.py中添加’debug_toolbar.middleware.DebugToolbarMiddleware’到项目的MIDDLEWARE_CLASSES 内。

  54. 如何进行Django单元测试

    Django的单元测试使用python的unittest模块,这个模块使用基于类的方法来定义测试。类名为django.test.TestCase,继承于python的unittest.TestCase。

    from django.test import TestCase

    from myapp.models import Animal

    class AnimalTestCase(TestCase):

    def setUp(self):

    Animal.objects.create(name="lion", sound="roar")

    Animal.objects.create(name="cat", sound="meow")

    def test_animals_can_speak(self):

    """Animals that can speak are correctly identified"""

    lion = Animal.objects.get(name="lion")

    cat = Animal.objects.get(name="cat")

    self.assertEqual(lion.speak(), ‘The lion says "roar"‘)

    self.assertEqual(cat.speak(), ‘The cat says "meow"‘)

    执行目录下所有的测试(所有的test*.py文件):运行测试的时候,测试程序会在所有以test开头的文件中查找所有的test cases(inittest.TestCase的子类),自动建立测试集然后运行测试
    python manage.py testanimals.tests

  55. 解释下Http协议

    HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
    HTTP协议的主要特点可概括如下:
    1.支持客户/服务器模式。

    2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

    3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

    4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

    5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

  56. 解释下Http请求头和常见响应状态码

    Accept:指浏览器或其他客户可以接爱的MIME文件格式。可以根据它判断并返回适当的文件格式。

    Accept-Charset:指出浏览器可以接受的字符编码。英文浏览器的默认值是ISO-8859-1.

    Accept-Language:指出浏览器可以接受的语言种类,如en或en-us,指英语。

    Accept-Encoding:指出浏览器可以接受的编码方式。编码方式不同于文件格式,它是为了压缩文件并加速文件传递速度。浏览器在接收到Web响应之后先解码,然后再检查文件格式。

    Cache-Control:设置关于请求被代理服务器存储的相关选项。一般用不到。

    Connection:用来告诉服务器是否可以维持固定的HTTP连接。HTTP/1.1使用Keep-Alive为默认值,这样,当浏览器需要多个文件时(比如一个HTML文件和相关的图形文件),不需要每次都建立连接。

    Content-Type:用来表名request的内容类型。可以用HttpServletRequest的getContentType()方法取得。

    Cookie:浏览器用这个属性向服务器发送Cookie。Cookie是在浏览器中寄存的小型数据体,它可以记载和服务器相关的用户信息,也可以用来实现会话功能。

    状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:

    1xx:指示信息–表示请求已接收,继续处理

    2xx:成功–表示请求已被成功接收、理解、接受

    3xx:重定向–要完成请求必须进行更进一步的操作

    4xx:客户端错误–请求有语法错误或请求无法实现

    5xx:服务器端错误–服务器未能实现合法的请求

    常见状态代码、状态描述、说明:

    200 OK     //客户端请求成功

    400 Bad Request  //客户端请求有语法错误,不能被服务器所理解

    401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用

    403 Forbidden  //服务器收到请求,但是拒绝提供服务

    404 Not Found  //请求资源不存在,eg:输入了错误的URL

    500 Internal Server Error //服务器发生不可预期的错误

    503 Server Unavailable  //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

  57. django models 中如何实现反向查找? 如a表中通过外键关联了b表, 那通过b表如何反查到a表中有多少记录关联到了b表中的某条记录
  58. django orm如何输入自定义的原少sql语句?
  59. 描述django orm query api中 Q语句与F语句的作用及区别
  60. django中如何实现ajax在post数据时出现的csrf 403 forbidden的问题?描述解决步骤
  61. django 自定义标签tag的作用,及配置步骤

前端篇

  1. 有哪项方式可以对一个DOM设置它的CSS样式?

    ?外部样式表,引入一个外部css文件
    ?内部样式表,将css代码放在 <head> 标签内部
    ?内联样式,将css样式直接定义在 HTML 元素内部

  2. CSS都有哪些选择器?

    ?派生选择器(用HTML标签申明)
    ?id选择器(用DOM的ID申明)
    ?类选择器(用一个样式类名申明)
    ?属性选择器(用DOM的属性申明,属于CSS2,IE6不支持,不常用,不知道就算了)
    除了前3种基本选择器,还有一些扩展选择器,包括

    ?后代选择器(利用空格间隔,比如div .a{  })
    ?群组选择器(利用逗号间隔,比如p,div,#a{  }) 
    那么问题来了,CSS选择器的优先级是怎么样定义的?

  3. CSS中可以通过哪些属性定义,使得一个DOM元素不显示在浏览器可视范围内?
    最基本的:

    设置display属性为none,或者设置visibility属性为hidden

    技巧性:

    设置宽高为0,设置透明度为0,设置z-index位置在-1000

  4. rgba()和opacity的透明效果有什么不同?

    答案: rgba()和opacity都能实现透明效果,但最大的不同是opacity作用于元素,以及元素内的所有内容的透明度,而rgba()只作用于元素的颜色或其背景色。(设置rgba透明的元素的子元素不会继承透明效果!)

  5. px和em的区别? 

    px和em都是长度单位,区别是,px的值是固定的,指定是多少就是多少,计算比较容易。em得值不是固定的,并且em会继承父级元素的字体大小。 浏览器的默认字体高都是16px。所以未经调整的浏览器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em。 

  6. 已知ID的Input输入框,希望获取这个输入框的输入值,怎么做?(不使用第三方框架)
  7. 希望获取到页面中所有的checkbox怎么做?(不使用第三方框架)
  8. 设置一个已知ID的DIV的html内容为xxxx,字体颜色设置为黑色(不使用第三方框架)
  9. 如何实现跨域请求?请描述实现原理
  10. 用js实现随机选取10--100之间的10个数字,存入一个数组,并排序。
  11. 原生JS的window.onload与Jquery的$(document).ready(function(){})有什么不同?如何用原生JS实现Jq的ready方法?
    1. window.onload()方法是必须等到页面内包括图片的所有元素加载完毕后才能执行。
    2. $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。
  12. 更多js http://blog.jobbole.com/78346/#q3

py 30 questions http://career.guru99.com/top-25-python-interview-questions/

原文地址:https://www.cnblogs.com/GhostCatcg/p/8151958.html

时间: 2024-08-28 13:56:30

Python 开发面试题的相关文章

Python开发面试题:面试中 8 个必考问题

‘金三银四’ 工作的人没有不知道的吧,其实7月也是跳槽面试的高峰期,咱们的学生大军也加入了找工作的浪潮.这里根据经验和实际情况总结了一下在Python面试中,关于Python开发面试题必考的8个问题,有需要的小伙伴,敲黑板认真看哦! 1.下面这段代码的输出结果是什么?请解释. def extendList(val, list=[]): list.append(val) return listlist1 = extendList(10)list2 = extendList(123,[])list3

oracle 数据库开发面试题

最近参加了4.5场面试,总结一下竞聘oracle 开发岗位最常问到哪些问题: 1.delete 与 truncate 区别? 1)truncate 是DDL语句,delete 是DML语句: 2)truncate 速度远快于 delete: 原因是:当我们执行delete操作时所有表数据先被copy到回滚表空间,数据量不同花费时间长短不一.而truncate是直接删除数据不进回滚表空间. 3)接(2)这也就导致了delete数据后我们可以运行rollback进行数据回滚,而truncate则是永

大公司移动前端开发面试题——做转盘

"如果有个做转盘的需求,你准备怎么做?设计师只会提供一个转盘的图片,其余都需要你完成,不能用框架和类库." "这个转盘没有惯性的需求,只要求在手机上,用手指拖转盘,能让转盘跟随手指转起来即可." 这是我在面试前端开发人员时,经常会问到的一道题.转盘是类似上图的样子. 博主之前在M公司和C公司的时候,经常用这题面试移动前端开发工程师.M公司的产品和设计是美国团队,在个别项目上UI设计比较大胆脱俗,对前端开发人员有较高的要求.C公司的只会JS的前端开发人员占比较大,产品

Web开发面试题

标签:Web开发面试题 HTML+CSS1.对WEB标准以及W3C的理解与认识标签闭合.标签小写.不乱嵌套.提高搜索机器人搜索几率.使用外 链css和js脚本.结构行为表现的分离.文件下载与页面速度更快.内容能被更多的用户所访问.内容能被更广泛的设备所访问.更少的代码和组件,容易维 护.改版方便,不需要变动页面内容.提供打印版本而不需要复制内容.提高网站易用性: 2.xhtml和html有什么区别HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言最主要的不同:XHTML

大公司移动前端开发面试题——做转盘[参考代码]

题目在此 http://www.cnblogs.com/arfeizhang/p/turntable.html 这几天一直在忙,终于找到时间把参考代码放出来了.大家参考一下. 参考代码考虑到让入行不久的前端也看得懂,没有进行封装.变量名也没有进行简写,尽量一看就明白. 图片随手在网上截的,也许没有对准圆心.这段代码只考虑了webkit内核的浏览器,没做兼容.重在让大家弄懂原理. :P 如果感到有些卡帧,可能是转盘图片带来的效果.在调试器上试过,能维持50-60帧,流畅度还是让人满意的.在LG G

前端开发面试题收集 JS

前端开发面试题收集-JS篇 收集经典的前端开发面试题 setTimeout的时间定义为0有什么用? javascript引擎是单线程处理任务的,它把任务放在队列中,不会同步执行,必须在完成一个任务后才开始另一个任务. 由于setTimeout可以把任务从某个队列中跳出成为新队列,因此能够得到期望的结果. 怎么理解this this指向的总是调用函数的那个对象. this一般情况下,是全局对象Global. 什么是闭包 闭包是一个概念,我的理解是函数里的函数,能够读取函数内部变量的函数. 就是将函

C/C++嵌入式开发面试题

C/C++嵌入式开发面试题 预处理器(Preprocessor) 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的. 3). 意识

PYTHON运维开发面试题整理

1.请使用Linux系统命令统计出establish状态链接数有多少? netstat -an |grep ESTABLISHED |wc -l -a (all)显示所有选项,默认不显示LISTEN相关-t (tcp)仅显示tcp相关选项-u (udp)仅显示udp相关选项-n 拒绝显示别名,能显示数字的全部转化成数字.-l 仅列出有在 Listen (监听) 的服務状态 -p 显示建立相关链接的程序名-r 显示路由信息,路由表-e 显示扩展信息,例如uid等-s 按各个协议进行统计-c 每隔一

入我新美大的Java后台开发面试题总结

静儿最近在总结一些面试题,那是因为做什么事情都要认真.面试也一样,静儿作为新美大金融部门的面试官,负责任的告诉大家,下面的问题回答不上来,面试是过不了的.不过以下绝不是原题,你会发现自己实力不过硬,最终肯定是被问出来的. 1>如何定位线上服务OOM问题 2>JVM的GC ROOTS存在于那些地方 3>mysql innodb怎样做查询优化 4>java cas的概念 下面静儿就以自己面试的标准简单回答一下这些题怎样回答算过关. 1>如何定位线上服务OOM问题 因为面试主要是看