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

news2024/11/25 14:30:23

 

目录

🍔 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.coloradmin.cn/o/2208710.html

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

相关文章

生成式专题的第一节课---GAN图像生成

一、GAN的起源与发展 1.GAN的起源 GAN &#xff08;生成式对抗网络&#xff09;诞生于 2014 年&#xff0c;由 Ian Goodfellow 提出&#xff0c;是用于生成数据的深度学习模型&#xff0c;创新点是对抗性训练&#xff0c;即生成器与判别器的竞争关系&#xff0c;为图像生成、…

多态常见面试问题

1、什么是多态&#xff1f; 多态&#xff08;Polymorphism&#xff09;是面向对象编程中的一个重要概念&#xff0c;它允许同一个接口表现出不同的行为。在C中&#xff0c;多态性主要通过虚函数来实现&#xff0c;分为编译时多态&#xff08;静态多态&#xff09;和运行时多态…

DDoS攻击快速增长,如何在抗ddos防护中获得主动?

当下DDoS攻击规模不断突破上限。前段时间&#xff0c;中国首款3A《黑神话&#xff1a;悟空》也在一夜之内遭受到28万次攻击DDoS攻击&#xff0c;严重影响到全球玩家的游戏体验。Gcore发布的数据也显示了 DDoS攻击令人担忧的趋势&#xff0c;尤其是峰值攻击已增加到了令人震惊的…

腾讯IM SDK:TUIKit发送多张图片

一、问题描述 在使用腾讯IM DEMO&#xff08;https://github.com/TencentCloud/chat-uikit-vue.git&#xff09;时发现其只支持发送一张图片&#xff1a; 二、解决方案 // src\TUIKit\components\TUIChat\message-input-toolbar\image-upload\index.vue<inputref"inp…

【GaussDB】产品简介

产品定位 GaussDB 200是一款具备分析及混合负载能力的分布式数据库&#xff0c;支持x86和Kunpeng硬件架构&#xff0c;支持行存储与列存储&#xff0c;提供PB(Petabyte)级数据分析能力、多模分析能力和实时处理能力&#xff0c;用于数据仓库、数据集市、实时分析、实时决策和混…

transformers和bert实现微博情感分类模型提升

关于深度实战社区 我们是一个深度学习领域的独立工作室。团队成员有&#xff1a;中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等&#xff0c;曾在腾讯、百度、德勤等担任算法工程师/产品经理。全网20多万粉丝&#xff0c;拥有2篇国家级人工智能发明专利。 社区特色…

关于Linux下C++程序内存dump的分析和工具

前言 程序崩溃令人很崩溃&#xff0c;特别是让人找不到原因的崩溃&#xff0c;但是合适的工具可以帮助人很快的定位到问题&#xff0c;在AI基础能力ASR服务开发时&#xff0c;找到了一种比较实用和简单的内存崩溃的dump分析工具breakpad&#xff0c; 可以帮助在Linux下C开发程…

Skyeye 云智能制造 v3.14.8 发布,ERP 商城 + AI

Skyeye 云智能制造&#xff0c;采用 Springboot winUI 的低代码平台、移动端采用 UNI-APP。包含 30 多个应用模块、50 多种电子流程&#xff0c;CRM、PM、ERP、MES、ADM、EHR、笔记、知识库、项目、门店、商城、财务、多班次考勤、薪资、招聘、云售后、论坛、公告、问卷、报表…

(JAVA)2-3树思想与红黑树的实现与基本原理

1. 平衡树 ​ 学习过二叉查找树&#xff0c;发现它的查询效率比单纯的链表和数组的查询效率要高很多。 ​ 大部分情况下确实是这样的&#xff0c;但不幸的是&#xff0c;在最坏情况下&#xff0c;二叉查找树的性能还是很糟糕。 ​ 例如我们一次往二叉树中插入9,8,7,6,5,4,3,…

【LeetCode】动态规划—714. 买卖股票的最佳时机含手续费(附完整Python/C++代码)

动态规划—714. 买卖股票的最佳时机含手续费 题目描述前言基本思路1. 问题定义2. 理解问题和递推关系状态定义&#xff1a;状态转移公式&#xff1a;初始条件&#xff1a; 3. 解决方法动态规划方法伪代码&#xff1a; 4. 进一步优化5. 小总结 Python代码Python代码解释总结&…

