前言
相对于python大家应该都不会陌生吧!现在java跟python可以算的是势均力敌了,所以现在学习python 的小伙伴也是越来越多了,可是学完之后就能找到称心如意的工作了吗?很多小伙伴学习Python的时候感觉很简单,但是到了去面试的时候就是一头雾水,常常被问到一些问题不知道跟怎么做。
小编为了大家整理两天,今天它来了python大厂292道面试题。希望大家能够希望!
292道python大厂面试题
学习python的优点是什么?
python语法非常优雅,简单易学
免费开源
跨平台,可以自由移植
可扩展,可嵌入性强
第三方库丰富
python的应用领域
在系统编程中应用广泛,比如说shell工具.
在网络爬虫方面功能非常强大,常用的库如scrapy, request 等
在web开发中使用也很广泛,如很多大型网站都用python开发的,如ins,youtube等,常用的框架如django, flask等
python在系统运维中应用广泛,尤其在linux运维方面,基本上都是自动化运维。
在人工智能,云计算,金融等方面也应用非常广泛。
python和java、php、C、c#、C++等其他语言对比?
Java C# PHP Python (开发效率高),这些语言本身不需要你去管理内存了。它们都有自己的虚拟机,对于开辟内存、释放内存都由这个虚拟机处理。
C和Python, Java、C#等C语言:代码编译得到机器码,机器码在处理器上直接执行,每一条指令控制CPU工作其他语言:代码编译得到字节码,虚拟机执行字节码并转换成机器码再后在处理器上执行Python和CPython这门语言是由C开发而来
对于使用: Python 的类库齐全并且使用简洁,如果要实现同样的功能,Python10行代码可以解决,C可能就需要100甚至更多
对于速度: Python 的运行速度相较与C,绝逼是慢了Python和Java、C#等
对于使用: Linux 原装Python,其他语言没有;以及门语言都有非常丰富的类支持
对于速度: Python 在速度上可能稍显逊色所以,Python 其他语言没有什么本质区别,其他区别在于:擅长某领域、富先入为主
python解释器种类以及特点
CPython
c语言开发的 使用最广的解释器
IPython
基于cpython之上的一个交互式计时器交互方式增强功能和cpython一样
PyPy
目标是执行效率勁JIT技术对python代码进行动态编译,提高执行效率
JPython
运行在Java.上的解释器直接把python代码编译成Java字节码执行
lronPython
运行在微软.NET 平台上的解释器,把python编译成NET的字节码
请列出至少5个PEP8规范
PEP8规范
每个缩进级别使用4个空格
每行代码的最大长度限制为 79个字符
若是导入多个库函数,应该分开依次导入
道路应按照以下顺序导入
a、标准库导入
b、相关的第三方库导入
c、本地应用程序的库导入
在表达式中避免无关的空格
在括号或者大括号内
在尾随逗号和后面的右括号之间
在逗号,分号或者冒号前面.
函数名的与后面的参 数的括号之间
代码更改时,相应的注释也要随之更改
命名要规范,通俗易懂
如何实现字符串的反转?如:name=felix,反转成name=xilef
name = "felix"
#方法
name=name[:- 1]
#方法二:
name2=list(name)
name2.reverse0
name="join(name2)
#方法三:
from functools import reduce
name= reduce(lambda x, y: y+x, name)
文件操作时,xreadlines 和readlines的区别
xreadlines返回的是一个生成器
readlines返回的是一个列表
列举字符串、列表、元组、字典每个常用的5个方法
字符串---字符串方法总结
strip( ->去掉字符串两端的空白符
split() ->对字符串进行分割,默认按照空格分割
join() ->字符串连接
startwith0,endwith0 ->判断是否以啥开头或者结尾
replace() ->字符串替换
find() -> 查找字符串,存在返回第一个索引,不存在返回-1
列表---列表方法总结
count() ->统计在列表中出现的个数
apped0 ->在列表末尾添加值
pop() ->删除- 个对象,默认最后-一个
remove()->删除指定的第-个匹配项
insert() -> 插入对象
index() -> 获取索引
元组
count() ->统计在元组中出现的个数
index() ->获取索引
字典
keys0 ->获取所有的键
pop()->删除指定的键的键值对
popitem() ->随机删除- - 个键值对
update() ->更新字典,参数为一个字典,如果键已存在,则更改,不存在则添加
setdefault( ->如果键存在则,返回该键对应的值,如果不存在,设置该键为设置的默认值,然后返回该键对应的值
get( -> 返回键对应的值
fromkeys() ->创建字典,第一个参数为可迭代对象,每个值变成字典的键,第二个参数为每个键的默认值
(由于面试答案太多小编就只整理了面试题目)
面试题
什么是反射,以及应用场景
简述python的深浅拷贝
python的垃圾回收机制
python的可变类型和不可变类型的区别
常用字符串格式化有哪几种?
有两个字符串列表a和b,每个字符串是由逗号隔开的- -些字符
解决哈希冲突的算法有哪几种?分别有什么特点?
简述python字符串的驻留机制
python哪些类型的数据才能作为字典的key?
描述以下字典的items()方法和iteritems()方法有啥不同?
请冽举你所知道的python代码检测工具以及他们之间的区别
介绍一下try except的用法和作用?
在python中如何拷贝-个对象,并说明他们之间的区别
python中进制转换
关于Python程序的运行方面,有什么手段能提升性能?
python是如何进行内存管理的? python 的程序会内存泄漏吗?说说有没有什么方面阻止或者检测内存泄漏?
1 <(22)和1<22的结果分别是什么?
如何查找一个字符串中特定的字符? find 和index的差异?
生成器与函数的区别?
今天小编就整理到这里python大厂面试题一共是292道想要获取的小伙伴可以+wx17667506182来获取哦~~~