python面试秘诀_短时间如何通过python面试?

50道Python面试题目,可以临阵磨枪用一用!

1. 什么是Python?使用Python有什么好处?

Python是一种具有对象,模块,线程,异常和自动内存管理的编程语言。

python的有点是简单,易用,可移植,可扩展,内置数据结构,并且是开源的。

2. 什么是PEP 8?

PEP 8是一个编码约定,是一组建议,内容是如何编写更具可读性的Python代码。

3. 什么是pickling和unpickling?

为了让用户在平常的编程和测试时保存复杂的数据类型,python提供了标准模块,称为pickle.这个模块可以将几乎任何的python对象转换为字符串表示,这个过程称为pickling.而要从里面重新构造回原来的对象,则称为unpickling。在pickling和unpicking之间,表示这些对象的字符串表示,可以存于一个文件,也可以通过网络远程机器间传输。

4. 如何理解Python是解释型语言?

Python语言是一种解释性语言。Python程序直接从源代码运行。由源代码转换为中间语言,中间语言被翻译为可执行的机器语言。

5. 如何在Python中管理内存?

Python内存由Python私有堆空间管理。所有Python对象和数据结构都位于私有堆空间中。程序员无法访问这个私有堆空间,解释器负责处理这个Python私有堆空间。

Python内存管理器的Python堆空间的分配,核心API允许程序员使用一些工具来编写代码。

Python还拥有一个内置的grabage收集器,它回收所有未使用的内存,并释放内存并使其可用到堆空间。

6. 有哪些工具可以发现编码错误或执行静态分析?

PyChecker是一个静态分析工具,可以检测Python源代码中的错误并警告该错误的样式和复杂性。Pylint是另一个验证模块是否符合编码标准的工具。

7. 什么是Python装饰器?

是对函数的一种包装。它能使函数的功能得到扩充,而同时不用修改函数本身的代码。能够增加函数执行前、执行后的行为,而不需对调用函数的代码做任何改变。

8. list和tuple有什么区别?

列表和元组之间的区别在于,列表是可变的,而元组则不是。例如,可以将元组作为字典的键进行哈希处理。

9. 参数如何通过值或引用传递?

Python中的所有内容都是一个对象,所有变量都包含对该对象的引用。参考值根据功能而定;因此无法更改引用的值。但是,如果对象是可变的,则可以更改。

10. 什么是Dict和列表解析?

它们是语法构造,可简化基于现有可迭代对象的字典或列表的创建。

11. python提供了哪些内置类型?

可变内置类型:List、Sets、Dictionaries

不可变内置类型:Strings、Tuples、Numbers

12. Python中的名称空间是什么?

在Python中,引入的每个名称都有其生存的地方,可以被使用。这称为名称空间。这就像一个将变量名映射到放置的对象的盒子。每当搜索变量时,都会搜索此框以获取相应的对象。

13. 什么是Python中的lambda?

它是一个单表达式匿名函数,通常用作内联函数。

14. 为什么python中的lambda表单没有语句?

python中的lambda表单没有语句,因为它用于创建新的函数对象,然后在运行时返回这些函数对象。

15. Python中的pass是什么?

传递表示,无操作的Python语句,或者换句话说,它是复合语句中的占位符,该位置应留有空白,而无需在其中写任何内容。

16. 在Python中,迭代器是什么?

在Python中,迭代器用于迭代一组元素,例如列表之类的容器。

17. Python中的unittest是什么?

Python中的单元测试框架称为unittest。它支持共享设置,自动化测试,关闭代码等。

18. 在Python中切片是什么?

Slicing是一种在有序的对象类型中(数组,元组,字符串)节选某一段的语法。

19. Python中的generator是什么?

python generator是一个简单的创建iterator的途径,它是一个可以返回迭代器对象的函数。

20. Python中的docstring是什么?

Python文档字符串称为docstring,它是一种记录Python函数,模块和类的方式。

21. 如何在Python中复制对象?

要在Python中复制对象,一般情况下,可以使用copy.copy()或copy.deepcopy()。这两个函数。

22. Python中的负索引是什么?

Python序列可以正负索引。对于正索引,0是第一个索引,1是第二个索引,依此类推。对于负索引,(-1)是最后一个索引,(-2)是倒数第二个索引,依此类推。

23. 如何将数字转换为字符串?

可以使用内置函数str() 将数字转换为字符串。如果需要八进制或十六进制表示,可以使用函数oct()或hex()。

24. Xrange和range有什么区别?

range返回的是一个list对象,而xrange则不会直接生成一个list,而是每次调用返回其中的一个值,内存空间使用极少,因而性能非常好。

25. Python中的模块和封装是什么?

在Python中,模块是构建程序的方式。每个Python程序文件都是一个模块,该模块会导入其他模块,例如对象和属性。

Python程序的封装可以封装成一个包,一个包可以包含多个模块。

25)Python中的模块和封装是什么?

在Python中,模块是构造程序的方式。每个Python程序文件都是一个模块,该模块会导入其他模块,例如对象和属性。

封装可以封装模块。

26)Python中的局部变量和全局变量的使用规则是什么?

局部变量:仅可在某个对象或函数内部使用,无法被其他对象或函数所引用

