Python 面试时需要知道的 10 个问题及详解


Python 面试时需要知道的 10 个问题及详解

在 Python 的面试中,考察的重点通常是基础知识、编程思维和实际应用能力。掌握 Python 的核心概念不仅能帮助你在面试中脱颖而出,还能让你在实际工作中高效编写代码。下面我们将详细解答 10 个 Python 面试中常见的问题,帮助你更加深入理解 Python 的基本特性和应用。


1. Python 中的全局、受保护和私有属性是什么?

在 Python 中,属性的访问权限并不像 Java 或 C++ 那样严格区分,但我们可以通过一些约定来控制变量的访问范围。理解这些修饰符能帮助你编写更具可维护性和安全性的代码。

访问权限:

  • Public(公共属性):公共属性没有访问限制,可以在类的任何地方、甚至类外部访问。
  • Protected(受保护属性):受保护属性通常用单个下划线(_)表示,它表示这个属性是类内部或子类中使用的,不建议在类外部访问。
  • Private(私有属性):私有属性通常使用双下划线(__)前缀表示,表示该属性只能在类内部使用,无法直接访问或修改。
  • 示例代码:

    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())  # 会抛出错误
    

    总结:

  • 公共属性:不加限制,可以随意访问。
  • 受保护属性:通过约定不在类外部使用,但在继承时可以使用。
  • 私有属性:只能在类内部访问,Python 会通过名字重整(name mangling)机制使其“难以访问”。

  • 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)
    

    小贴士:

  • 关键字的作用:它们定义了 Python 的语法结构,比如 ifelse 控制流结构,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 中用于数据分析的一个开源库,提供了两种主要的数据结构:DataFrameSeries。它能方便地进行数据清洗、处理、分析等工作,特别适用于数据科学和机器学习。

    主要特点:

  • 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

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python 面试时需要知道的 10 个问题及详解

    发表回复