基于人工智能的Python面试题

基于人工智能的Python面试题

1. Python中的元组与列表区别是什么?

  • 列表是可变类型,元组不是。
  • 列表是引用类型,元组不是。
  • 列表使用场景更宽泛,元组更多用于一些数据不可变的场景,例如参数、或者返回值。

2. Python中的字典 是否有序?

  • python3.6之前字典是无序的,之后是有序的。
  • 原因可以参考下这个帖子 https://blog.csdn.net/weixin_48629601/article/details/107683829

3. Python对深浅拷贝的理解?

  • 深浅拷贝主要是针对引用类型数据。
  • 深浅拷贝深浅定义只要是拷贝深度。
  • 浅拷贝,仅仅拷贝第一层数据。这样可能导致数据共享,有可能会不小心出现问题。
  • 深拷贝,递归拷贝所有数据。
  • 深浅拷贝主要针对符合数据类型嵌套出现的情况

4. 请问你在什么场景下使用lambda 表达式

  • lambda 表达式,又名匿名函数,是函数的一种。适合一些简单的函数转化成表达式,更便于书写。
  • lambda 更适合一些 回调 调用场景。也就是函数当做参数传递的时候场景
  • 排序的sorted方法, pandas的分组等相关的方法都支持这个使用等等。

5. 请问python中的round使用需要注意什么?

  • 适合一些对精度要求不高的场景。
  • 原因详细查看,面试能说上原因即可: https://www.bbsmax.com/A/LPdo6lME53/

6. 请问如何对一个列表数据去重,请尽可能多说明

li = [1,2,3,4,12,2,1,3,5,6,7,8,19,20,12,43,1314]
# 1. 原始遍历去重
new_li = []
for i in li:if i not in new_li:new_li.append(i)# 2. 利用set特性去重,最便捷的方式
new_li_set = list(set(li))  # 3. 利用字典的key唯一特性去重
new_li_dict = list({}.fromkeys(li).keys())print(new_li)
print(new_li_set)
print(new_li_dict)
[1, 2, 3, 4, 12, 5, 6, 7, 8, 19, 20, 43, 1314]
[1, 2, 3, 4, 5, 6, 7, 8, 1314, 43, 12, 19, 20]
[1, 2, 3, 4, 12, 5, 6, 7, 8, 19, 20, 43, 1314]

7. 请问如何对一个是数字的列表中,删除里面的偶数,请尽可能用更多的方式

# 1. 首先我们要下说明,不能删除的原因. 删除元素后导致元素的索引发生变化。后的元组自动向前移动了# 1. 利用while 循环删除
li = [1,2,2,3,3,4,4,5,6,8,8]
li_copy = li1.copy()
index=0
while index<len(li):if li[index]%2==0:li.remove(li[index])continueindex+=1
print(li)# 2. 保留奇数数值
new_li = [i for i in li_copy if i%2!=0]
print(new_li)# 3.利用切片特性,切片等价于做了一个浅拷贝。这样遍历与删除就不是同一个列表
li1 = [1,2,2,3,3,4,4,5,6,8,8]
for i in li1[::]:if i%2==0:li1.remove(i)
print(li1)# 4. 可以保留偶数在删除与上面类似
li3 = [1,2,2,3,3,4,4,5,6,8,8]
new_li3 = [i for i in li3 if i % 2==0]
for i in new_li3:li3.remove(i)
print(li3)
[1, 3, 3, 5]
[1, 3, 3, 5]
[1, 3, 3, 5]
[1, 3, 3, 5]

8. 请说下,下面的li1 li2 li3 的特点

li = [1,2,3]
li1 = li  
li2=li[::]  
li3 = li.copy()
  • 列表是引用类型,所以li1=li li1与li是一个对象,它们引用的同一块空间
  • li2 是在li基础上切片得到的,切片相当于一个浅拷贝.
  • li3 是调用的内置的copy,这个copy方法也是一个浅拷贝

9. 请说下对function tools中reduce的理解

  • reduce 用于迭代累计处理我们序列数据
  • 参数有2个 一个是回调函数是一个方法,一个是初始化值
  • 回调函数,有2个参数,第一个参数是累计运算的结果,第二个是当前迭代的元素
  • 初始值:如果不设置则把第一个元素作为 它的初始值

下面是源代码示例

def reduce(function, sequence, initial=_initial_missing):"""reduce(function, sequence[, initial]) -> valueApply a function of two arguments cumulatively to the items of a sequence,from left to right, so as to reduce the sequence to a single value.For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates((((1+2)+3)+4)+5).  If initial is present, it is placed before the itemsof the sequence in the calculation, and serves as a default when thesequence is empty."""it = iter(sequence)if initial is _initial_missing:try:value = next(it)except StopIteration:raise TypeError("reduce() of empty sequence with no initial value") from Noneelse:value = initialfor element in it:value = function(value, element)return value

10. 请问如何反转一个字符串