出海电商新怎样用海外云手机引流?

随着互联网行业的迅猛发展&#xff0c;出海电商、海外社交媒体营销以及游戏产业等领域对技术工具的需求不断增加。在这种趋势下&#xff0c;海外云手机作为一种新型解决方案&#xff0c;正在受到广泛关注。 特别是在出海电商中&#xff0c;平台如亚马逊、速卖通、eBay等通过结合…

Mysql(八) --- 视图

文章目录 前言1.什么是视图&#xff1f;2.创建视图3. 使用视图4. 修改数据4.1.注意事项 5. 删除视图6.视图的优点 前言 前面我们学习了索引&#xff0c;这次我们来学习视图 1.什么是视图&#xff1f; 视图是一个虚拟的表&#xff0c;它是基于一个或多个基本表或其他视图的查询…

8款宝藏手机app,适配安卓和苹果手机

好用的手机APP太多&#xff0c;差点挑花了眼&#xff01;今天来分享4款苹果手机和4款安卓手机上的宝藏软件&#xff0c;看看你喜欢哪一款~ IOS系统APP 1.搜图神器 一款拥有海量图片资源的图片搜索神器&#xff0c;它聚合海内外知名搜索引擎&#xff0c;想要图片直接搜索就行…

用java来编写web界面

一、ssm框架整体目录架构 二、编写后端代码 1、编写实体层代码 实体层代码就是你的对象 entity package com.cv.entity;public class Apple {private Integer id;private String name;private Integer quantity;private Integer price;private Integer categoryId;public…

【JavaScript】LeetCode:61-65

文章目录 61 课程表62 实现Trie&#xff08;前缀树&#xff09;63 全排列64 子集65 电话号码的字母组合 61 课程表 Map BFS拓扑排序&#xff1a;将有向无环图转为线性顺序。遍历prerequisites&#xff1a;1. 数组记录每个节点的入度&#xff0c;2. 哈希表记录依赖关系。n 6&a…

Vulnhub靶场案例渗透[7]- DC7

文章目录 1. 靶场搭建2. 信息收集2.1 确定靶机ip2.2 服务信息收集2.3 社工信息收集 3. 提权 1. 靶场搭建 靶场源地址 检验下载文件的检验码&#xff0c;对比没问题使用vmware打开 # windwos 命令 Get-FileHash <filePath> -Algorithm MD5 # linux md5sum filepath2. 信…

视频汇聚平台EasyCVR支持云端录像丨监控存储丨录像回看丨录像计划丨录像配置

EasyCVR视频汇聚融合平台&#xff0c;是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。平台以其强大的视频处理、汇聚与融合能力&#xff0c;在构建视频监控系统中展现出了独特的优势。 EasyCVR视频汇聚平台可接入传统监控行业中高清网络摄像机的RTSP…

提升实验室效率的秘籍

有组织、高效的实验室而言&#xff0c;业务“人、机、料、法、环、测”的多维度发展至关重要&#xff0c;为了提高实验室管理效率和质量&#xff0c;许多实验室开始采用LIMS&#xff08;实验室信息管理系统&#xff09;软件来辅助管理。LIMS软件能够帮助实验室实现信息化、自动…

leetcode 3217 从链表中移除在数组中的结点

1.题目要求: 给你一个整数数组 nums 和一个链表的头节点 head。从链表中移除所有存在于 nums 中的节点后&#xff0c;返回修改后的链表的头节点。 示例 1&#xff1a; 输入&#xff1a; nums [1,2,3], head [1,2,3,4,5] 输出&#xff1a; [4,5] 解释&#xff1a; 移除数值…

Java中的枚举

1.1 认识枚举 枚举是一种特殊的类&#xff0c;它的格式是&#xff1a; public enum 枚举类名{枚举项1,枚举项2,枚举项3; } 其实枚举项就表示枚举类的对象&#xff0c;只是这些对象在定义枚举类时就预先写好了&#xff0c;以后就只能用这几个固定的对象。 定义一个枚举类&am…