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

 

目录

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

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

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

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

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

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

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

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

🍔 Python垃圾回收机制?

🍔 解释 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
def calc(x,y):return x*y
# 将上述⼀般函数改写为匿名函数:
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)

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/56004.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣LeetCode-链表中的循环与递归使用

标题做题的时候发现循环与递归的使用差别&#xff1a; 看两道题&#xff1a; 两道题都是不知道链表有多长&#xff0c;所以需要用到循环&#xff0c;用到循环就可以把整个过程分成多个循环体&#xff0c;就是每一次循环要执行的内容。 反转链表&#xff1a; 把null–>1…

springboot 整合 rabbitMQ(1)

目录 一、MQ概述 二、MQ的优势和劣势 三、常见的MQ产品 RabbitMQ使用步骤 第一步&#xff1a;确保rabbitmq启动并且可以访问15672 第二步&#xff1a;导入依赖 第三步&#xff1a;配置 auto自动确认 manual手工确认&#xff08;推荐使用&#xff01;可以防止消息丢失&a…

数字电路尚硅谷学习笔记

学习视频&#xff1a;01_数字电路_从零搭建计算机引导_哔哩哔哩_bilibili 第1章数字电路基础 1.引言 数字电路是现代科技和工程领域中不可或缺的基础。从计算机系统到通信设备&#xff0c;从家庭电子产品到工业自动化&#xff0c;数字电路无处不在&#xff0c;影响着我们的生…

Ubuntu 22.04 安装 KVM

首先检查是否支持 CPU 虚拟化&#xff0c;现在的 CPU 都应该支持&#xff0c;运行下面的命令&#xff0c;大于0 就是支持。 egrep -c (vmx|svm) /proc/cpuinfo安装 Libvirt apt install -y qemu-kvm virt-manager libvirt-daemon-system virtinst libvirt-clients bridge-uti…

华为FreeBuds 6i戴久了会耳朵胀痛吗?该怎么办?

华为FreeBuds 6i戴久了&#xff0c;会有耳朵胀痛的感觉吗&#xff1f;其实可能是没选对适合自己的耳塞&#xff0c;给你们分享几个佩戴更舒服的方法&#xff0c;一起来看看~ 首先和大家说说为什么华为FreeBuds 6i戴久了不舒服&#xff0c;一方面是耳塞尺寸不合适&#xff0c;另…

数据结构-5.5.二叉树的存储结构

一.二叉树的顺序存储&#xff1a; a.完全二叉树&#xff1a; 1.顺序存储中利用了静态数组&#xff0c;空间大小有限&#xff1a; 2.基本操作&#xff1a; (i是结点编号) 1.上述图片中i所在的层次后面的公式应该把n换成i(图片里写错了)&#xff1b; 2.上述图片判断i是否有左…

VLAN:虚拟局域网

VLAN:虚拟局域网 交换机和路由器协同工作后&#xff0c;将原先的一个广播域&#xff0c;逻辑上&#xff0c;切分为多个广播域。 第一步:创建VLAN [SW1]dispaly vlan 查询vlan VID&#xff08;VLAN ID&#xff09;:用来区分和标定不同的vlan 由12位二进制构成 范围: 0-4…

手撕数据结构 —— 带头双向循环链表(C语言讲解)

目录 0.前言 1.什么是带头双向循环链表 理解带头 ​编辑 理解双向 理解循环 2.带头双向循环链表的实现 List.h文件中接口总览 具体实现 结点的定义 申请结点 初始化 打印链表 尾插 尾删 头插 头删 ​编辑​编辑 获取大小 查找 在指定位置前插入 ​编辑…

基于顺序表实现通讯录项目

目录 1.通讯录的基本构成 2.通讯录的底层原理 3.通讯录的底层——顺序表 ——————————————————————————————————————————— 正文开始 1. 通讯录的基本构成 1.1 联系人信息的主要内容 ●姓名 ●性别 ●年龄 ●电话 ●住址 1.2 数…

