Python 面试问题
此页面包含一些典型的 Python 面试问题和答案。
Python 面试问题
这些问题和答案涵盖了一些在面试中经常讨论的基本 Python 概念。
1) 全局作用域和局部作用域有什么区别?
- 在函数内部创建的变量属于该函数的局部作用域,只能在该函数内部使用。
- 在 Python 代码的主体中创建的变量是全局变量,属于全局作用域。全局变量在任何作用域(全局和局部)中都可以访问。
2) Python 中的迭代器是什么?
- 迭代器是一个包含可计数数量值的**对象**。
- 迭代器是一个可以被迭代的对象,这意味着你可以遍历所有值。
- 从技术上讲,在 Python 中,迭代器是一个实现了迭代器协议的对象,该协议包含 __iter__() 和 __next__() 方法。
3) Python 中的 __init__() 函数是什么?
- Python 中的所有类都包含一个名为 __init__() 的函数,该函数在类被初始化时总是被执行。
- 我们可以使用 __init__() 函数来为对象属性赋值,或执行对象创建时必须执行的其他操作。
4) 什么时候应该在 Python 中使用 lambda 函数?
- 当需要一个匿名函数在短时间内使用时,使用 lambda 函数。
5) 列表、元组和集合之间的区别是什么?
- 列表、元组和集合都用于在单个变量中存储多个项。
- 列表是一个有序且可变的数据集合(可以添加、删除和更改元素)。
- 元组是一个有序且不可变的数据集合(不能添加、删除或更改元素)。
- 集合是一个无序、不可变且无索引的数据集合。
6) 如何检查字符串中所有字符是否都是字母数字字符?
- 可以使用 isalnum() 方法,如果所有字符都是字母数字字符(即字母 (a-z) 和数字 (0-9)),则返回 True。
7) 如何将字符串转换为整数?
- 可以使用 int() 函数,例如
num = "5"
convert = int(num)
8) Python 中的缩进是什么,为什么它很重要?
- 缩进指的是代码行开头的空格。在其他编程语言中,代码中的缩进仅用于可读性,而在 Python 中,缩进非常重要。
- Python 使用缩进来表示代码块。
- 如果你省略缩进,Python 会给你一个错误。
9) 在 Python 中,输出变量或对象类型的正确语法是什么?
print(type(x))
10) 哪个集合不允许重复成员?
- 集合
11) Python 中的继承是什么?
- 继承允许我们定义一个从另一个类继承所有方法和属性的类。
- 父类是从中继承的类,也称为基类。
- 子类是从另一个类继承的类,也称为派生类。
12) 以下代码的输出是什么?
x = 41
if x > 10:
print("Above ten,")
if x > 20:
print("and also above 20!")
else:
print("but not above 20.")
- 高于十,
而且也高于 20!
13) 你能列出 Python 的主要内置数据类型吗,分类?
- 文本类型:
str
- 数字类型:
int
,float
,complex
- 序列类型:
list
,tuple
,range
- 映射类型:
dict
- 集合类型:
set
,frozenset
- 布尔类型:
bool
- 二进制类型:
bytes
,bytearray
,memoryview
14) 成员运算符是什么?
成员运算符用于测试序列是否存在于对象中。
in
和not in
运算符是这些运算符的示例
x = ["apple", "banana"]
print("banana" in x) # 返回 True
x = ["apple", "banana"]
print("pineapple" not in x) # 返回 True
15) 哪个 语句 可用于避免 if
语句没有内容时出现错误?
pass
语句
16) 什么是任意参数?
- 任意参数通常在 Python 文档中缩写为
*args
。 - 如果你不知道将传递给函数多少个参数,在函数定义中参数名前添加一个
*
。这样,函数将接收一个参数元组,并且可以根据需要访问这些项。
17) 如何在 Python 中创建和使用模块?
要创建模块,只需将你想要在文件扩展名为
.py
的文件中保存的代码def greeting(name)
print("Hello, " + name)-
现在我们可以使用我们刚刚创建的模块,使用
import
语句import mymodule
mymodule.greeting("Jonathan")
18) 你可以只写 list2 = list1
来复制 Python 中的列表吗?
- 不能,因为:
list2
只是一个对list1
的 *引用*,对list1
做出的更改也会自动在list2
中进行。 - 要复制列表,可以使用
copy()
或list()
方法。
19) 如何返回字符串中的一系列字符?
- 可以使用“切片语法”返回一系列字符。
- 指定起始索引和结束索引,用冒号分隔,以返回字符串的一部分,例如
获取从位置 2 到位置 5(不包含)的字符
b = "Hello, World!"
print(b[2:5])
20) Python 中的类是什么,如何使用它?
- 类就像一个对象构造函数,或创建对象的“蓝图”。
- 可以使用 class 关键字创建类class MyClass
x = 5现在我们可以使用名为 MyClass 的类来创建对象
创建一个名为 p1 的对象,并打印 x 的值
p1 = MyClass()
print(p1.x)