当前位置: 首页 > news >正文

Python常见面试题

- 异常
  - Lambda匿名函数
  - Python基本数据类型?
  - Python复制列表的方法?
  - is 和 == 的区别?
  - 列表和元组的区别?

异常

使用tryexcept语句来捕获异常打印日志,处理错误并继续执行脚本,这样,遇到错误时可以捕获异常,打印错误信息,并让脚本继续执行。

def test_case_1():try:# 执行可能会出错的代码data = get_data()  # 假设这个函数可能获取不到数据print(f"Data: {data}")except Exception as e:# 捕获异常并输出错误信息print(f"Error occurred in test_case_1: {e}")# 你可以选择在这里进行一些处理,比如记录日志、设置默认值等# 无论是否有异常,脚本都会继续执行print("Test case 1 finished, continue with the next test...")def test_case_2():try:# 执行另一个可能出错的操作result = perform_calculation()  # 假设这个函数也可能出错print(f"Calculation result: {result}")except Exception as e:# 捕获异常并输出错误信息print(f"Error occurred in test_case_2: {e}")print("Test case 2 finished, continue with the next test...")# 主函数
def main():test_case_1()test_case_2()print("All tests completed.")if __name__ == "__main__":main()

Lambda匿名函数

使用场景:只需要用一次的简洁操作
语法:lambda 参数 : 表达式
lambda 函数通常与内置函数如 map()、filter() 、sorted()和 reduce() 一起使用,以便在集合上执行操作。例如:

add = lambda x, y: x + y
print(add(3, 5))  # 输出 8# 筛选出偶数
numbers = [1, 2, 3, 4, 5, 6, 7, 8] even_numbers = list(filter(lambda x: x % 2 == 0, numbers))points = [(2, 3), (1, 5), (3, 1)]
points_sorted = sorted(points, key=lambda x: x[1])
print(points_sorted)  # 输出 [(3, 1), (2, 3), (1, 5)]nums = [1, 2, 3, 4]
squares = map(lambda x: x ** 2, nums)
print(list(squares))  # 输出 [1, 4, 9, 16]

Python基本数据类型?

  • 数字类型:int, float

  • 序列类型:string, list列表, tuple元组

String:通过索引访问字符,切片来获取子字符串
list:列表是有序的,允许包含重复元素。支持索引、切片、遍历等操作。
tuple:元素有序,不允许修改,添加,删除,可以包含重复元素,元组内通常存储,不需要修改的数据

  • 映射类型:dict

dict:每个键都是唯一的,键必须是不可变类型(字符串、数字、元组)

  • 集合类型:set集合

set:集合无需,不允许重复元素,适合去重操作

  • 布尔类型:bool

  • 二进制类型:bytes

  • 特殊类型:None

Python复制列表的方法?

  • 浅拷贝[:], list(), copy(), copy.copy(), extend(), 列表推导式, for 循环
  • 深拷贝copy.deepcopy()

浅拷贝:复制最外层的对象,但内部的对象引用原始数据。

深拷贝:递归地复制整个对象,包括嵌套的对象。

is 和 == 的区别?

==: 比较的是对象的是否相等。

is: 比较的是对象的身份(即内存地址)是否相同。例如在检查 None 时,is None 更为推荐。

列表和元组的区别?

列表:列表使用方括号 [ ]可变的,可以修改、添加或删除元素,适用于需要频繁修改的场景。

元组:使用小括号 ( ),是不可变的,一旦创建,元素不能修改、添加或删除,适用于数据固定且需要提高性能或作为字典键的场景。

列表:不能作为字典的键,因为列表是可变的,不能被哈希。

相关文章:

  • AST(抽象语法树)与 HBO(基于历史的优化)详解
  • 单片机-STM32部分:11、ADC
  • 【C++】 —— 笔试刷题day_27
  • 电影感户外哑光人像自拍摄影Lr调色预设,手机滤镜PS+Lightroom预设下载!
  • AI编程: 使用Trae1小时做成的音视频工具,提取音频并识别文本
  • 扩容 QCOW2 磁盘镜像文件
  • PCB设计实践(十三)PCB设计中差分线间距与线宽设置的深度解析
  • Linux架构篇、第四章_ELK与EFK-7.17.9的日志管理
  • 图像处理篇--- HTTP|RTSP|MJPEG视频流格式
  • 对日开发 TeraTerm ttl脚本开发环境配置
  • 轻松制作高质量视频,实时生成神器LTX-Video重磅登场!
  • PostgreSQL 的 pg_collation_actual_version 函数
  • Redis经典面试题
  • Spring Security 深度解析:打造坚不可摧的用户认证与授权系统
  • 异地多活单元化架构下的微服务体系
  • Docker 使用总结及完整示例介绍
  • 查看Electron 应用的调试端口
  • Docker中运行的Chrome崩溃问题解决
  • Stable Diffusion进阶之Controlnet插件使用
  • HTML属性
  • 瑞士联邦主席凯勒-祖特尔、联邦副主席帕姆兰会见何立峰
  • 这座古村,藏着多少赣韵风华
  • 临港新片区:发布再保险、国际航运、生物医药3个领域数据出境操作指引
  • 上海“世行对标改革”的税务样本:设立全国首个税务审判庭、制定首个税务行政复议简易程序
  • 马上评丨维护学术诚信别陷入“唯AI检测”误区
  • 市自规局公告收回新校区建设用地,宿迁学院:需变更建设主体