100 个基本 Python 面试问题第四部分(57-68)

简介: 100 个基本 Python 面试问题第四部分

Q-57:字典在 Python 中有什么用?


字典有一组对象(键)映射到另一组对象(值)。Python 字典表示唯一键到值的映射。


它们是可变的,因此不会改变。与键关联的值可以是任何 Python 类型。


Q-58:Python 列表是链表吗?


Python 列表是一个变长数组,它不同于 C 风格的链表。


在内部,它有一个用于引用其他对象的连续数组,并在列表头结构中存储指向数组变量及其长度的指针。


这里有一些关于类和对象的 Python 面试问题。


回到目录


Q-59:Python 中的 Class 是什么?


Python 支持面向对象编程,并提供了几乎所有的 OOP 特性以供程序使用。


Python 类是创建对象的蓝图。它定义成员变量并获取与它们相关联的行为。


我们可以通过使用关键字“class”来实现。对象是从构造函数创建的。这个对象代表类的实例。


在 Python 中,我们通过以下方式生成类和实例。


>>>class Human: 
...     pass
>>>man = Human() 
>>>print(man)
<__main__.Human object at 0x0000000003559E10>


回到目录


Q-60:Python 类中的属性和方法是什么?


如果一个类没有定义任何功能,它就毫无用处。我们可以通过添加属性来实现。它们用作数据和函数的容器。我们可以在类体内直接添加一个属性。


>>> class Human:
...     profession = "programmer" 
>>> man = Human()
>>> print(man.profession)
programmer


添加属性后,我们可以继续定义函数。通常,我们称它们为方法。在方法签名中,我们总是必须为第一个参数提供一个 self 关键字。


>>> class Human:
    profession = "programmer"
    def set_profession(self, new_profession):
        self.profession = new_profession      
>>> man = Human()
>>> man.set_profession("Manager")
>>> print(man.profession)
Manager


Q-61:如何在运行时为 Class 属性赋值?


我们可以在运行时指定属性的值。我们需要添加一个 init 方法并将输入传递给对象构造函数。请参阅以下示例来说明这一点。


>>> class Human:
    def __init__(self, profession):
        self.profession = profession
    def set_profession(self, new_profession):
        self.profession = new_profession
>>> man = Human("Manager")
>>> print(man.profession)
Manager


Q-62:Python 编程中的继承是什么?


继承是一种 OOP 机制,它允许对象访问其父类功能。它将基类功能传递给孩子。


image.png


我们故意抽象出不同类中的相似代码。


公共代码在基类中,子类对象可以通过继承访问它。看看下面的例子。


class PC: # 基类
    processor = "Xeon" # 通用属性
    def set_processor(self, new_processor):
        processor = new_processor
class Desktop(PC): # 派生类
    os = "Mac OS High Sierra" # 个性化属性
    ram = "32 GB"
class Laptop(PC): # 派生类
    os = "Windows 10 Pro 64" # 个性化属性
    ram = "16 GB"
desk = Desktop()
print(desk.processor, desk.os, desk.ram)
lap = Laptop()
print(lap.processor, lap.os, lap.ram)


输出:

Xeon Mac OS High Sierra 32 GB

Xeon Windows 10 Pro 64 16 GB


Q-63:Python 中的组合是什么?

image.png

为了演示组合,我们需要实例化类中的其他对象,然后使用这些实例。

class PC: # 基类
    processor = "Xeon" # 通用属性
    def __init__(self, processor, ram):
        self.processor = processor
        self.ram = ram
    def set_processor(self, new_processor):
        processor = new_processor
    def get_PC(self):
        return "%s cpu & %s ram" % (self.processor, self.ram)
class Tablet():
    make = "Intel"
    def __init__(self, processor, ram, make):
        self.PC = PC(processor, ram) # 作品
        self.make = make
    def get_Tablet(self):
        return "Tablet with %s CPU & %s ram by %s" % (self.PC.processor, self.PC.ram, self.make)
if __name__ == "__main__":
    tab = Tablet("i7", "16 GB", "Intel")
    print(tab.get_Tablet())

Q-64:Python 程序中的错误和异常是什么?


