Python 面试时需要知道的 10 个问题及详解
Python 面试时需要知道的 10 个问题及详解
在 Python 的面试中,考察的重点通常是基础知识、编程思维和实际应用能力。掌握 Python 的核心概念不仅能帮助你在面试中脱颖而出,还能让你在实际工作中高效编写代码。下面我们将详细解答 10 个 Python 面试中常见的问题,帮助你更加深入理解 Python 的基本特性和应用。
1. Python 中的全局、受保护和私有属性是什么?
在 Python 中,属性的访问权限并不像 Java 或 C++ 那样严格区分,但我们可以通过一些约定来控制变量的访问范围。理解这些修饰符能帮助你编写更具可维护性和安全性的代码。
访问权限:
_
)表示,它表示这个属性是类内部或子类中使用的,不建议在类外部访问。__
)前缀表示,表示该属性只能在类内部使用,无法直接访问或修改。示例代码:
class Mobile:
m1 = "Samsung Mobiles" # Global attribute (Public)
def __init__(self):
self._m2 = "Costly mobiles" # Protected attribute
def __price(self):
self.__m3 = "Premium mobiles" # Private attribute
return self.__m3
mobile = Mobile()
print(mobile.m1) # 访问公共属性
# 不能直接访问受保护属性和私有属性
# print(mobile._m2) # 不建议访问
# print(mobile.__price()) # 会抛出错误
总结:
2. Python 中的关键字是什么?
Python 关键字是语言的保留字,它们具有特殊的意义,并且不能作为标识符(变量名、函数名等)。理解和记住这些关键字是掌握 Python 语法的第一步。
Python 中的关键字(Python 3.7):
False, class, finally, is, return, None, continue, for, lambda, try, True, def,
from, nonlocal, while, and, del, global, not, with, if, for, yield, assert, else,
import, pass, break, except
你可以使用 Python 自带的 keyword
模块查看当前版本的所有关键字:
import keyword
print(keyword.kwlist)
小贴士:
if
、else
控制流结构,def
用于定义函数等。3. Python 中列表和元组有什么区别?
列表和元组是 Python 中的基本数据结构,都可以存储多个元素,但它们有着不同的特性和用途。理解它们的区别能帮助你在代码中做出正确的数据结构选择。
主要区别:
可变性:
性能:
方法数量:
append()
、remove()
等,适合频繁操作。count()
和 index()
。示例:
# 列表:可变数据结构
list_example = [100, "伟大的学问", 30]
list_example.append("新增元素") # 可以修改
print(list_example)
# 元组:不可变数据结构
tuple_example = (100, "伟大的学问", 20)
# tuple_example.append("新增元素") # 不能修改,抛出错误
print(tuple_example)
总结:
4. 如何连接两个元组?
元组是不可变的,但我们可以通过使用 +
运算符将两个元组合并成一个新的元组。
示例:
tup1 = (1, "a", True)
tup2 = (4, 5, 6)
# 使用 + 运算符连接两个元组
result = tup1 + tup2
print(result) # 输出 (1, "a", True, 4, 5, 6)
总结:
+
运算符可以将元组连接起来,生成一个新的元组。5. Python 中的函数是什么?
函数是组织好的、可重用的代码块。Python 中的函数可以是内置的,也可以是用户定义的。理解函数的定义和使用是 Python 编程的重要部分。
函数定义:
函数使用 def
关键字定义,可以接受输入参数,并返回一个结果。
示例:
def greet(name):
return f"Hello, {name}!"
print(greet("Alice")) # 输出 "Hello, Alice!"
总结:
def
关键字。6. 如何初始化一个只有零的 5×5 Numpy 数组?
Numpy 是一个非常强大的科学计算库,可以高效地进行数组操作。创建一个全零的 5×5 数组非常简单。
示例:
import numpy as np
# 创建一个 5x5 的零矩阵
n1 = np.zeros((5, 5))
print(n1)
输出:
[[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]]
总结:
np.zeros()
可以创建一个指定形状的全零矩阵。7. 什么是 Pandas?
Pandas 是 Python 中用于数据分析的一个开源库,提供了两种主要的数据结构:DataFrame
和 Series
。它能方便地进行数据清洗、处理、分析等工作,特别适用于数据科学和机器学习。
主要特点:
示例:
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [24, 27, 22]}
df = pd.DataFrame(data)
print(df)
8. 什么是数据框(DataFrame)?
DataFrame
是 Pandas 中的核心数据结构,是一个二维的表格形式的数据。它既可以存储数值型数据,也可以存储字符串等其他类型的数据。你可以方便地对 DataFrame
进行数据清洗、聚合、筛选等操作。
示例:
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [24, 27, 22]}
df = pd.DataFrame(data)
print(df)
9. 什么是 Pandas 系列(Series)?
Series
是 Pandas 的一维数据结构,类似于列表或数组。它由一组数据和相应的索引组成。
示例:
import pandas as pd
data = [1, 2, 3, 4, 5]
series = pd.Series(data)
print(series)
10. 你对 Pandas groupby 有什么理解?
groupby
是 Pandas 中非常强大的功能,用于按指定列对数据进行分组,接
着可以对每个分组应用聚合操作(例如求和、求平均等)。
示例:
import pandas as pd
df = pd.DataFrame({'Vehicle': ['Etios', 'Lamborghini', 'Apache200', 'Pulsar200'],
'Type': ['car', 'car', 'motorcycle', 'motorcycle']})
grouped = df.groupby('Type').count()
print(grouped)
作者:迪小莫学AI