python面试总结

Python面试必看!53个经典面试题详解 本文列出53个Python面试问题,并且提供了答案,供数科学家和软件工程师们参考。 不久前,我作为“数据科学家”开始担任一个新的角色,实际上就是一位“Python工程师”。 如果我在面试前提前了解一下Python的线程生命周期,而不是它的Recommender System(推荐系统)的话,我可能会在面试中表现得更好。 为了帮助大家通过面试,下面我整理了我为Python面试/工作准备的问题,并提供了答案。大多数数据科学家都会编写大量的代码,所以这些问题/答案对科学家和工程师都同样适用。 无论你是一位面试官、 阅读详情

1. 列表和元组的区别

  • 从可变上,列表可变,元组不可变。即可以直接在列表上进行增、删、改,但元组不行,所以从某种程度上元组更安全
  • 从效率上,创建元组要比创建列表块,存储空间要比列表小。当某些变量我们不再使用的时候,系统就会自动回收释放内存,以便其他程序或变量使用。对于长度为1-20的元组而言,即使不再使用,也不会马上释放内存,而是留给以后使用。当需要创建新的元组的时候,就可以直接使用这块内存,而不需要再去向系统申请内存。;由于列表可变,所以需要额外的存储空间,这样才可以实时追踪列表空间的使用情况,当空间不足时,及时分配额外空间。

列表,元组,字典,集合的同异

2. 列表插入的4种方法

  1. a+b
  2. a.append(value)
  3. a.extend(b)
  4. a.insert(n, value)

方法2和方法3都是添加到末尾,方法4是添加到指定位置。

3. 列表删除的三种方法

  1. a.remove(value)——删除指定元素(用for循环删除重复元素时,要用copy)
  2. del a[index]——删除指定索引的元素
  3. a,pop(index)——弹出并删除指定索引的元素

4. 深copy和浅copy

import copy
a = [1, 2]

# 浅copy,a变化时,b也会变化
b = copy.copy(a)

#深copy,a变化时,c不会变化
c = copy.deepcopy(b)

5. 用python实现斐波那契数列

  • 直接计算(返回第 n n n个值):
def rabbit1(n):
    f1=1
    f2=1
    if (n==1 or n==2):
        return 1
    else:
        for i in range(3,n+1):
            f1,f2=f2,f1+f2
        return f2
  • 直接计算(返回列表):
def rabbit(n):
    f1=1
    f2=1
    results = []
    if n == 1:
        return [1]
    if n == 2:
        return [1, 1]
    else:
        results.append(1)
        results.append(1)
        for i in range(3,n+1):
            f1,f2=f2,f1+f2
            results.append(f2)
        return results
  • 递归方式1(速度慢)
def rabbit2(n):
    if (n==1 or n==2):
        return 1
    else:
        return rabbit2(n-1)+rabbit2(n-2)

  • 递归方式2(比递归方式1快,但还是比直接计算慢)
def rabbit3(n,rabbits={1:1,2:1}):
    if n in rabbits:
        return rabbits[n]
    res=rabbit3(n-1)+rabbit3(n-2)
    rabbits[n]=res
    return res

6. 冒泡排序

比较两个相邻的元素, 如果左边比右边的大, 就交换它们.

def BubbleSort(lst):
    n=len(lst)
    if n<=1:
        return lst
    for i in range (0,n):
        for j in range(0,n-i-1):
            # 逆序排, 即从大到小
            # 如果想要从小到大排, 改为lst[j]>lst[j+1]即可
            if lst[j]<lst[j+1]:
                (lst[j],lst[j+1])=(lst[j+1],lst[j])
    return lst

7. 快速排序

