大厂常考python面试题10道

julyedu_7 julyedu_7 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

题目来源:七月在线社区学员分享,这边整理输出答案,答案仅供参考,欢迎评论区交流指正。

6本电子书的图放在文末,需要的评论说声。

1、Python中的列表和元组有什么区别?

list 是可变的对象,元组 tuple 是不可变的对象。也就是说列表中的元素可以进行任意修改,而元组中的元素无法修改。

2、Python数组和列表有什么区别?

Python中的数组和列表具有相同的存储数据方式。但是,数组只能包含单个数据类型元素,而列表可以包含任何数据类型元素。

3、Python中append和extend的区别?

append() 向列表尾部追加一个新元素,列表只占一个索引位,在原有列表上增加

extend() 向列表尾部追加一个列表,将列表中的每个元素都追加进来,在原有列表上增加

4、Python中==和is的区别

is用于判断两个变量引用对象是否为同一个,==用于判断引用变量的值是否相等。

5、说一下Python深浅拷贝

对于不可变类型(字符串、数值型、布尔值):浅拷贝和深拷贝一样,对象的引用(内存地址)没有发生变化。

对于可变对象(列表、字典、集合):浅拷贝在拷贝时,只会copy一层,在内存中开辟一个空间,存放这个copy的列表。更深的层次并没有copy,即第二层用的都是同一个内存;深拷贝时,会逐层进行拷贝,遇到可变类型,就开辟一块内存复制下来,遇到不可变类型就沿用之前的引用。因为不可变数据修改会从新开辟新的空间,所以,深拷贝数据之间的修改都不会相互影响。

总结如下:

浅拷贝花费时间少,占用内存少,只拷贝顶层数据,拷贝效率高。

对不可变对象拷贝时,浅拷贝和深拷贝的作用是一致的,不开辟新空间,相当于赋值操作。

可变对象浅拷贝时,只拷贝第一层中的引用,如果元素是可变对象,并且被修改,那么拷贝的对象也会发生变化。

可变对象深拷贝时,会逐层进行拷贝,遇到可变类型,就开辟一块内存复制下来。

元组是个异类。元组是否为可变对象取决于元组中的元素。如果元组中每个元素以及其子孙元素都不包含可变对像,那么这个元祖就是不可变对象。如果元组的元素以及子孙元素中包含可变对象,那么元组就是可变对象。

6、区分下break,continue和pass?

break:跳出循环,不执行下一个循环。同时break后面的代码也不会执行。

pass:pass后面的代码还是会继续执行,也就是当前的循环还在继续。

continue:continue后面的代码不会执行,而是直接进入下一个循环。

7、Python中的局部变量和全局变量是什么?

  • 全局变量:在函数外或全局空间中声明的变量称为全局变量。这些变量可以由程序中的任何函数访问。
  • 局部变量:在函数内声明的任何变量都称为局部变量。此变量存在于局部空间中,而不是全局空间中。

8、python中range&xrange有什么区别?

在大多数情况下,xrange和range在功能方面完全相同。

它们都提供了一种生成整数列表的方法,唯一的区别是range返回一个Python列表对象,x range返回一个xrange对象。这就表示xrange实际上在运行时并不是生成静态列表。

它使用称为yielding的特殊技术根据需要创建值。该技术与一种称为生成器的对象一起使用。因此如果你有一个非常巨大的列表,那么就要考虑xrange。

9、python装饰器是什么?

装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景

10、说一下python迭代器和生成器?

介绍python生成器需要先介绍可迭代对象和迭代器。

可迭代对象(Iterable Object),简单的来理解就是可以使用 for 来循环遍历的对象。比如常见的 list、set和dict。

可迭代对象具有__iter__ 方法,用于返回一个迭代器,或者定义了 getitem 方法,可以按 index 索引的对象(并且能够在没有值时抛出一个 IndexError 异常),因此,可迭代对象就是能够通过它得到一个迭代器的对象。所以,可迭代对象都可以通过调用内建的 iter() 方法返回一个迭代器。

生成器其实是一种特殊的迭代器,不过这种迭代器更加优雅。它不需要再像上面的类一样写__iter__()和__next__()方法了,只需要一个yiled关键字。


↓ ↓ ↓以下6本书,电子版,直接送 ,想要哪本评论说声↓ ↓ ↓

新出的《2021年最新大厂AI面试题 Q3版》+《2021年最新大厂AI面试题 Q4版》还没来得及拍照:

...全文

相关推荐

大厂总结110道Python面试题

大厂总结110道Python面试题

数字魔术师

Python面试题110道

本文总结了互联网大厂Python面试(例如Python工程师)中常考的110道题目、解题思路及详细答案。方便Python面试前的基础复习,也适用于学生考试复习及平时练习。

通信与商务

110道 MySQL面试题及答案

这份文档包含了110道MySQL面试题及其答案,旨在帮助准备MySQL面试的人更好地准备和学习。 ## 查询语句 1. 如何查询表中的所有记录? 答案:使用SELECT语句,例如:SELECT * FROM table_name; 1. 如何查询表中的前10条记录? 答案:使用SELECT TOP 10 * FROM table_name;(对于MySQL,使用SELECT * FROM table_name LIMIT 10;) 1. 如何查询表中的特定列? 答案:使用SELECT语句并列出所需的列名,例如:SELECT column1, column2 FROM table_name; 1. 如何根据条件查询记录? 答案:使用SELECT语句并在WHERE子句中指定条件,例如:SELECT * FROM table_name WHERE condition; 1. 如何对查询结果进行排序? 答案:使用SELECT语句并在ORDER BY子句中指定排序条件,例如:SELECT * FROM table_name ORDER BY column_name ASC/

琉底骅网络

【16】第2版:​大厂面试题.rar

整理各大厂面试题,包括java基础、web技术、框架技术、数据库缓存技术、消息队列、python、网络编程、微服务技术、并发编程技术、设计模式等等

郭靖宇

互联网大厂面试题2022-8,一共9个

互联网大厂面试题2022-8,一共9个

jgszhuzhu
评论 1
收藏 已收藏
分享
返回顶部