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

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 更为推荐。

列表和元组的区别?

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

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

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

http://www.xdnf.cn/news/5157.html

相关文章:

  • LWIP的IP协议笔记
  • 通俗的理解MFC消息机制
  • 理解计算机系统_并发编程(2)_基于I/O复用的并发(一):select浅解
  • 如何理解编程中的递归、迭代与回归?
  • Shell 脚本编程1(常用命令+概述)
  • 在 Elasticsearch 中删除文档中的某个字段
  • Web自动化测试入门详解
  • 【深入理解SpringCloud微服务】手写实现一个微服务分布式事务组件
  • 如何阅读、学习 Linux 2 内核源代码 ?
  • ADI ADRV902x的射频模拟信号输入输出端口的巴伦匹配
  • nvme Unable to change power state from D3cold to D0, device inaccessible
  • akshare爬虫限制,pywencai频繁升级个人做量化,稳定数据源和券商的选择
  • HTTP 的发展史:从前端视角看网络协议的演进
  • Java字节缓冲流高效读写文件指南
  • 【论文阅读】——一些小tips和测试
  • DS18B20温度传感器
  • 问题解决思路:numpy:DLL load failed
  • 贪心算法专题(Part2)
  • React Hooks 精要:从入门到精通的进阶之路
  • 单片机-STM32部分:10-2、逻辑分析仪
  • 【软件工程】基于频谱的缺陷定位
  • openlayers利用已知的三个经纬度的坐标点 , 绘制一个贝塞尔曲线
  • LeetCode 39 LeetCode 40 组合总和问题详解:回溯算法与剪枝优化(Java实现)
  • 鸿蒙 所有API缩略图鉴
  • PyTorch API 10 - benchmark、data、批处理、命名张量
  • 如何创建伪服务器,伪接口
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月10日第73弹
  • linux搭建hadoop学习
  • 测试左移系列-产品经理实战-实战认知1
  • 简易图片编辑工具,支持抠图和替换背景