def quick_sort(nums: list, left: int, right: int) -> None:
	if left < right:
		i = left
		j = right
		# 取第一个元素为枢轴量
		pivot = nums[left]
		while i != j:
			# 交替扫描和交换
			# 从右往左找到第一个比枢轴量小的元素,交换位置
			# 如果是降序, 改成nums[j] < pivot即可
			while j > i and nums[j] > pivot:
				j -= 1
			if j > i:
				# 如果找到了,进行元素交换
				nums[i] = nums[j]
				i += 1
			# 从左往右找到第一个比枢轴量大的元素,交换位置
			# 如果是降序, 改成nums[i] > pivot即可
			while i < j and nums[i] < pivot:
				i += 1
			if i < j:
				nums[j] = nums[i]
				j -= 1
		# 至此完成一趟快速排序,枢轴量的位置已经确定好了,就在i位置上(i和j)值相等
		nums[i] = pivot
		# 以i为枢轴进行子序列元素交换
		quick_sort(nums, left, i-1)
		quick_sort(nums, i+1, right)		


# 测试代码
import random

data = [random.randint(-100, 100) for _ in range(10)]
quick_sort(data, 0, len(data) - 1)
print(data)


python面试:经典python面试题面试者必看! 随着Python在企业中的应用越来越多,岗位需求越来越大,面试成为了搞定优质职位的快速方式,下面是笔者面试10余家企业总结的面试题,希望对Python从业者有帮助。 1.Python是如何进行内存管理的? 答:从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制 一、对象的引用计数机制 Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数。 引用计数增加的情况: 1,一个对象分配一个新名称 2,将其放入一个容器中(如列表、元组或字典) 引用计数减少的情况: 阅读详情

相关推荐

Python面试宝典

转自黑马程序员《Python面试宝典》http://bbs.itheima.com/thread-402667-1-1.html 可以下载PDF文件。 目录 Q1 代码中要修改不可变数据会出现什么问题?抛出什么异常? Q2 不适用中间变量交换变量a,b的值。 Q3 print调用的什么底层方法? Q4 下面这段代码的输出结果是什么?请解释。 Q5 input()函数 Q6 range...

qq_24816993的博客 7520

吐血总结!50道Python面试题集锦(附答案)

PEP代表Python Enhancement Proposal。它是一组规则,指定如何格式化Python代码以获得最大可读性。

qq_46094651的博客 3853

【面试系列】Python 高频面试题

本文涵盖了Python编程语言面试中常见的初级、中级和高级面试题,并对每个问题进行了详细解答。初级问题侧重于基本语法和数据结构,如列表、字典和字符串操作。中级问题深入探讨了面向对象编程、异常处理和模块化编程等内容。高级问题则涉及多线程、异步编程、性能优化和设计模式等高级主题。最后,总结了Python面试中需要掌握的常考知识点,包括数据类型、函数、面向对象编程、异常处理、标准库和高级主题,以帮助求职者全面准备Python面试。

在路上的专栏 2161

Python面试经验总结,面试一时爽,一直面试一直爽!

我做了两份简历,用两个手机账号,两个简历名字,分别在各个招聘网站投了双份简历,一个是数据分析的简历、一个是web全栈开发的简历,我真正接触python快2年,不管是学习还是工作学到的东西,这两年大概掌握了(前端+django+爬虫+数据分析+机器学习+NLP+Linux)技术,技术水平自我评价一般,够日常一般使用,基于自己掌握的技术可以分成2方面,web和数据分析,所以为了尽快找到工作,就做了web全栈开发+数据分析(含爬虫)2份简历,同时投递

Python栈 841

别再手动发通知了!用Python+飞书机器人,5分钟搞定自动化消息推送(附完整代码)

本文详细介绍了如何利用Python和飞书机器人实现自动化消息推送,大幅提升工作效率。通过Webhook调用和Python脚本,可以轻松发送告警、日报等各类消息,并与业务系统深度集成。文章还提供了完整代码示例和避坑指南,帮助开发者快速上手。

weixin_28736335的博客 305

RS485差分信号A下拉B上拉导致的乱码问题:一个硬件工程师的踩坑实录