第33次CCF计算机软件能力认证-第4题十滴水

题干&#xff1a; 十滴水是一个非常经典的小游戏。 小 C C C 正在玩一个一维版本的十滴水游戏。 我们通过一个例子描述游戏的基本规则。 游戏在一个 1 c 1c 1c 的网格上进行&#xff0c;格子用整数 x ( 1 ≤ x ≤ c ) x(1≤x≤c) x(1≤x≤c) 编号&#xff0c;编号从左往…

【Flutter、H5、Web?前端个人总结】分享从业经历经验、自我规范准则,纯干货

前言 hi&#xff0c;正式接触web前端已经经过了两年的时间&#xff0c;从大学的java后端转型到web前端&#xff0c;再到后续转战Flutter&#xff0c;逐渐对前端有了一些心得体会&#xff0c;其实在当下前端的呈现形式一直在变化&#xff0c;无论你是用原生、还是web还是混编的…

初始项目托管到gitee教程,开箱即用

0.本地仓库与远程仓库关联&#xff08;需先在gitee创建仓库&#xff09; ①打开powershell生成ssh key ssh-keygen -t ed25519 -C "Gitee SSH Key"-t key 类型-C 注释 生成成功如下&#xff0c;并按下三次回车 ②查看公私钥文件 ls ~/.ssh/输出&#xff1a; id_…

怎么提取伴奏?5个人声分离方法一步搞定!

在进行音乐创作或混音等操作时&#xff0c;提取出音乐中的伴奏是一个常见的需求。伴奏是指音乐中除了主旋律和歌唱部分之外的音轨&#xff0c;通常包括鼓、贝斯、吉他等乐器的演奏&#xff0c;提取出伴奏可以让我们更方便地对音乐进行处理。 本文分享几个可以提取伴奏的方法&a…

el-table表头加红色星标

代码&#xff1a; <el-table-column prop"name" label"姓名" width"auto"><template #header><span style"color: red; margin-right: 4px">*</span><span>姓名</span></template></el…

Mysql—高可用集群MHA

1:什么是MHA&#xff1f; MHA&#xff08;Master High Availability&#xff09;是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中&#xff0c;MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切…

22个无版权的4K高清视频素材网站,各种风格视频都有!

平时我也会做一些短视频和宣传片&#xff01; 所以&#xff0c;对找素材这回事不在话下&#xff0c;国内外也有不少高清无水印的视频素材网站&#xff0c;今天就分享一些高清剪辑必备的视频素材渠道&#xff0c;不少也是免费哒&#xff0c;平时需要找素材的同学千万不要错过啦…

Python中的数据可视化艺术:用Matplotlib和Seaborn讲故事

Python中的数据可视化艺术&#xff1a;用Matplotlib和Seaborn讲故事 数据可视化不仅仅是图表的绘制&#xff0c;更是通过视觉形式传达复杂信息的一种艺术。使用Python中的两个强大的库——Matplotlib和Seaborn&#xff0c;可以将数据转化为清晰、优美的图表&#xff0c;帮助我…

【Kubernetes】常见面试题汇总(五十六)

目录 123. pod 创建失败&#xff1f; 124. kube-flannel-ds-amd64-ndsf7 插件 pod 的 status 为 Init:0/1 &#xff1f; 特别说明&#xff1a; 题目 1-68 属于【Kubernetes】的常规概念题&#xff0c;即 “ 汇总&#xff08;一&#xff09;~&#xff08;二十二&#x…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-05

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-04 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-04目录1. LLM-Augmented Symbolic Reinforcement Learning with Landmark-Based Task Decomposition摘要研究背景问题与挑战如何…

『网络游戏』下线数据清理【29】

修改服务端脚本&#xff1a;ServerSession.cs 修改服务端脚本&#xff1a;ServerRoot.cs 修改服务端脚本&#xff1a;CacheSvc.cs 修改服务端脚本&#xff1a;LoginSys.cs 运行服务器 运行客户端 - 连续登录账号 本章结束