本文主要是介绍鹅厂工程师耗时两天整理的292道python大厂面试题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言
相对于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的差异?
- 生成器与函数的区别?
-
上面是部分面试资料,全套面试资料欢迎找我领取
这篇关于鹅厂工程师耗时两天整理的292道python大厂面试题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!