【面试宝典】深入Python高级:直戳痛点的题目演示(下)

简介: 【面试宝典】深入Python高级:直戳痛点的题目演示(下)

🍔 Python下多线程的限制以及多进程中传递参数的⽅式

  • python多线程有个全局解释器锁(global interpreter lock),这个锁的意思是任⼀时间只能有⼀个线程 使⽤解释器,跟单cpu跑多个程序⼀个意思,⼤家都是轮着⽤的,这叫“并发”,不是“并⾏”。
  • 多进程间共享数据,可以使⽤ multiprocessing.Value 和 multiprocessing.Array

🍔 Python是如何进⾏内存管理的?

  • Python引⽤了⼀个内存池(memory pool)机制,即Pymalloc机制(malloc:n.分配内存),⽤于管理对⼩块内存的申请和释放。

内存池(memory pool)的概念:

  • 当创建⼤量消耗⼩内存的对象时,频繁调⽤new/malloc会导致⼤量的内存碎⽚,致使效率降低。内存池的概念就是预先在内存中申请⼀定数量的,⼤⼩相等 的内存块留作备⽤,当有新的内存需求时,就先从内存池中分配内存给这个需求,不够了之后再申请新的内存。这样做最显著的优势就是能够减少内存碎⽚,提升效率。内存池的实现⽅式有很多,性能和适⽤范围也不⼀样。

python中的内存管理机制——Pymalloc:

  • python中的内存管理机制都有两套实现,⼀套是针对⼩对象,就是⼤⼩⼩于256bits时,pymalloc会在内 存池中申请内存空间;当⼤于256bits,则会直接执⾏new/malloc的⾏为来申请内存空间。
  • 关于释放内存⽅⾯,当⼀个对象的引⽤计数变为0时,python就会调⽤它的析构函数。在析构时,也采⽤了内存池机制,从内存池来的内存会被归还到内存池中,以避免频繁地释放动作。

🍔 Python⾥⾯如何拷⻉⼀个对象?

  • 标准库中的copy模块提供了两个⽅法来实现拷⻉.⼀个⽅法是copy,它返回和参数包含内容⼀样的对象, 使⽤deepcopy⽅法,对象中的属性也被复制

🍔 Python⾥⾯search()和match()的区别?

  • match()函数只检测re是不是在string的开始位置匹配,search()会扫描整个string查找匹配, 也就是说 match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none。

🍔 lambda表达式格式以及应⽤场景?

  • lambda函数就是可以接受任意多个参数(包括可选参数)并且返回单个表达式值得函数。
  • 语法:lambda [arg1 [,arg2,.....argn]]:expression
1. def calc(x,y):
2. return x*y
3. # 将上述⼀般函数改写为匿名函数:
4. lambda x,y:x*y

应⽤:

  • lambda函数⽐较轻便,即⽤即仍,适合完成只在⼀处使⽤的简单功能。
  • 匿名函数,⼀般⽤来给filter,map这样的函数式编程服务
  • 作为回调函数,传递给某些应⽤,⽐如消息处理。

🍔 *args和**kwarg作⽤是什么?

  • *args代表位置参数,它会接收任意多个参数并把这些参数作为元组传递给函数。
  • **kwargs代表的关键字参数,允许你使⽤没有事先定义的参数名。
  • 位置参数⼀定要放在关键字参数的前⾯。
  • 作⽤:使⽤*args和**kwargs可以⾮常⽅便的定义函数,同时可以加强扩展性,以便⽇后的代码维护。

🍔 is和==的区别是什么?

  • ==是python标准操作符中的⽐较操作符,⽤来⽐较判断两个对象的value(值)是否相等;
  • is也被叫做同⼀性运算符,这个运算符⽐较判断的是对象间的唯⼀身份标识,也就是id是否相同。

🍔 简述Python的深浅拷⻉以及应⽤场景?

  • 导⼊模块:import copy
  • 浅拷⻉:copy.copy
  • 深拷⻉:copy.deepcopy
  • 浅拷⻉指仅仅拷⻉数据集合的第⼀层数据,深拷⻉指拷⻉数据集合的所有层。<br>   所以对于只有⼀
  • 层的数据集合来说深浅拷⻉的意义是⼀样的,⽐如字符串,数字,还有仅仅⼀层的字典、列表、元祖等.

应用:

  • 浅拷⻉在拷⻉⼤量数据且不需要改变内部元素的值的时候,能⼤量的减少内存的使⽤;
  • 深拷⻉在拷⻉⼤量数据的时候,需要在前后内部元素的内容进⾏改变的时候,可以修改拷⻉出来的模板。

🍔 Python垃圾回收机制?

  • 回收计数引⽤为0的对象,释放其占⽤空间
  • 循环垃圾回收器。释放循环引⽤对象

