一套北京上市公司的Python面试题解答, 让你明白基础扎实是多
![](https://img.haomeiwen.com/i9305082/d54ac6f7a6e712a9.jpg)
Python新手在谋求一份Python编程工作前,必须熟知Python的基础知识。既有基本的Python面试题,也有高阶版试题来指导你准备面试,试题均附有答案。面试题内容包括编码、数据结构、脚本撰写等话题。
1:Python有哪些特点和优点?
![](https://img.haomeiwen.com/i9305082/86eefb27b119474f.jpg)
2:深拷贝和浅拷贝之间的区别是什么?
![](https://img.haomeiwen.com/i9305082/3f01fa27e8900fe2.jpg)
![](https://img.haomeiwen.com/i9305082/2612e925aaf3a3d2.jpg)
![](https://img.haomeiwen.com/i9305082/131039d702ba36bf.jpg)
![](https://img.haomeiwen.com/i9305082/8fdc88bc868e59f4.jpg)
![](https://img.haomeiwen.com/i9305082/89ee12c077182bec.jpg)
3. 列表和元组之间的区别是?
![](https://img.haomeiwen.com/i9305082/bf934d1173310997.jpg)
会出现以下报错:
4. 解释一下Python中的三元运算子
![](https://img.haomeiwen.com/i9305082/ee878c2dd133021b.jpg)
![](https://img.haomeiwen.com/i9305082/cb21ec2998ca6dbf.jpg)
![](https://img.haomeiwen.com/i9305082/8601ca0fcdb807c0.jpg)
![](https://img.haomeiwen.com/i9305082/54fea5afde00d114.jpg)
![](https://img.haomeiwen.com/i9305082/997ccc6929f5c5e1.jpg)
5. 在Python中如何实现多线程?
一个线程就是一个轻量级进程,多线程能让我们一次执行多个线程。我们都知道,Python是多线程语言,其内置有多线程工具包。
![](https://img.haomeiwen.com/i9305082/ac90a04d7bdb0556.jpg)
6. 解释一下Python中的继承
继承能让我们重新使用代码,也能更容易的创建和维护应用。Python支持如下种类的继承:
![](https://img.haomeiwen.com/i9305082/46b9ed987e68a7df.jpg)
7. 什么是Flask?
![](https://img.haomeiwen.com/i9305082/e10c15f85428b1b3.jpg)
8. 在Python中是如何管理内存的?
Python有一个私有堆空间来保存所有的对象和数据结构。作为开发者,我们无法访问它,是解释器在管理它。但是有了核心API后,我们可以访问一些工具。Python内存管理器控制内存分配。
另外,内置垃圾回收器会回收使用所有的未使用内存,所以使其适用于堆空间。
9. 解释Python中的help()和dir()函数
![](https://img.haomeiwen.com/i9305082/cadddfeba5cf2b65.jpg)
![](https://img.haomeiwen.com/i9305082/61ce375ce05a076d.jpg)
![](https://img.haomeiwen.com/i9305082/ed5b39070ef79a8d.jpg)
![](https://img.haomeiwen.com/i9305082/debf5ed143d169ab.jpg)
运行结果为:
[‘annotations’, ‘call’, ‘class’, ‘closure’, ‘code’, ‘defaults’, ‘delattr’, ‘dict’, ‘dir’, ‘doc’, ‘eq’, ‘format’, ‘ge’, ‘get’, ‘getattribute’, ‘globals’, ‘gt’, ‘hash’, ‘init’, ‘init_subclass’, ‘kwdefaults’, ‘le’, ‘lt’, ‘module’, ‘name’, ‘ne’, ‘new’, ‘qualname’, ‘reduce’, ‘reduce_ex’, ‘repr’, ‘setattr’, ‘sizeof’, ‘str’, ‘subclasshook’]
10. 当退出Python时,是否释放全部内存?
答案是No。循环引用其它对象或引用自全局命名空间的对象的模块,在Python退出时并非完全释放。
另外,也不会释放C库保留的内存部分。
11. 什么是猴子补丁?
在运行期间动态修改一个类或模块。
![](https://img.haomeiwen.com/i9305082/413dd6424ff61052.jpg)
12. Python中的字典是什么?
字典是C++和Java等编程语言中所没有的东西,它具有键值对。
![](https://img.haomeiwen.com/i9305082/1acf014555cf2b99.jpg)
![](https://img.haomeiwen.com/i9305082/6022c2ec2d22996c.jpg)
13. 请解释使用args和*kwargs的含义
当我们不知道向函数传递多少参数时,比如我们向传递一个列表或元组,我们就使用*args。
![](https://img.haomeiwen.com/i9305082/a0cc6841b60b545c.jpg)
![](https://img.haomeiwen.com/i9305082/a7e312e526b61e3b.jpg)
![](https://img.haomeiwen.com/i9305082/3af160e4fcd898a2.jpg)
![](https://img.haomeiwen.com/i9305082/60289b4f4df51d72.jpg)
14. 请写一个Python逻辑,计算一个文件中的大写字母数量
![](https://img.haomeiwen.com/i9305082/f6f11bfc6a94132d.jpg)
![](https://img.haomeiwen.com/i9305082/35db69660745ef0b.jpg)
15. 什么是负索引?
![](https://img.haomeiwen.com/i9305082/c571aca164e0d73a.jpg)
![](https://img.haomeiwen.com/i9305082/91c017dc4715644b.jpg)
![](https://img.haomeiwen.com/i9305082/78d18db7165cfa67.jpg)
![](https://img.haomeiwen.com/i9305082/6ca9aa5ced7ca93c.jpg)
16. 如何以就地操作方式打乱一个列表的元素?
![](https://img.haomeiwen.com/i9305082/8996d05532191354.jpg)
![](https://img.haomeiwen.com/i9305082/778de13647c7c190.jpg)
17. 解释Python中的join()和split()函数
![](https://img.haomeiwen.com/i9305082/001ca4442ac2777b.jpg)
![](https://img.haomeiwen.com/i9305082/c7eebff7db2956e5.jpg)
![](https://img.haomeiwen.com/i9305082/7d313856d8ba8722.jpg)
![](https://img.haomeiwen.com/i9305082/3b4fc97b3325b486.jpg)
18. Python区分大小写吗?
如果能区分像myname和Myname这样的标识符,那么它就是区分大小写的。也就是说它很在乎大写和小写。我们可以用Python试一试:
![](https://img.haomeiwen.com/i9305082/c7ecb48696e5bf2a.jpg)
![](https://img.haomeiwen.com/i9305082/9421162d425b87a9.jpg)
19. Python中的标识符长度能有多长?
在Python中,标识符可以是任意长度。此外,我们在命名标识符时还必须遵守以下规则:
![](https://img.haomeiwen.com/i9305082/4921df9543f57fa5.jpg)
![](https://img.haomeiwen.com/i9305082/8b8fb98c489ca69a.jpg)
20. 怎么移除一个字符串中的前导空格?
字符串中的前导空格就是出现在字符串中第一个非空格字符前的空格。我们使用方法Istrip()可以将它从字符串中移除。
![](https://img.haomeiwen.com/i9305082/c0b537032c7470ff.jpg)
![](https://img.haomeiwen.com/i9305082/829ed9698e647d9d.jpg)
21. 怎样将字符串转换为小写?
我们使用lower()方法。
![](https://img.haomeiwen.com/i9305082/ecb7af6ddc4f5ea6.jpg)
另外,使用isupper()和islower()方法检查字符春是否全为大写或小写。
![](https://img.haomeiwen.com/i9305082/6a225e2afa1e627c.jpg)
![](https://img.haomeiwen.com/i9305082/25f97380de0fd70d.jpg)
22. Python中的pass语句是什么?
在用Python写代码时,有时可能还没想好函数怎么写,只写了函数声明,但为了保证语法正确,必须输入一些东西,在这种情况下,我们会使用pass语句。
![](https://img.haomeiwen.com/i9305082/c1e3b2fb101f1913.jpg)
![](https://img.haomeiwen.com/i9305082/c1d4844327fd684c.jpg)
![](https://img.haomeiwen.com/i9305082/995a33610d961c15.jpg)
![](https://img.haomeiwen.com/i9305082/a33f892b6666b147.jpg)
![](https://img.haomeiwen.com/i9305082/04704a914fe68aad.jpg)
![](https://img.haomeiwen.com/i9305082/b4235952a2e5d9b8.jpg)
![](https://img.haomeiwen.com/i9305082/8b58870b19e28696.jpg)
24. 解释一下Python中的//,%和 ** 运算符
//运算符执行地板除法(向下取整除),它会返回整除结果的整数部分。
![](https://img.haomeiwen.com/i9305082/5bcb49c46de48b6b.jpg)
![](https://img.haomeiwen.com/i9305082/ed26f7a09d4b8302.jpg)
25. 在Python中有多少种运算符?解释一下算数运算符。
在Python中,我们有7种运算符:算术运算符、关系运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符。
我们有7个算术运算符,能让我们对数值进行算术运算:
1.加号(+),将两个值相加
![](https://img.haomeiwen.com/i9305082/afc186f9d0399865.jpg)
![](https://img.haomeiwen.com/i9305082/a2ea62050d617bf8.jpg)
26. 解释一下Python中的关系运算符
![](https://img.haomeiwen.com/i9305082/c475fb1e73e2474a.jpg)
![](https://img.haomeiwen.com/i9305082/98597f3f0fe6f5fe.jpg)
![](https://img.haomeiwen.com/i9305082/eb96cb2a345395e6.jpg)
![](https://img.haomeiwen.com/i9305082/36aed5b50bc1e516.jpg)
![](https://img.haomeiwen.com/i9305082/b67bbc95c257876b.jpg)
![](https://img.haomeiwen.com/i9305082/599f6c40f4ad2f51.jpg)
27. 解释一下Python中的赋值运算符
这在Python面试中是个重要的面试问题。
我们将所有的算术运算符和赋值符号放在一起展示:
![](https://img.haomeiwen.com/i9305082/852b499d04d0a1dc.jpg)
![](https://img.haomeiwen.com/i9305082/bed26f4b92651152.jpg)
28. 解释一下Python中的逻辑运算符
Python中有3个逻辑运算符:and,or,not。
![](https://img.haomeiwen.com/i9305082/5f041ba13ac10e88.jpg)
29. 解释一下Python中的成员运算符
通过成员运算符‘in’和‘not in’,我们可以确认一个值是否是另一个值的成员。
![](https://img.haomeiwen.com/i9305082/fd8b06484d58dd08.jpg)
30. 解释一下Python中的身份运算符
这也是一个在Python面试中常问的问题。
通过身份运算符‘is’和‘is not’,我们可以确认两个值是否相同。
![](https://img.haomeiwen.com/i9305082/bcf2cadab5bf7c17.jpg)
31. 讲讲Python中的位运算符
该运算符按二进制位对值进行操作。
![](https://img.haomeiwen.com/i9305082/c37f63acce983fde.jpg)
![](https://img.haomeiwen.com/i9305082/b3cad443d5232047.jpg)
[图片上传失败...(image-b4592b-1533967584110)]
![](https://img.haomeiwen.com/i9305082/b7098cef18dee6bd.jpg)
![](https://img.haomeiwen.com/i9305082/3677dfaa44f68bca.jpg)
![](https://img.haomeiwen.com/i9305082/e7162b8a19fb3b4e.jpg)
32. 在Python中如何使用多进制数字?
我们在Python中,除十进制外还可以使用二进制、八进制和十六进制。
二进制数字由0和1组成,我们使用 0b 或 0B 前缀表示二进制数。
![](https://img.haomeiwen.com/i9305082/bda5ce7e278e930b.jpg)
33. 怎样获取字典中所有键的列表?
使用 keys() 获取字典中的所有键
![](https://img.haomeiwen.com/i9305082/1452988466606002.jpg)
34. 为何不建议以下划线作为标识符的开头
因为Python并没有私有变量的概念,所以约定速成以下划线为开头来声明一个变量为私有。所以如果你不想让变量私有,就不要使用下划线开头。
![](https://img.haomeiwen.com/i9305082/9ac265d0a4917507.jpg)
36. 元组的解封装是什么?
![](https://img.haomeiwen.com/i9305082/272b13cf9fb6d463.jpg)
首先我们来看解封装: