附答案 | 最强Python面试题之Python基础题(4)
本文正在参与【[面霸养成记 ] 】 征文活动,一起来聊聊校招的那些事吧,牛客周边和百元京东卡等你来领~
写在之前
大家好呀,我是帅蛋。
今天是 Python 基础面试题第四弹,也是 Python 基础面试题的最后一部分,明天我们就开始 Python 进阶面试题的更新~
今天加餐,更新 12 道面试题,Python 面试八股文,都在我的【最强Python面试题】系列啦。
大家一定要记得点赞收藏呀!!!
以下是历史文章,题目排名不分先后,都要牢牢掌握!
顺便提一句,我所有和面试相关的内容都会放在#帅蛋的面试空间# 中,大家可以关注下这个话题~
我会尽我最大的努力帮助到大家哒!!!
欢迎和帅蛋聊一聊~扣扣群:609771600,获取最新秋招信息 & 内推进度,日常聊聊迷茫吹吹牛皮,抱团取暖❤️❤️❤️
主要内容
这些面试题是我结合自己的经验整理的,主要就是下面这 5 个方面:
- Python 基础面试题
- Python 进阶
- Python 后台开发
- 爬虫
- 机器学习
对每道面试题我都会附带详细的答案,有些我觉得重要的内容会详细讲解,虽然是面试八股文,我还是希望大家不是只“知其然”,更得“知其所以然”。
关于更新频率,每天我会更新 10 道题左右,总共会有差不多 200 道。
无论是准备面试还是自己学习,这份面试题绝对值得你去看,去学习。
大家可以关注我,再关注我,使劲关注我,不要错过每天的更新~
以下是正文
Python 基础面试题第四弹正式开始,大家一定要记得点赞收藏,一起加油!
1、read、readline 和 readlines 的区别?
read:读取整个文件。
readline:读取下一行,使用生成器方法。
readlines:读取整个文件到一个迭代器以供我们遍历。
2、range 和 xrange 的区别?
两者用法相同,不同的是 range 返回的结果是一个列表,而 xrange 的结果是一个生成器,前者是直接开辟一块内存空间来保存列表,后者是边循环边使用,只有使用时才会开辟内存空间,所以当列表
很长时,使用 xrange 性能要比 range 好。(稍作了解即可,xrange 现在不怎么用,但是不排除有人不知道)
3、请简述你对 input()函数的理解?
在 Python3 中,input()获取用户输入,不论用户输入的是什么,获取到的都是字符串类型的。
在 Python2 中有 raw_input()和 input(), raw_input()和 Python3 中的 input()作用是一样的,
input()输入的是什么数据类型的,获取到的就是什么数据类型的。
4、代码中要修改不可变数据会出现什么问题?抛出什么异常?
代码不会正常运行,抛出 TypeError 异常。
5、print 调用 Python 中底层的什么方法?
print 方法默认调用 sys.stdout.write 方法,即往控制台打印字符串。
6、Python 的 sys 模块常用方法
sys.argv 命令行参数 List,第一个元素是程序本身路径
sys.modules.keys() 返回所有已经导入的模块列表
sys.exc_info() 获取当前正在处理的异常类,exc_type、exc_value、exc_traceback 当前处理的
异常详细信息
sys.exit(n) 退出程序,正常退出时 exit(0) sys.hexversion 获取 Python 解释程序的版本值,16 进制格式如:0x020403F0
sys.version 获取 Python 解释程序的版本信息
sys.maxint 最大的 Int 值
sys.maxunicode 最大的 Unicode 值
sys.modules 返回系统导入的模块字段,key 是模块名,value 是模块
sys.path 返回模块的搜索路径,初始化时使用 PYTHONPATH 环境变量的值
sys.platform 返回操作系统平台名称
sys.stdout 标准输出
sys.stdin 标准输入
sys.stderr 错误输出
sys.exc_clear() 用来清除当前线程所出现的当前的或最近的错误信息
sys.exec_prefix 返回平***立的 python 文件安装的位置
sys.byteorder 本地字节规则的指示器,big-endian 平台的值是'big',little-endian 平台的值是
'little' sys.copyright 记录 python 版权相关的东西
sys.api_version 解释器的 C 的 API 版本
sys.version_info 元组则提供一个更简单的方法来使你的程序具备 Python 版本要求功能
7、unittest 是什么?
在 Python 中,unittest 是 Python 中的单元测试框架。它拥有支持共享搭建、自动测试、在测试
中暂停代码、将不同测试迭代成一组等的功能。
8、模块和包是什么?
在 Python 中,模块是搭建程序的一种方式。每一个 Python 代码文件都是一个模块,并可以引用
其他的模块,比如对象和属性。
一个包含许多 Python 代码的文件夹是一个包。一个包可以包含模块和子文件夹。
9、什么是正则的贪婪匹配?
>>>re.search('ab*c', 'abcaxc') <_sre.SRE_Match object; span=(0, 3), match='abc'> >>>re.search('ab\D+c', 'abcaxc') <_sre.SRE_Match object; span=(0, 6), match='abcaxc'>
贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。
非贪婪匹配:就是匹配到结果就好,就少的匹配字符。
10、常用字符串格式化哪几种?
% 格式化字符串操作符
print 'hello %s and %s' % ('df', 'another df')
字典形式的字符串格式化方法
print 'hello %(first)s and %(second)s' % {'first': 'df', 'second': 'another df'}
字符串格式化(format)
(1) 使用位置参数
位置参数不受顺序约束,且可以为{},参数索引从0开始,format里填写{}对应的参数值。
>>> msg = "my name is {}, and age is {}" >>> msg.format("hqs",22) 'my name is hqs, and age is 22'
(2) 使用关键字参数
关键字参数值要对得上,可用字典当关键字参数传入值,字典前加**即可
>>> hash = {'name':'john' , 'age': 23} >>> msg = 'my name is {name}, and age is {age}' >>> msg.format(**hash) 'my name is john,and age is 23'
(3) 填充与格式化
:[填充字符][对齐方式 <^>][宽度]
>>> '{0:*<10}'.format(10) # 左对齐 '10********'
11、面向对象深度优先和广度优先是什么?
在子类继承多个父类时,属性查找方式分深度优先和广度优先两种。
当类是经典类时,多继承情况下,在要查找属性不存在时,会按照深度优先方式查找下去。
当类是新式类时,多继承情况下,在要查找属性不存在时,会按照广度优先方式查找下去。
12、“一行代码实现 xx”类题目
(1) 一行代码实现 1 - 100 的和
可以利用 sum() 函数。
(2) 一行代码实现数值交换
不用二话,直接换。
(3) 一行代码求奇偶数
使用列表推导式。
(4) 一行代码展开列表
使用列表推导式,稍微复杂一点,注意顺序。
(5) 一行代码打乱列表
用到 random 的 shuffle。
(6) 一行代码反转字符串
使用切片。
(7) 一行代码查看目录下所有文件
使用 os 的 listdir。
(8) 一行代码去除字符串间的空格
法 1 replace 函数。
法 2 join & split 函数。
(9) 一行代码实现字符串整数列表变成整数列表
使用 list & map & lambda。
(10) 一行代码删除列表中重复的值
使用 list & set。
**(11) 一行代码实现 9 * 9 乘法表
稍稍复杂的列表推导式,耐心点就行,一点点的搞...
(12) 一行代码找出两个列表中相同的元素
使用 set 和 &。
(13) 一行代码找出两个列表中不同的元素
使用 set 和 ^。
(14)一行代码合并两个字典
使用 Update 函数。
(15) 一行代码实现字典键从小到大排序
使用 sort 函数。
<
以上就是今天的内容,我是帅蛋,我们明天见~
❤️ 欢迎关注我,有问题,找帅蛋,我最看不得别人迷茫!
❤️ 如果你觉得有帮助,希望爱学习的你不要吝啬三连击哟[点赞 + 收藏 + 评论]~
#面试八股文##帅蛋的面试空间##秋招##Python##python面试#还有小小公众号 【编程文青李狗蛋】,聊聊迷茫吹吹牛皮~