错误是程序中可能导致其异常退出的编码问题。


相反,异常的发生是由于外部事件的发生中断了程序的正常流程。




Q-65:你如何在 Python 中使用 Try/Except/Finally 处理异常?


Python 制定了 Try、Except、Finally 结构来处理错误和异常。我们将缩进的不安全代码括在 try 块下。我们可以将回退代码保留在 except 块中。任何打算最后执行的指令都应该在 finally 块下。


try:
    print("在 try 块中执行代码")
    print(exception)
except:
    print("进入except块")
finally:
    print("到达最后一个区块")
输出是:
在 try 块中执行代码
进入except块
到达最后一个区块



Q-66:你如何为 Python 中的预定义条件引发异常?


我们可以根据某些条件引发异常。


例如,如果我们希望用户只输入奇数,否则会引发异常。


# 示例 - 引发异常
while True:
    try:
        value = int(input("输入一个奇数-"))
        if value%2 == 0:
            raise ValueError("由于无效输入退出!!!")
        else:
            print("输入的值为: %s" % value)
    except ValueError as ex:
        print(ex)
        break
输出是:
输入一个奇数- 2
由于无效输入退出!!!
输入一个奇数- 1
输入的值为: 1
输入一个奇数-


Q-67:什么是 Python 迭代器?


Python 中的迭代器是类似数组的对象,允许在下一个元素上移动。我们在遍历循环时使用它们,例如在“for”循环中。


Python 库没有。的迭代器。例如,一个列表也是一个迭代器,我们可以在它上面启动一个 for 循环。




Q-68:Iterator 和 Iterable 有什么区别?


列表、元组、字典和集合等集合类型都是可迭代对象,而它们也是可迭代容器,在遍历时返回迭代器。



目录
相关文章
|
13天前
|
Java C++ Python
【面试宝典】深入Python高级:直戳痛点的题目演示(下)
【面试宝典】深入Python高级:直戳痛点的题目演示(下)
|
16天前
|
设计模式 Unix Python
【面试宝典】深入Python高级:直戳痛点的题目演示(上)
【面试宝典】深入Python高级:直戳痛点的题目演示(上)
|
3月前
|
数据采集 机器学习/深度学习 数据可视化
了解数据科学面试中的Python数据分析重点,包括Pandas(DataFrame)、NumPy(ndarray)和Matplotlib(图表绘制)。
【7月更文挑战第5天】了解数据科学面试中的Python数据分析重点,包括Pandas(DataFrame)、NumPy(ndarray)和Matplotlib(图表绘制)。数据预处理涉及缺失值(dropna(), fillna())和异常值处理。使用describe()进行统计分析,通过Matplotlib和Seaborn绘图。回归和分类分析用到Scikit-learn,如LinearRegression和RandomForestClassifier。
85 3
|
3月前
|
Python
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
|
3月前
|
存储 算法 索引
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
|
3月前
|
算法 Java Linux
python中的面试常考知识点
python中的面试常考知识点
|
5月前
|
存储 数据可视化 算法
最新Python-Matplotlib可视化(9)——精通更多实用图形的绘制,2024年最新小米面试题库
最新Python-Matplotlib可视化(9)——精通更多实用图形的绘制,2024年最新小米面试题库
最新Python-Matplotlib可视化(9)——精通更多实用图形的绘制,2024年最新小米面试题库
|
5月前
|
数据采集 Java 数据挖掘
最新Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测!,2024年最新网易云java面试
最新Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测!,2024年最新网易云java面试
最新Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测!,2024年最新网易云java面试
|
5月前
|
数据采集 算法 网络协议
最新Python 面试常见问题(1),2024年最新面试官必问的10个问题
最新Python 面试常见问题(1),2024年最新面试官必问的10个问题
最新Python 面试常见问题(1),2024年最新面试官必问的10个问题
|
5月前
|
数据采集 XML 程序员
最新用Python做垃圾分类_python垃圾分类代码用key和format,5年经验Python程序员面试27天
最新用Python做垃圾分类_python垃圾分类代码用key和format,5年经验Python程序员面试27天
最新用Python做垃圾分类_python垃圾分类代码用key和format,5年经验Python程序员面试27天