Python编程面试问答

1、Python的模块、类、函数、变量的命名规范?

  • 模块名:小写字母,单词间用下划线分隔(如 my_module.py)。
  • 类名:首字母大写的驼峰式(如 MyClass)。
  • 函数名:小写字母,单词间用下划线分隔(如 my_function())。
  • 变量名:小写字母,单词间用下划线分隔(如 my_variable)。
  • 2、说一说什么是面向对象?

    面向对象编程(OOP)是一种编程范式,核心思想是将数据(属性)和操作数据的方法(行为)封装成对象。主要特性:

    • 封装:隐藏内部实现细节,通过接口访问对象。
    • 继承:子类继承父类的属性和方法,实现代码复用。
    • 多态:不同对象对同一方法有不同的实现(如方法重写)。
    • 抽象:定义接口而不实现具体细节(通过抽象类/接口)。

    3、说一说5个Python标准库?

  • os:操作系统交互(文件/目录操作)。
  • sys:访问解释器参数和系统功能。
  • math:数学运算(三角函数、对数等)。
  • datetime:日期和时间处理。
  • json:JSON 数据编码/解码。
  • 4、Python如何实现列表去重?

    #方法 1:用 set(无序,丢失原顺序)
    unique_list = list(set(original_list))
    
    #方法 2:用 dict.fromkeys()(保留顺序)
    unique_list = list(dict.fromkeys(original_list))
    
    #方法 3:遍历判断(保留顺序)
    unique_list = []
    for item in original_list:
        if item not in unique_list:
            unique_list.append(item)
    

    5、Python如何对列表数据排序?

    #升序排序
    my_list.sort()                # 原地排序
    sorted_list = sorted(my_list) # 返回新列表
    
    #降序排序
    my_list.sort(reverse=True)
    sorted_list = sorted(my_list, reverse=True)
    
    #自定义排序(如按字符串长度)
    my_list.sort(key=len)  # 按元素长度排序
    

    6、Python 如何操作文件?

    #打开文件
    with open("file.txt", "r") as f:  # 只读模式
        content = f.read()           # 读取全部内容
    
    #写入文件
    with open("file.txt", "w") as f:  # 写入模式(覆盖)
        f.write("Hello, World!")
    
    #追加内容
    with open("file.txt", "a") as f:  # 追加模式
        f.write("\nNew line")    
    
    #模式说明:r:读取(默认)/ w:写入(覆盖)/ a:追加 / b:二进制模式(如 rb)
    

    7、Python随机生成有效电话号码实现思路?

    #以中国大陆手机号(11 位,以 1 开头)为例:
    import random
    
    def generate_phone():
        second_digit = random.choice("3456789")  # 第二位有效范围
        other_digits = "".join(random.choices("0123456789", k=9))#随机选取0-9的数字,K为选取次数
        return f"1{second_digit}{other_digits}"
    
    print(generate_phone())  
    

    8、Python随机生成字符串的实现思路?

    #方法 1:使用 string + random.choices
    import random
    import string
    
    def random_string(length=10):
        letters = string.ascii_letters  # 大小写字母
        return "".join(random.choices(letters, k=length))
    
    #方法 2:生成包含数字的随机字符串
    def random_alphanumeric(length=10):
        chars = string.ascii_letters + string.digits
        return "".join(random.choices(chars, k=length))
    

    9、如何在一个函数内部修改全局变量?

    x = 10  # 全局变量
    
    def modify_global():
        global x  # 声明使用全局变量
        x = 20    # 修改全局变量
    
    modify_global()
    print(x)  # 输出:20
    

    10、Python的列表和集合的区别?

    列表(List) VS 集合(Set)

    顺序

    有序

    无序

    元素唯一性

    允许重复

    自动去重

    表示符号

    []

    {}

    查找效率

    O(n)(线性)

    O(1)(哈希表)

    示例

    [1, 2, 2, 3]

    {1, 2, 3}

    用途

    存储有序数据(如序列)

    去重、成员快速判断、集合运算

    11、Python 如何连接数据库的?

    import sqlite3
    
    # 连接数据库(不存在则创建)
    conn = sqlite3.connect("example.db")
    cursor = conn.cursor()
    
    # 创建表
    cursor.execute("CREATE TABLE IF NOT EXISTS users (id INTEGER, name TEXT)")
    
    # 插入数据
    cursor.execute("INSERT INTO users VALUES (1, 'Alice')")
    
    # 查询数据
    cursor.execute("SELECT * FROM users")
    print(cursor.fetchall())  # 输出:[(1, 'Alice')]
    
    # 提交并关闭
    conn.commit()
    conn.close()
    

    12、Python的函数,有不确定的参数如何做?

    #使用 *args(接收元组)和 **kwargs(接收字典)
    
    def flexible_func(*args, **kwargs):
        print("位置参数:", args)   # 如 (1, 2, 3)
        print("关键字参数:", kwargs) # 如 {"a": 4, "b": 5}
    
    flexible_func(1, 2, 3, a=4, b=5)
    
    #*args:捕获所有位置参数(非关键字参数)。
    #**kwargs:捕获所有关键字参数(键值对)。
    

    #秋招##测试面经##测试#
    测试岗面经 文章被收录于专栏

    整理面试过程中的测试问答,常看常新,多多学习!有些问题是从其他人那里转载而来,会在文章下面注明出处,希望大家多多支持~~

    全部评论
    你好,我想问下测试岗和后端开发问的范围会大致一样的吗
    点赞 回复 分享
    发布于 07-03 15:09 湖南

    相关推荐

    评论
    点赞
    1
    分享

    创作者周榜

    更多
    牛客网
    牛客网在线编程
    牛客网题解
    牛客企业服务