Python编程面试问答
1、Python的模块、类、函数、变量的命名规范?
2、说一说什么是面向对象?
面向对象编程(OOP)是一种编程范式,核心思想是将数据(属性)和操作数据的方法(行为)封装成对象。主要特性:
- 封装:隐藏内部实现细节,通过接口访问对象。
- 继承:子类继承父类的属性和方法,实现代码复用。
- 多态:不同对象对同一方法有不同的实现(如方法重写)。
- 抽象:定义接口而不实现具体细节(通过抽象类/接口)。
3、说一说5个Python标准库?
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:捕获所有关键字参数(键值对)。#秋招##测试面经##测试#
测试岗面经 文章被收录于专栏
整理面试过程中的测试问答,常看常新,多多学习!有些问题是从其他人那里转载而来,会在文章下面注明出处,希望大家多多支持~~