🍔 解释 Python 中的三元表达式

与 C++不同, 在 Python 中我们不需要使⽤符号,⽽是使⽤如下语法:

  • [on true] if [expression]else [on false]
  • 如果 [expression] 为真, 则 [on true] 部分被执⾏。如果表示为假则 [on false] 部分被执⾏

🍔 Python的可变类型和不可变类型?

不可变类型:

  • 整数(int)
  • 浮点数(float)
  • 元组(tuple)
  • 字符串(str)
  • 布尔值(bool)

可变类型:

  • 列表(list)
  • 字典(dict)
  • 集合(set)

💘若能为您的学习之旅添一丝光亮,不胜荣幸💘

🐼期待您的宝贵意见,让我们共同进步共同成长🐼

相关文章
|
1月前
|
Web App开发 缓存 前端开发
浏览器常见面试题目及详细答案解析
本文围绕浏览器常见面试题及答案展开,深入解析浏览器组成、内核、渲染机制与缓存等核心知识点。内容涵盖浏览器的主要组成部分(如用户界面、呈现引擎、JavaScript解释器等)、主流浏览器内核及其特点、从输入URL到页面呈现的全过程,以及CSS加载对渲染的影响等。结合实际应用场景,帮助读者全面掌握浏览器工作原理,为前端开发和面试提供扎实的知识储备。
107 4
|
28天前
|
缓存 NoSQL Java
Java Redis 面试题集锦 常见高频面试题目及解析
本文总结了Redis在Java中的核心面试题,包括数据类型操作、单线程高性能原理、键过期策略及分布式锁实现等关键内容。通过Jedis代码示例展示了String、List等数据类型的操作方法,讲解了惰性删除和定期删除相结合的过期策略,并提供了Spring Boot配置Redis过期时间的方案。文章还探讨了缓存穿透、雪崩等问题解决方案,以及基于Redis的分布式锁实现,帮助开发者全面掌握Redis在Java应用中的实践要点。
90 6
|
1月前
|
算法 Java 关系型数据库
校招 Java 面试基础题目解析及学习指南含新技术实操要点
本指南聚焦校招Java面试,涵盖Java 8+新特性、多线程与并发、集合与泛型改进及实操项目。内容包括Lambda表达式、Stream API、Optional类、CompletableFuture异步编程、ReentrantLock与Condition、局部变量类型推断(var)、文本块、模块化系统等。通过在线书店系统项目,实践Java核心技术,如书籍管理、用户管理和订单管理,结合Lambda、Stream、CompletableFuture等特性。附带资源链接,助你掌握最新技术,应对面试挑战。
55 2
|
1月前
|
安全 Java 编译器
Java 校招面试题目合集及答案 120 道详解
这份资料汇总了120道Java校招面试题目及其详细答案,涵盖Java基础、JVM原理、多线程、数据类型、方法重载与覆盖等多个核心知识点。通过实例代码解析,帮助求职者深入理解Java编程精髓,为校招面试做好充分准备。无论是初学者还是进阶开发者,都能从中受益,提升技术实力和面试成功率。附带的资源链接提供了更多学习材料,助力高效备考。
69 3
|
1月前
|
存储 算法 Java
校招 java 面试基础题目及解析
本文围绕Java校招面试基础题目展开,涵盖平台无关性、面向对象特性(封装、继承、多态)、数据类型、关键字(static、final)、方法相关(重载与覆盖)、流程控制语句、数组与集合、异常处理等核心知识点。通过概念阐述和代码示例,帮助求职者深入理解并掌握Java基础知识,为校招面试做好充分准备。文末还提供了专项练习建议及资源链接,助力提升实战能力。
98 0
|
9月前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
9月前
|
缓存 关系型数据库 MySQL
面试题目总结
面试题目总结
213 6
|
9月前
|
设计模式 Unix Python
【面试宝典】深入Python高级:直戳痛点的题目演示(上)
【面试宝典】深入Python高级:直戳痛点的题目演示(上)
|
Python
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
137 0
|
Python
Python GUI tkinter 随机生成题目
说明 (1)拟设计的功能及实现思路、需要用到的知识 实现逐个显示题目,并且在点击按钮之后判断回答是否正确 实现可以统计正确率(在回答完所有题目之后) 实现指定题目的数量,指定题目的运算符号 实现将所有题目进行记录,并打印到word文档 实现将所有错误的题目进行记录,并打印到word文档 实现指定打印题目的行数和列数,并在界面进行展示 实现时刻提醒用户当前还剩下多少个题目没有解决 (2)调用库的说明 random 生成随机数要用到的库 tkinter 制作图形化界面要用到的库 docx 对word文档进行操作的库 docx.shared 里面的Pt 可以规定word文档的字体等规范
260 0
Python GUI tkinter 随机生成题目

推荐镜像

更多