本文通过一个工业网关项目中的RS485通信乱码故障,深入剖析了差分信号偏置电路设计的核心要点。文章详细记录了从波形抓取、原理图分析到多节点冲突排查的全过程,重点揭示了A下拉、B上拉这一反常规配置如何导致总线空闲状态不稳定,进而引发数据包末尾多出0x00字节及前导乱码的问题,并最终给出了硬件与软件协同的系统级解决方案与设计准则。

weixin_29159441的博客 236

聊聊我的一次真实 Python 面试经历

首先我挺喜欢这家公司的面试风格的,也是比较务实的吧。无奈自己的心理因素和技术水平都不好,导致面试失败。再接再厉吧。

xxue345678的博客 928

交换芯片数据通路四大核心微架构深度解析

数据通路是交换芯片性能的物理根基,决定着低延迟、高吞吐与突发承载能力。其本质是在硅片约束下对带宽、时序、功耗与统计复用的系统性权衡。Crossbar提供确定性低延迟但受RC延迟与功耗制约;VOQ通过虚拟队列隔离输出争抢,却引入仲裁复杂度与内存开销;Shared Buffer依托统计复用提升缓存利用率,但面临碎片化与管理策略挑战;Cell Fabric以固定长度cell重构交换粒度,在AI与金融等小包敏感场景实现尾延迟稳定。这些架构并非替代关系,而是面向不同网络不确定性(如流量不对称性、突发强度、包长分布)的

weixin_32667955的博客 189

Python面试集锦

很全的 Python 面试题 PYTHON 一些基础面试题目总结 常见面试题整理–Python概念篇

瘦长的丰一禾 2143

【C++】lambda表达式

本篇文章我们要学习的是lambda表达式,它是C++11新增的一种特别方便的语法,相较于之前的函数指针以及仿函数都方便了不少,下面就让我们一起来学习吧。

malloc不出对象的博客 2630

动态博弈、威胁与承诺(博弈论入门学习笔记四)

0 动态博弈 动态博弈:行动有先后顺序,不同的参与人在不同时点行动,先行动者的选择影响后行动者的选择空间,后行动者可以观察到先行动者做了什么选择。例如下棋、消费者和商家讨价还价、谈婚论嫁、企业之间的价格战等等。 因此,为了做出最优的行动选择,每个参与人都应该思考:如果我如此选择,对方将如何应对?如果我是他,我将会如何行动?给定他的应对,什么是我的最优选择? 动态博弈中的战略:在博弈开始之前就...

stepho的博客 1万+

这几道Python面试题,稳准狠,Python面试题No15

文章目录必须放一个表情包,太魔性了!第1题: 修改以下Python代码,使得下面的代码调用类A的show方法?第2题:修改以下Python代码,使得代码能够运行第3题: 下面这段代码的输出是什么?第4题: 下面这段代码输出什么?第5题:如何添加代码,使得没有定义的方法都调用myfunc方法?第6题:关注题,最近在公号更新一个神奇的系列入门文章 必须放一个表情包,太魔性了! 第1题: 修改以下Py...

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 2万+

论文翻译:Automatic Lesson Plan Generation via Large Language Models with Self-critique Prompting

在本文中,我们利用大型语言模型(LLMs)的理解和生成能力来自动生成定制化的课程计划。这解决了传统计划可能无法充分满足不同教学环境和学生群体的特定需求的常见挑战。我们提出了一个新颖的三阶段过程,包括使用检索增强生成(RAG)逐步生成课程计划的每个关键组成部分,通过LLMs进行自我批评,以及随后的细化。我们使用这种方法为小学2至5年级生成了涵盖80多个主题的数学课程计划。邀请了三位经验丰富的教育工作者制定全面的课程计划评估标准,然后使用这些标准将我们的LLM生成的课程计划与同一主题的实际课程计划进行基准比较。

CSPhD-winston的博客 1100

Python基础面试,看这篇文章画重点吧,Python面试题No1

为什么有这个系列的文章 一直想写一些更加基础的文章,但是总是想不到好的点子,最近到了就业季,一大堆学生面临就业了,正好,从Python的面试题出发,分析和解答一些常见的面试题,并且总结一些文字。 每一讲涉及5~10道面试题,整个系列的文章初步规划有20篇。 今天的面试题 ...

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 2万+