# 1. 利用切片的反向切片操作
s = "abcdefg"
s1 = s[::-1]
print(s1)# 2. 利用list的逆置与字符串拼接
li = list(s)
li.reverse()
s2 = "".join(li)
print(s2)# 3. 传统的字符串遍历
s3 = ""
for ts in s:s3 = ts+s3
print(s3)
gfedcba
gfedcba
gfedcba

11. 如何交换2个变量的值

# 利用遍历的多变量赋值操作哈
a = 10
b = 20
b,a = a,b
print(a,b)
20 10

12. 发生循环导包的原因是什么,解决方法是什么?

  • 多个模块相互导入,在某个导入链上出现了循环。
  • 解决办法:打断这个导入链,可以考虑使用延时加载。当我们需要的时候再加载这个模块。 或者尝试调整导入顺序解决。

13. 请你说下 对super的理解?

  • super用于在继承关系中用于调用父类的方法,更多用于调用父类的初始化会更多一些。
  • super 返回的是一个mro顺序中的下一位的代理对象,这里可以简单对mro做个说明
  • super 返回的代理对象只能用于调用方法不能访问属性

14. 请问你用过自定义异常吗?

  • 答案要肯定:用过。
  • 做项目期间使用,简单能说上几个即可。 例如我们是调用训练模型的时候,一些错误我们可以定义成异常错误。例如: 加载模型异常错误,调用模型参数错误异常等

15. 如何创建一个Python的包模块,需要注意什么?

  • 在构建一个模块包的时候,内部模块推荐使用相对导包,这样方便我们的模块可以更好的被外部调用使用。

16. 请问 sys.path 作用?

  • sys.path 主要作用用于加载python模块使用的一个路径集合。当然一些动态库的路径也是在这个里面
  • 更多用于再我们构建项目的时候,更好的就加载模块使用。

17. 请问python的list 与 numpy的 Array区别?

  • 参考这个链接 https://jakevdp.github.io/PythonDataScienceHandbook/02.01-understanding-data-types.html

18. 请问python中的int 与 numpy 中的int64 区别是什么?

  • python3中的int大小无限制。python3之前两者是类似的都是64位的整数。
  • numpy int64 有固定大小 64位整数

19. is 与 == 的区别

  • is 是根据对象ID判断的
  • == 是根据值判断的

20. python __del__什么时候被调用

  • del 是对象被解释器回收的时候调用。
  • 显式的del 是相当于把引用计数置0,等待解释器回收

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

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

相关文章

【6.4】位运算-判断是否存在重复元素

一、题目 给定一个整数数组&#xff0c;判断 是否存在重复元素 。如果存在一值在数组中 出现至少两次 &#xff0c;函数返回 true 。如果数组中每个元素都不相同&#xff0c;则返回 false 。 示例 1: 输入: [ 1 , 2 , 3 , 1 ] 输出: true 示例 2: 输入: [ 1 , 2 , 3 , 4 ] 输出…

PCB打样下单流程

PCB打样下单流程 一、PCB打样在线下单流程1&#xff0e;平台登录2&#xff0e;PCB打样领券3&#xff0e;进入下单系统4&#xff0e;上传PCB文件5&#xff0e;PCB订单界面 PCB&#xff08;印刷电路板&#xff09;打样是验证设计、优化性能和推进项目进度的关键环节。随着互联网的…

Python爬虫知识体系-----正则表达式-----持续更新

数据科学、数据分析、人工智能必备知识汇总-----Python爬虫-----持续更新&#xff1a;https://blog.csdn.net/grd_java/article/details/140574349 文章目录 一、正则基础1. 为什么使用正则2. 正则与re模块简介 二、正则表达式1. 匹配单个字符与数字2. 限定符3. 定位符4. 选择匹…

yolo标签自动标注(使用python和yolo方法)

yolo代码自动标注 1.引言1.初阶“自动标注”&#xff0c;给每个图像都生成一个固定的标注文件&#xff0c;进而在labglimg中对矩形框进行微调&#xff0c;减少标注的工作量2.高阶自动标注&#xff0c;利用我们训练好的&#xff08;但是没有特别精准的&#xff09;yolo文件先对每…

在 WPF 中,如何使用命令来替代事件处理?

在 WPF&#xff08;Windows Presentation Foundation&#xff09;中&#xff0c;命令是一种非常强大的替代传统事件处理的方法&#xff0c;特别适用于 MVVM&#xff08;Model-View-ViewModel&#xff09;架构。命令可以实现界面&#xff08;View&#xff09;和逻辑&#xff08;…

语音 AI 革命:未来,消费者更可能倾向于与 AI 沟通,而非人工客服

「未来&#xff0c;消费者更可能倾向于与 AI 沟通&#xff0c;而非人工客服&#xff0c;因为这将成为解决问题的最高效途径。」 这篇来自 Bessemer Venture Partners 的报告&#xff0c;是目前为止对语音 AI 在企业应用上最完整清晰的一次梳理。 核心要点&#xff1a; 尽管市…