全局变量:可以被本程序所有的对象和函数引用。

27)如何在模块之间共享全局变量?

首先创建一个模块,将这个模块导入程序的所有模块中,来由该模块提供全局变量。

28)如何在Unix运行Python脚本?

在建立一个python文件后,比如test.py,在源代码头部添加Python路径,比如“#! /usr/bin/python”

然后更改文本为可执行文件 chmod +x test.py

再执行即可:./test.py

29)说明如何在Python中删除文件?

使用命令 os.remove(filename)或 os.unlink(filename)

30)说明如何在Python中生成随机数?

代码如下:

import random

random.random()

以上代码可以得到[0,1)的随机浮点数

31)如何从C访问用Python编写的模块?

Module = =PyImport_ImportModule(“”)

32)Python中//运算符代表什么?

//用于将两个操作数相除,结果仅显示小数点前的数字。例如,9 // 2 = 4

33)说说Python的五个好处?

强大的库的支持

不需要显式的内存管理,解释器本身会将内存分配给新变量并自动释放

易于阅读

代码简洁,适合零基础学习

具有内置数据类型,无需声明变量

34)split函数有什么作用?

通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串

35)什么是Flask,有什么好处?

Flask是Python Web微框架。

有以下优点:

框架很轻量

更新时依赖小

专注于安全方面的bug

36)Django,Pyramid和Flask有什么区别?

Flask是一个微框架,主要面向需求简单的小应用。Pyramid和Django都是面向大的应用,但是在扩展性和灵活性上走了不同的路。Pyramid关注灵活性,让开发者选择合适的工具来开发项目。这意味着开发者可以选择数据库,URL结构,模板风格等等。Django的目标是提供web应用开发的一站式解决方案,所以相应的模块也就比较多。

Django包含了一个ORM模块,而Pyramid和Flask是让开发者来选择如何存储数据。

37)什么是Flask-WTF?

Flask-wtf是一个用于表单处理,校验并提供csrf验证的功能的扩展库

38)Flask脚本的常用方式是什么?

在shell中运行脚本文件

在python编译器中run

39)如何在Flask中访问会话?

会话(seesion)会话数据存储在服务器上。 会话是客户端登录到服务器并注销的时间间隔。 需要在此会话中进行的数据存储在服务器上的临时目录中。

from flask import session导入会话对象

session['name'] = 'admin'给会话添加变量

session.pop('username', None)删除会话的变量

40)Python Flask请求数据库的方法?

在脚本中以用第三方库正常连接,用sql语句正常操作数据库,如mysql关系型数据库的pymsql库

用ORM来进行数据库连接,flask中典型的flask_sqlalchemy,已面向对象的方式进行数据库的连接与操作

41) Flask框架依赖组件?

Route(路由)

templates(模板)

Models(orm模型)

blueprint(蓝图)

Jinja2模板引擎

42) 列举使用过的Flask第三方组件?

flask_bootstrap

flask-WTF

flask_sqlalchemy

43) 解释什么是Dogpile效果?如何防止这种影响?

一个Dogpile网站的效果,当一个网站的缓存过期情况发生,但它是从用户大量不同的请求命中。这可能会导致许多不同的问题,从延迟峰值到完全崩溃。

一个名为信号量锁的系统用于防止Dogpiles发生。

44) Python2和Python3的区别

Print函数

Unicode

除法运算

异常

xrange

八进制字面量表示

不等运算符

去掉了repr表达式``

45)深拷贝和浅拷贝有什么区别?

在创建新实例类型时使用浅拷贝,并保留在新实例中复制的值。浅拷贝用于复制引用指针,就像复制值一样。这些引用指向原始对象,并且在类的任何成员中所做的更改也将影响它的原始副本。浅拷贝允许更快地执行程序,它取决于所使用的数据的大小。

深拷贝用于存储已复制的值。深拷贝不会将引用指针复制到对象。它引用一个对象,并存储一些其他对象指向的新对象。原始副本中所做的更改不会影响使用该对象的任何其他副本。由于为每个被调用的对象创建了某些副本,因此深拷贝会使程序的执行速度变慢。

46)如何在python中使用三元运算符?

max = a if a>b else b

47)如何将字符串转换为数字?

代码如下:

str1=”10”;

print(int(str1));

48)python负指数是什么?

序列索引的指数由正数和负数组成。指数 “ 0”作为第一个索引,“ 1”作为第二个索引,以此类推。负数的索引从代表序列中最后开始, “ -1”代表倒数第一个索引,“-2”代表倒数第二个索引,以此类推。

49)全局变量对线程安全的成因是什么?

线程安全问题都是由全局变量及静态变量引起的。但是,如果每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;如果有多个线程同时执行写操作,一般都需要考虑线程同步,否则就可能影响线程安全。

50)编写一个程序,让python读写二进制数据。

import struct

f = open(file-name, "rb")

s = f.read(8)

x, y, z = struct.unpack(">hhl", s)

以上就是精选的Python 面试过程中常见的50道面试题,希望可以帮到你。

送上学习福利,学掌门的超全栈Python公开课程,戳下方即可领取:2020 超全栈开发学习视频+讲义领取​kbyx0011.mikecrm.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值