吐血总结!100 道经典 Python 面试题集锦上(附答案)


本文由 简悦 SimpRead 转码, 原文地址 zhuanlan.zhihu.com

Python 是目前编程领域最受欢迎的语言。在本文中,我将总结 Python 面试中最常见的 100 个问题。每道题都提供参考答案,希望能够帮助你在 2019 年求职面试中脱颖而出,找到一份高薪工作。这些面试题涉及 Python 基础知识、Python 编程、数据分析以及 Python 函数库等多个方面。

1、Python 中的列表和元组有什么区别?

invalid image (图片无法加载)

9、Python 中有哪些常用的内置模块?

一些常用的内置模块包括:sys、math、random、data time、JSON。

10、Python 中的局部变量和全局变量是什么?

全局变量:在函数外或全局空间中声明的变量称为全局变量。这些变量可以由程序中的任何函数访问。
局部变量:在函数内声明的任何变量都称为局部变量。此变量存在于局部空间中,而不是全局空间中。

17、什么是__init__?

__init__是 Python 中的方法或者结构。在创建类的新对象 / 实例时,将自动调用此方法来分配内存。所有类都有__init__方法。

18、什么是 lambda 函数?

lambda 函数也叫匿名函数,该函数可以包含任意数量的参数,但只能有一个执行操作的语句。

19、Python 中的 self 是什么?

self 是类的实例或对象。在 Python 中,self 包含在第一个参数中。但是,Java 中的情况并非如此,它是可选的。它有助于区分具有局部变量的类的方法和属性。init 方法中的 self 变量引用新创建的对象,而在其他方法中,它引用其方法被调用的对象。

20、区分 break,continue 和 pass?

invalid image (图片无法加载)

21、[:: - 1} 表示什么?

[:: - 1] 用于反转数组或序列的顺序。

23、什么是 python 迭代器、生成器?

迭代器是可以遍历或迭代的对象。
返回可迭代项集的函数称为生成器。

24、如何在 Python 中生成随机数?

random 模块是用于生成随机数的标准模块。该方法定义为:

import random 
random.random

random.random()方法返回 [0,1] 范围内的浮点数。该函数生成随机浮点数。随机类使用的方法是隐藏实例的绑定方法。可以使用 Random 的实例来显示创建不同线程实例的多线程程序。其中使用的其他随机生成器是:

  1. randrange(a,b):它选择一个整数并定义 [a,b] 之间的范围。它通过从指定范围中随机选择元素来返回元素。它不构建范围对象。
  2. uniform(a,b):它选择一个在 [a,b) 范围内定义的浮点数
  3. normalvariate(mean,sdev):它用于正态分布,其中 mean 是平均值,sdev 是用于标准偏差的 sigma。
  4. 使用和实例化的 Random 类创建一个独立的多个随机数生成器。

26、如何在 python 中写注释?

Python 中的注释以#字符开头。也可以使用 doc-strings(三重引号中包含的字符串)进行注释。

29、你如何把字符串的第一个字母大写?

在 Python 中,capitalize() 函数可以将字符串的第一个字母大写。如果字符串在开头已经包含大写字母,那么它将返回原始字符串。

30、如何将字符串转换为全小写?

要将字符串转换为小写,可以使用 lower() 函数。

31、如何在 python 中注释多行?

注释多行代码时。所有要注释的行都要在开头前加 #。还可以使用快捷方式来注释多行,就是按住 Ctrl 键并在每个想要包含#字符的地方左键单击并键入一次#。

32、什么是 Python 中的文档 Docstrings?

Docstrings 实际上不是注释,它们是文档字符串。这些文档字符串在三引号内。它们没有分配给任何变量,因此有时也用于注释。

36、Python 中的字典是什么?

Python 中的内置数据类型称为字典。它定义了键和值之间的一对一关系。字典包含一对键及其对应的值。字典由键索引。

37、如何在 python 中使用三元运算符?

三元运算符是用于显示条件语句的运算符。这包含 true 或 false 值,并且必须为其评估语句。其基本语法为:

三元运算符是用于显示条件语句的运算符。这包含 true 或 false 值,并且必须为其评估语句。其基本语法为:

[on_true] if [expression] else [on_false] x,y = 25,50big = x if x <y else y

38、为什么使用 * args, kwargs?**

当我们不确定将多少个参数传递给函数,或者我们想要将存储的列表或参数元组传递给函数时,我们使用 * args。** 当我们不知道将多少关键字参数传递给函数时使用 kwargs,或者它可以用于将字典的值作为关键字参数传递。标识符 args 和 kwargs 是一个约定,你也可以使用 * bob 和 ** billy。

39、len() 函数有什么作用?

len() 函数可用于确定字符串,列表,数组等的长度。

40、在 Python 中 split(),sub(),subn() 功能。

如果要修改字符串,Python 的 “re” 模块提供了 3 种方法。他们是:

  • split() - 使用正则表达式模式将给定字符串 “拆分” 到列表中。
  • sub() - 查找正则表达式模式匹配的所有子字符串,然后用不同的字符串替换它们
  • subn() - 它类似于 sub(),并且还返回新字符串。

44、什么是 python 的内置类型?

Python 中的内置类型如下:整型、浮点型、复数、字符串、布尔等。

46、如何将值添加到 python 数组?

可以使用 append(),extend() 和 insert(i,x) 函数将元素添加到数组中。

47、如何删除 python 数组的值?

可以使用 pop() 或 remove() 方法删除数组元素。这两个函数之间的区别在于前者返回已删除的值,而后者则不返回。

49、深拷贝和浅拷贝有什么区别?

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

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

原作者:Python 语音识别
出处:Python 大本营
链接:吐血总结!100 个 Python 面试问题集锦


幻翼 2022年7月22日 11:18 收藏文档