Python面试题精选:从基础到进阶的终极备考指南
读者们好,这些Python面试题专为让你熟悉Python编程语言面试可能遇到的题型而设计。经验丰富的面试官很少预设特定问题,通常从基础概念切入,随后根据讨论深入——
Python基础面试题
什么是Python?
Python是高级、解释型、交互式、面向对象脚本语言。设计高度可读,常用英语关键字替代标点,语法构造比其他语言少。
Python主要特性?
- 支持函数式、结构化编程及OOP
- 可作脚本语言或编译字节码构建大型应用
- 提供高级动态数据类型,支持动态类型检查
- 自动垃圾回收
- 易与C、C++、COM、ActiveX、CORBA、Java集成
Python区分大小写吗?
是。标识符、函数名、关键字须按大小写区分,有助代码清晰精确。
Python跨平台吗?
是。兼容解释器下任意操作系统运行,解释器抽象硬件与OS细节。
Python应用领域?
- Web开发:Django、Flask
- 数据分析:Pandas、NumPy
- 机器学习:TensorFlow、Scikit-learn
- 自动化:脚本与任务自动化
- 软件开发:桌面应用构建
Python 2与Python 3核心区别?
| 序号 | 项目 | Python 2 | Python 3 |
|---|---|---|---|
| 1 | 可无括号 | 必须加括号,否则报错 | |
| 2 | Unicode | ASCII str()和单独unicode(),无bytes | UTF-8统一,有bytes/bytearray |
| 3 | 异常 | 兼容新旧语法 | 异常参数必须加括号,否则SyntaxError |
| 4 | 不可比类型比较 | 不报错 | 抛TypeError警告 |
Python有double类型吗?
无。Python用float表示浮点数,默认双精度。
Python字符串不可变?
是。
True = False可能吗?
不可能。True/False是不同布尔值。
Python环境变量面试题
PYTHONPATH作用?
类似PATH,告诉解释器去哪找导入模块文件。含Python标准库目录和源码目录。安装器有时预设。
PYTHONSTARTUP作用?
指向初始化文件路径(含Python源码),每次启动解释器执行。Unix下名.pythonrc.py,含加载工具或修改PYTHONPATH命令。
PYTHONCASEOK作用?
Windows下指示Python导入语句中找首个大小写不敏感匹配。设任意值激活。
PYTHONHOME作用?
替代模块搜索路径,通常嵌入PYTHONSTARTUP或PYTHONPATH目录便于切换模块库。
Python数据类型与操作面试题
Python五大标准数据类型?
Numbers、String、List、Tuple、Dictionary。
字符串切片/操作输出系列
str = 'Hello World!'
print(str)→Hello World!print(str[0])→H(索引从0起)print(str[2:5])→lloprint(str[2:])→llo World!print(str * 2)→Hello World!Hello World!print(str + "TEST")→Hello World!TEST
列表操作输出系列
list = ['abcd', 786, 2.23, 'john', 70.2]
print(list)→ 原样输出print(list[0])→abcdprint(list[1:3])→[786, 2.23]print(list[2:])→[2.23, 'john', 70.2]
tinylist = [123, 'john']
print(tinylist * 2)→[123, 'john', 123, 'john']print(list1 + list2)→ 合并两列表
元组面试题
- 元组:不可变序列,圆括号定义,适合固定集合
- 列表用方括号可变,元组用圆括号不可变,可视为只读列表
- 切片/拼接/重复操作同列表,返回元组
字典面试题
- 字典:哈希表类型,键值对,键通常为数字/字符串,值可为任意对象
- 创建:
dict = {}; dict['one'] = "This is one"; dict[2] = "This is two" dict.keys()获全键,dict.values()获全值
字符串方法面试题
int()字符串转整数,float()转浮点,str()对象转字符串,repr()对象转表达式字符串,eval()字符串求值得对象tuple(str)→元组,list(str)→列表,set(str)→集合(去重)dict(zip(tup1,tup2))两元组组合成字典- 大小写转换:
upper()/lower()/swapcase()/capitalize()/title() - 判断方法:
isalnum()/isdigit()/islower()/isnumeric()/isspace()/istitle()/isupper()/isdecimal() join(seq)拼接,len()长度,ljust()左对齐填充,lstrip()去前导空格,strip()去首尾空格,replace()替换,max()/min()字符极值
列表方法面试题
del按索引删/切片删多个,remove()删首个匹配值len()长度,+拼接,*重复,in成员判断index()获索引,insert()指定位置插入,pop()弹出末尾或指定索引,reverse()反转,sort()排序(默认升序,配合reverse()降序)- 列表比较用
==逐元素比值 max()/min()极值
运算符面试题
**幂运算,//地板除(向下取整),is同一对象身份比较,not in序列不包含判断
控制语句面试题
break终止循环,continue跳过本次迭代,pass空语句占位避免IndentationError
random模块面试题
random.choice()从列表/元组/范围随机取元素random()返回[0,1)随机浮点数seed()设种子,shuffle()原地打乱列表
函数与内存面试题
lambda匿名函数,无语句块无return- 未完成函数称stub或partial function,开发测试用占位
- 函数定义时参数局部变量存栈区,管理调用、存变量、存返回地址
模块库面试题
- OS模块:交互操作系统,文件目录/进程/环境变量管理,跨平台
- 机器学习库:
scikit-learn - 调试工具:
pdb交互调试、pylint静态分析、pyflakes不执行代码分析
Python
- Python datetime 模块精通:日期、时间、timedelta 与 strftime 详解
- 玩转 Python REPL:用下划线 _ 极速获取上一条表达式结果
- Python 优雅交换两变量:无需临时变量的一行代码
- Python 字符串标题化:快速可靠的 Title Case 转换
- Python 基础语法与核心概念入门指南
- 精通 Python 面向对象编程:类、继承、封装与多态
- Python print 不换行:掌握 end 参数及其他技巧
- 精通Python递归:函数如何自我调用
- 精通 Python 错误与内置异常
- Python语句、缩进与注释:清晰指南
- Code Mentor:AI 驱动的 Python 学习助手与代码审查工具
- 精通 Python range() 函数:从基础到高级用法