1、Python与其他语言(如Java/C++)的核心区别是什么?

        Python是动态类型的解释型语言,语法简洁,支持多种编程范式(面向对象、函数式、过程式)。与Java相比, Python无需编译且语法更简洁;与C++相比,Python开发效率高但运行速度较慢,且通过解释器执行而非直接编译为机器码。

2、列表和元组的核心区别是什么?

        列表可变 ,用[]定义 ,适用于动态数据集合(如增删元素);

        元组不可变 ,用()定义 ,适用于固定数据(如字典键或配置项 且内存占用更小。

3、在异常处理中 ,else和finally块分别何时执行?举例说明其适用场景。

        else在无异常时执行(如资源初始化成功后的操作);

        finally无论是否异常均执行(如释放文件锁)。

4、解释  Python 中的三元表达式

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

 [on true] if [expression]else [on false]

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

5、Python的可变类和不可变类

(1)不可变类型 :指一旦创建 ,其值就不能被修改的类型。 当对不可变类型的数据进行操作时 ,实际上是创建了一个新的对象。Python  中常见的不可变类型有:数字(Number):包括整数(int)、浮点数(float)、复数( complex);

(2) 可变类型:指在创建后,其值可以被修改的类型。对可变类型的数据进行操作时,是在原对象上进行修改 ,不会创建新的对象。 Python  中常见的可变类型有 :列表、字典、集合

6、解释装饰器的作用及典型应用场景

        装饰器用于在不修改原函数代码的情况下扩展功能(如日志记录、性能统计、权限校验)。通过闭包实现,接收函数作为参数并返回增强后的函数。例如缓存装饰器可优化递归性能。

7、__new__和__init__的区别是什么?

__new__是类方法 ,负责创建实例并返回;

__init__是实例方法 ,负责初始化实例属性。重写__new__常用于单例模式或不可变对象定制。

8、深拷贝与浅拷贝的区别是什么?

        浅拷贝( copy.copy)仅复制对象外层引用,若对象包含可变元素(如嵌套列表),修改拷贝对象会影响原对象。深拷贝( copy.deepcopy)递归复制所有层级元素 ,完全独立于原对象。

9、什么是闭包? Python中如何实现?

        闭包是嵌套函数捕获外层作用域变量的机制。例如计数器函数可通过闭包保留计数状态 ,而无需全局变量。

        在Python中,迭代器(Iterator)是— 个可以迭代访问序列元素的对象。迭代器对象实现了两个 法:__iter__()__next__()。__iter__() 法返回迭代器对象本身 __next__() 法返回下 个元素。

        迭代器常用于遍历序列、集合、字典等容器类型数据。它的优点是可以惰性计算(lazy evaluation 即只有在需要时才会计算 ,避免了一次性加载所有数据的开销, 同时也可以节省内存空间。

Python ,使迭代器通常有以下场景:

(1)遍历 量数据集合: 当需要处理 量的数据集合时 ,使迭代器可以避免 次性加载所有数据,节省内存空间。

(2)实现自定义迭代器: 当需要遍历自定义数据结构时 ,可以通过实现迭代器对象的__iter__()__next__()方法实现自定义迭代器;

(3)实现惰性计算:当需要进行惰性计算时 ,可以使用迭代器来实现,例如通过filter()、map()等高阶函数返回一个迭代器对象来进行惰性计算。

  个使迭代器遍历列表的例 

my_list = [1, 2, 3, 4, 5]
my_iterator = iter (my_list)
while True:try:item = next (my_iterator)print (item)except StopIteration:break

10、Python生成器是什么?什么场景用到生成器?举一个例子?

        在Python  成器( Generator)是 种特殊的迭代器 ,它使用生 成器函数来 成序列中的元素  不是在内存中 次性 成所有元素。

        生成器函数是使yield关键字定义的函数 ,每次调用 生 成器函数时 ,它会返回 个迭代器对象,调next() 法时, 它会从上次暂停的位置继续执,直到遇到下 yield语句 ,然后返回 个值 ,并再次暂停。 因此,  成器可以惰性地 成序列中的元素 ,并在需要时逐个 成元素 ,避免了 次性 成所有元素所带来的内存消耗。

使用 生 成器的场景包括:

(1)   量的数据集合: 当需要  量数据时 ,使用生 成器可以避免 次性占用大 量内存空间;

(2)实现定义的迭代器 :当需要定义迭代器对象时 ,可以使用 生 成器函数来实现 ,避免了繁琐的迭代器对象的定义;

(3)实现惰性计算:当需要进 惰性计算时 可以使用 生 成器来实现 ,例如通过filter()、map()等阶函数返回  成器对象来进 惰性计算。

  个使用生 成器函数 成斐波那契数列的例 


def fibonacci (n) :a, b = 0, 1for i in range (n):yield aa, b = b, a + b
fib = fibonacci (10)
for num in fib:print (num)

        在这个例子 中,我们定义了  成器函数fibonacci(),它的参数n表示需要 成的斐波那契数列的 度。在函数中 ,我们使yield语句返回斐波那契数列中的每 个元素 ,这样每次调next()函数时, 会返回下个元素 ,并在下次调时从上次暂停的位置继续执 。最后 ,我们使for循环遍历 成器对象 ,并打印出每个元素。

11、Python多线程与多进程的区别

        在UNIX平台上,当某个进程终结之后,该进程需要被其 进程调wait,否则进程成为僵进程  (Zombie)。所以 ,有必要对每个Process对象调join() 法  (实际上等同于wait)。对于多线程来说,  由于只有 个进 ,所以不存在此必要性。

        多进程应该避免共享资源。在多线程中,我们可以 较容易地共享资源, 如使全局变量或者传 递参数。在多进程情况下, 由于每个进程有自 己 的内存空间 ,以上 法并不合适。此时我们可  以通过共享内存Manager 法来共享资源。但这样做提了程序的复杂度 ,并因为同步的需要  降低了程序的效率

12、装饰器的实质是什么?

        或者说为什么装饰器要写2层嵌套函数,里 层函数完全就已经实现了装饰的功能为什么不直接用里 层函数名作为装饰器名称?

 :装饰器是要把原来的函数装饰成新的函数 ,并且返回这个函数本身的阶函数

13、Python下多线程的限制以及多进程中传递参数的方式

        python多线程有个全局解释器锁(global interpreter lock 这个锁的意思是任时间只能有 个线程使解释器 ,跟单cpu跑多个程序 个意思,  家都是轮着 ,这叫“并发”,不是“并 ”。

        多进程间共享数据 ,可以使用   multiprocessing.Value  和  multiprocessing.Array

14、Python是如何进行内存管理的?

        Python引用  个内存池(memory pool)机制 ,即Pymalloc机制(malloc:n.分配内存) 于管理对 块内存的申请和释放内存池( memory pool 的概念:

        当创建大 量消耗内存的对象时 ,频繁调new/malloc会导致 量的内存碎 ,致使效率降低。 内存池的概念就是预先在内存中申请 定数量的 大小 相等  的内存块留作备 ,当有新的内存需求 ,就先从内存池中分配内存给这个需求 ,不够了之后再申请新的内存。这样做最显著的优势就是能够减少内存碎 ,提升效率。

        内存池的实现方 式有很多 ,性能和适范围也不 样。 python中的内存管理机制——Pymalloc

        python中的内存管理机制都有两套实现, 套是针对 对象,就是大小 小 于256bits时,pymalloc会在内存池中申请内存空间;  于256bits ,则会直接new/malloc为来申请内存空间。

        关于释放内存方面 ,当 个对象的引计数变为0时 python就会调它的析构函数。在析构时,也采了内存池机制 ,从内存池来的内存会被归还到内存池中 以避免频繁地释放动作。

15、Python里面如何拷贝—个对象?

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

16、Python里面search()和match()的区别?

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

17、lambda表达式格式以及应用场景?

        lambda函数就是可以接受任意多个参数(包括可选参数)并且返回单个表达式值得函数。

语法:

        lambda [arg1 [,arg2,  argn]]:expression

1) lambda函数 较轻便, 即仍 ,适合完成只在 处使的简单功能。

2) 匿名函数,  来给filter map这样的函数式编程服务

3)作为回调函数 ,传递给某些应  如消息处理。

18、*args和**kwarg作用

        *args代表位置参数, 它会接收任意多个参数并把这些参数作为元组传递给函数。

        **kwargs代表的关键字参数 ,允许你使没有事先定义的参数名。位置参数 定要放在关键字参数的前 

作用 

        使用 *args和**kwargs可以 便的定义函数, 同时可以加强扩展性, 以便后的代码维护。

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

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

相关文章

【Canvas与旗帜】哥伦比亚旗圆饼

【成图】【代码】<!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>哥伦比亚旗圆饼 Draft1</title><style type"text/css&qu…

Linux 系统 poll 与 epoll 机制2:实现原理与应用实践

接上文poll机制&#xff1a;Linux 系统 poll 与 epoll 机制1。 3. epoll 机制&#xff1a;高并发 I/O 的优化实现​ epoll(Efficient event polling implementation)机制诞生于 Linux 2.5.44 版本&#xff0c;是内核为解决高并发 I/O 场景&#xff08;如万级以上 FD 监听&…

Mamba LLM 架构简介:机器学习的新范式

Mamba LLM 架构简介&#xff1a;机器学习的新范式探索 Mamba LLM 的强大功能&#xff0c;Mamba LLM 是来自一流大学的变革性架构&#xff0c;重新定义了 AI 中的序列处理。语言模型是一种经过训练的机器学习模型&#xff0c;用于在自然语言上执行概率分布。它们的架构主要由多层…

GaussDB生产扩容引起的PANIC问题处理案例

1 环境信息CPU:8C内存&#xff1a;64GGaussDB版本&#xff1a;24.7.32解决方案部署形态&#xff1a;HCS部署形态&#xff1a;1主1从1日志扩容原因&#xff1a;当前的配置满足不了max_connections为2000值&#xff0c;即当前的业务最大连接数超过2000个而按照8C64G的配置最多满足…

【168页PPT】华为流程管理体系构建与落地(附下载方式)

篇幅所限&#xff0c;本文只提供部分资料内容&#xff0c;完整资料请看下面链接 https://download.csdn.net/download/2501_92796370/91662548 资料解读&#xff1a;【168页PPT】华为流程管理体系构建与落地 详细资料请看本解读文章的最后内容。华为&#xff0c;作为全球知名…

基于CotSegNet网络和机器学习的棉花点云器官分割和表型信息提取

一、引言PointNet作为点云处理领域的先驱与里程碑式深度学习模型&#xff0c;以其卓越的性能和对无序点云数据直接处理的能力而闻名。博主将分享1篇发表在《Computers and Electronics in Agriculture》&#xff08;中科院1区TOP&#xff09;的“Organ segmentation and phenot…

经典卷积神经网络CNN

一、CNN视觉处理三大任务&#xff1a;图像分类、目标检测、图像分割上游&#xff1a;提取特征&#xff0c;CNN下游&#xff1a;分类、目标、分割等&#xff0c;具体的业务1. 概述卷积神经网络是深度学习在计算机视觉领域的突破性成果。在计算机视觉领域, 往往我们输入的图像都很…

11.1.5 实现文件删除,共享和共享下载排行榜

1、图床分享图片api_sharepicture.cc sharepicture_cgi.c 分享后每个人都可以看到。 数据库&#xff1a; DROP TABLE IF EXISTS share_picture_list; CREATE TABLE share_picture_list (id int(11) NOT NULL AUTO_INCREMENT COMMENT 编号,user varchar(32) NOT NULL COMMENT …

【Java后端】SpringBoot配置多个环境(开发、测试、生产)

在 Spring Boot 中配置多个环境&#xff08;开发、测试、生产&#xff09;通常用 配置文件分环境管理 启动参数切换 的方式来实现。下面一个完整的实践指南&#xff1a;&#x1f539; 1. 使用多配置文件管理环境 Spring Boot 默认支持 application-{profile}.properties 或 ap…

HTTP 分块传输编码:深度解析与报文精髓

分块传输编码&#xff08;Chunked Transfer Encoding&#xff09;是 HTTP/1.1 协议中的一项核心特性&#xff0c;它允许服务器在不预先知道响应体总大小的情况下&#xff0c;高效地传输数据。这项技术解决了传统 Content-Length 机制的局限性&#xff0c;使得 HTTP 协议能够完美…

Vue 项目首屏加载速度优化

Vue 项目首屏加载从 5s 到 1.5s&#xff1a;4 步落地优化方案&#xff0c;附完整代码 数据对比前段时间我在做一个活动时&#xff0c;打包加载后发现打开页面要等半天&#xff0c;经过几天的优化&#xff0c;最终将首屏加载时间从5秒压到 1.5 秒。这篇文章会把整个优化过程拆解…

Java学习第十六部分——JUnit框架

目录 一.概述 二.作用 三.版本 四.优势 五.局限性 六.发展方向 七.核心组件 1 测试用例 2.断言&#xff08;Assertions&#xff09; 3.测试生命周期 4.测试运行器 八.简单示例 九.JUnit 4 与 JUnit 5 的区别 十.idea项目实战 1.在idea中创建Java项目&#xff0c…

[吾爱原创] 千千每日计划

[吾爱原创] 千千每日计划 链接&#xff1a;https://pan.xunlei.com/s/VOYuE8p-KIV-NJr2_0d1Ak9YA1?pwdbqez# 介绍&#xff1a;千千系列的最后一款软件,一款每日计划的一款软件&#xff0c;并且支持时间段修改和打卡和导入导出等功能。 功能&#xff1a; 1.设置每天的计划 2…

docker命令(二)

目录 docker命令 1.inspect命令&#xff08;查看镜像信息&#xff09; 2.tag命令&#xff08;为镜像起别名&#xff09; 3.--help命令&#xff08;查看命令的使用帮组&#xff09; docker 命令 --help docker --help 4.run命令 1.格式 2.启动tomcat镜像 3. docker 不能被外部访…

Dockerfile实现java容器构建及项目重启(公网和内网)

公网情况0.Dockerfile关键字关键字作用一句话出现位置FROM指定基础镜像&#xff08;任何 Dockerfile 必须且首行&#xff09;全局RUN在镜像构建阶段执行命令&#xff08;常用来安装软件&#xff09;构建期COPY把宿主机文件/目录复制进镜像构建期ADD类似 COPY&#xff0c;但额外…

SpringCloud与Dubbo深度对比:架构、性能与生态全解析

引言在微服务架构盛行的今天&#xff0c;服务治理框架的选择成为企业技术栈决策的关键环节。Spring Cloud和Dubbo作为Java生态中最具代表性的两大微服务框架&#xff0c;各自拥有独特的优势和适用场景。本文将从架构设计、服务治理、性能表现、生态系统等多个维度进行深度对比&…

简历书写---自我评价怎么写

前言 今天一对一辅导了很多同学做简历&#xff0c;看到很多同学简历上都有一栏&#xff1a;自我评价 那我们就要思考一下&#xff0c;我们搞技术的&#xff0c;一份技术简历&#xff0c;自我评价上怎么写&#xff0c;才能算一个加分点呢&#xff1f; 观点分享 首先&#xff0c;…

嵌入式Linux学习 - 数据库开发

目录 一. 在终端的使用 1. 下载 2. 操作 3. 相关函数 1.增 2. 删 3. 改 4. 查 5. 补充函数 二. 在软件的使用 1. 下载 2. 操作 三. 在编程的使用 1. 下载 2. 相关函数 1. 打开 2. 读写执行sql语句 3. 关闭 一. 在终端的使用 1. 下载 sudo apt-get install …

产品运营必备的职场通用能力有哪些?如何一步步提升?

在流量红利消退的存量竞争时代&#xff0c;产品运营岗位正经历价值重构。单纯的活动策划与用户维护已无法满足发展需求&#xff0c;数据驱动的精细化运营成为行业分水岭。面对这场变革&#xff0c;复合能力建设与前瞻工具掌握是运营人突破天花板的密钥。推荐考取CDA数据分析师&…

ESPTimer vs GPTimer:ESP32 定时器系统深度解析

第十五章和第十六章分别学习了​​ESPTimer​​ 和 ​​GPTimer​​ &#xff0c;那这两种定时器有什么区别&#xff0c;如何使用呢&#xff0c;下面探讨下。1. 两种定时器对比介绍1.1 两种定时器设计在 ESP32 开发中&#xff0c;​​ESPTimer​​ 和 ​​GPTimer​​ 是两种完…