过去几年电子学习的趋势

近年来&#xff0c;在技术和不断变化的学习者期望的推动下&#xff0c;电子学习已经发展成为一种适应性强、沉浸式和社会化的教育形式。个性化已成为最具影响力的趋势之一&#xff0c;Coursera和LinkedIn Learning等平台为个人量身定制内容。这些平台使用人工智能来建议课程、跟…

Java基础-Java多线程机制

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 一、引言 二、多线程的基本概念 1. 线程与进程 2. 多线程与并发 3. 多线程的优势 三、Java多线程的实…

springboot 之 整合springdoc2.6 (swagger 3)

版本 springboot 3.3.5 jdk 17 springdoc 2.6.0 依赖pom <dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.6.0</version> </dependency>注解对比…

Zabbix部署

1.集群规划 进程虚拟机节点1虚拟机节点2虚拟机节点3zabbix-agent√√√zabbix-server√PostgreSQL√zabbix-web√ 2.准备工作 默认在虚拟机节点2安装kafka、在虚拟机节点3安装redis 2.1关闭3台节点防火墙 sudo systemctl stop firewalld.service sudo systemctl disable fi…

如何优化锚文本来提升关键词排名?

锚文本在SEO中是个小细节&#xff0c;但作用可不小。它不仅能影响外链的质量&#xff0c;还直接影响你的目标关键词排名。你要知道&#xff0c;锚文本并不是随便加上就行&#xff0c;它得讲究技巧和策略。 锚文本的关键词选择一定要精准&#xff0c;且与页面内容高度相关。比如…

java项目-jenkins任务的创建和执行

参考内容: jenkins的安装部署以及全局配置 1.编译任务的general 2.源码管理 3.构建里编译打包然后copy复制jar包到运行服务器的路径 4.部署任务&#xff0c;执行部署脚本

怎么能够制作活码的二维码?在线生成活码的简单技巧

活码是现在很常用的一种二维码类型&#xff0c;可以用来展示日常生活中的视频、音频、图片、文件等多种类型的内容&#xff0c;有效提高内容分享的效率&#xff0c;可以让更多人同时扫码获取内容。使用二维码来展示内容&#xff0c;用户也不需要下载或者保存内容&#xff0c;扫…

谷歌SEO为什么是一场持久战?

很多人在刚开始做SEO时&#xff0c;都会满怀期待&#xff0c;希望能在短时间内看到显著的效果。但很快&#xff0c;他们就会发现&#xff0c;这是一场需要耐心的持久战。谷歌的算法非常复杂&#xff0c;每天都在调整优化&#xff0c;你今天做的改动&#xff0c;可能要几个月后才…

6TS Series TVS 的 解析

6TS Series 600W Transient Voltage Suppresso指的是一系列高性能的瞬态电压抑制二极管&#xff08;Transient Voltage Suppressor&#xff0c;TVS&#xff09;&#xff0c;这些二极管由时源芯微科技&#xff08;TimeSource&#xff09;设计用于保护敏感的电子设备免受雷击、电…

AI绘图最强软件stable diffusion,一文带你迅速了解!

有需要stable diffusion整合包可以扫描下方&#xff0c;免费获取 01 — 什么是 SD ​ Stable Difusion(简称 SD) 其三种概念。 1.用来指代稳定扩散(Stable Diffusion) 技术,如 Midjourney是基于Stable Difusion技术实现的就是指它运用了 Stable Diffusion 的技术原理。 …

Leecode热题100-35.搜索插入位置

给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出: 2示例 2: 输入:…

解决Ultralytics的自定义YOLO模型单GPU可以训练多GPU训练却报错subprocess.CalledProcessError的问题

解决步骤 一、报错详情二、解决思路1. 创建.sh运行文件2. YOLO训练脚本文件3. 终端命令4. 成功运行 一、报错详情 subprocess.CalledProcessError: Command [/home/xxx/anaconda3/envs/openmmlab/bin/python, -m, torch.distributed.run, --nproc_per_node, 3, --master_port,…

Linux探秘坊-------1.系统核心的低语:基础指令的奥秘解析(1)

1.Linux的背景介绍 Linux 操作系统的发展历程充满了激情与创新喵&#xff5e;&#x1f380; 萌芽期 (1983 - 1991)&#xff1a;Linux 的历史可追溯到 1983 年&#xff0c;理查德斯托曼 (Richard Stallman) 发起 GNU 计划&#xff0c;目标是创建一个自由软件操作系统。1987 年发…

三款良心实用的桌面待办提醒软件 让工作效率Up提升!

互联网科技的迅速发展&#xff0c;让大家的工作方式也发生了巨大的变化&#xff0c;过去传统的办公方式已然不能适应当下节奏快速发展的时代。在如今工作快节奏的催促下&#xff0c;我们如何才能从琐碎、复杂的工作任务重&#xff0c;找到一条清晰的工作节奏成为效率工作up提升…