7.1华为OD机试真题 新系统 - 仓库盘点 (Java/Py/C/C++/Js/Go)

7.1华为OD机试真题 新系统 - 仓库盘点 (Java/Py/C/C++/Js/Go)

算法大师! 506

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的商品识别系统(深度学习+UI界面+训练数据集+Python代码)

随着新零售和智能仓储的快速发展,商品识别技术成为计算机视觉领域的重要研究方向。本文详细介绍了基于YOLO系列算法的商品识别系统的完整实现方案,涵盖算法原理、数据集构建、模型训练、系统集成和可视化界面开发。通过对比YOLOv5到YOLOv8各版本性能差异,我们构建了一个高效、准确且用户友好的商品识别系统,并提供完整的代码实现。

YOLO 284

Python面试宝典PDF版

Python面试宝典PDF版 【下载地址】Python面试宝典PDF版 Python面试宝典PDF版是一份全面且实用的Python技术面试指南,涵盖Python进阶、经典面试题、实战案例及面试总结四大核心内容。通过130页的详实讲解,帮助您深入掌握Python高级特性和常用库,从容应对各类面试问题。100个实战案例让您了...

gitblog_06708的博客 661

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Python面试总结

hello,大家好,我是potato,我总结一下最近的面试遇到的问题~1.Python开发(软通动力)2.数据标注实习生(安凯微电子)3.AI 实习生(素隐)5.RPA开发实习生(申迪)首先给了几个跟课堂信息相关的数据库,然后写一个查询语句Linux的常用命令(如何查看当前进程,如何查看当前文件夹,如何查看当前磁盘状态)http和https的区别udp和tcp的区别Python常用的数据类型编写一个函数,求出n的阶乘编写一个函数,当数字为3或者5的倍数,或者又是3的倍数和5的倍数的话,就输出不同的数字编写一

m0_74655006的博客 2380

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Python 爬虫面试题,Python面试必看

先来一份完整的Python爬虫工程师关于Python面试的考点: 搞定这套 Python 爬虫面试题,Python面试 so easy 一、 Python 基本功 1、简述Python 的特点和优点 Python 是一门开源的解释性语言,相比 Java C++ 等语言,Python 具有动态特性,非常灵活。 2、Python 有哪些数据类型? Python 有 6 种内置的数据类型,其中不可变数据...

丈哥SEO博客 2217

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

python面试难吗_Python面试经验总结,面试一时爽,一直面试一直爽!

前言:这是一位转行的朋友最近对Python岗位面试后的一篇经验之谈,从Python岗位需求到Python就业方向都有,很有借鉴意义面试的心得体会:1、简历制作我做了两份简历,用两个手机账号,两个简历名字,分别在各个招聘网站投了双份简历,一个是数据分析的简历、一个是web全栈开发的简历,我真正接触python快2年,不管是学习还是工作学到的东西,这两年大概掌握了(前端+django+爬虫+数据分析+...

weixin_39529128的博客 225

python面试_如何应对Python面试

python面试Have you cleared the first round of calls with HR? Are you going for a Python interview in person? If you’re wondering what Python-related questions may be asked, this guide should help. 您是否已...

culh2177的博客 487

python面试通关_Python面试通关宝典

《Python面试通关宝典》包括 100 多个问答题和 300 多个程序实例,全面、系统地帮助读者快速掌握 Python 语法与算法的知识。本书适合立志成为 Python 程序员或即将参加 Python 程序员面试的读者阅读,也可作为计算机相关专业毕业生的求职指导用书。《Python面试通关宝典》内容分为两篇,第 1 篇是 Python 语言面试题,第 2 篇是算法面试题。Python 语言面试题...

weixin_39552874的博客 283
上一篇: 思维之用户流失预警
下一篇: 线性回归——多重共线性
米法·
博客等级 码龄8年 179粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值