CSDN官方发布的《180道Python面试题,助你一举通过面试!》浅析(一)
1. 列出 5 个常用 Python 标准库?
2. Python 内建数据类型有哪些?
3. 简述 with 方法打开处理文件帮我们做了什么?
4. 列出 Python 中可变数据类型和不可变数据类型,为什么?
5. Python 获取当前日期?
6. 统计字符串每个单词出现的次数
7. 用 python 删除文件和用 linux 命令删除文件方法
8. 写一段自定义异常代码
9. 举例说明异常模块中 try except else finally 的相关意义
10. 遇到 bug 如何处理
参考文献
[1]https://blog.csdn.net/csdngkk/article/details/99116607.
[2]https://blog.csdn.net/weixin_41460135/article/details/100030741.
[3]https://www.cnblogs.com/sea-stream/p/11188732.html.
[4]https://blog.csdn.net/whjay520/article/details/82996665.
学习python中有什么不懂的地方,小编这里推荐加小编的python学习群:895,817, 687
有任何不懂的都可以在里面交流,还有很好的视频教程pdf学习资料,大家一起学习交流!
这是加入CSDN的第一篇博文,对python的使用也仅限于实验室的项目及课程中的大作业,尽量通过查阅资料和官方文档减少纰漏,一起讨论进步!
引用其他博主的文章内容都加了角标,并将链接附在参考文献
1. 列出 5 个常用 Python 标准库?
os:这个Lib提供了一些方便使用操作系统相关功能的函数。操作路径的os.path模块会经常用到。
io:这个Lib提供了 Python 用于处理各种 I/O 类型的主要工具。三种主要的 I/O类型分别为: 文本 I/O, 二进制 I/O 和 原始 I/O。
re:模块提供了与 Perl 语言类似的正则表达式匹配操作。模式和被搜索的字符串既可以是 Unicode 字符串 (str) ,也可以是8位字节串 (bytes)。 但不能混用。
- 对于反斜杠字符可以采用r’\n’来表示’‘和’n’。
- 重复修饰符 (*, +, ?, {m,n}, 等) 不能直接嵌套,特殊字符(.^$?等)的排列顺序和组合方式
- 常用的函数:match,search,split,findall等,编译后的正则表达式对象支持的方法和属性。
sys:模块提供了一些变量和函数。这些变量可能被解释器使用,也可能由解释器提供。这些函数会影响解释器。这个模块总是可用的。
math:模块提供了对C标准定义的数学函数的访问。这些函数不适用于复数,如果你需要计算复数,请使用 cmath 模块中的同名函数。
struct:模块可以执行 Python 值和以 Python bytes 对象表示的 C 结构之间的转换。 这可以被用来处理存储在文件中或是从网络连接等其他来源获取的二进制数据。 它使用 格式字符串 作为 C 结构布局的精简描述以及与 Python 值的双向转换。
- struck.pack(format,v1,v2,…)返回一个 bytes 对象,其中包含根据格式字符串 format 打包的值 v1,
v2, … 参数个数必须与格式字符串所要求的值完全匹配。 - struck.unpack(format,buffer)根据格式字符串 format 从缓冲区 buffer 解包(假定是由
pack(format, …) 打包)。结果为一个元组,即使其只包含一个条目。 缓冲区的字节大小必须匹配格式所要求的大小。 - 模块还定义了以下类型:class struct.Struct(format)返回一个新的 Struct 对象,它会根据格式字符串
format 来写入和读取二进制数据。 一次性地创建 Struct 对象并调用其方法相比使用同样的格式调用 struct
函数更为高效,因为这样格式字符串只需被编译一次。
random:该模块实现了各种分布的伪随机数生成器。不应将此模块的伪随机生成器用于安全目的。有关安全性或加密用途,请参阅 secrets 模块。
datatime:模块提供了可以通过多种方式操作日期和时间的类。在支持日期时间数学运算的同时,实现的关注点更着重于如何能够更有效地解析其属性用于格式化输出和数据操作。
2. Python 内建数据类型有哪些?
整型(int)、布尔型(bool)、字符串(str)、列表(list)、元组(tuple)、字典(dict)。
3. 简述 with 方法打开处理文件帮我们做了什么?
with方法打开文件,可以在我们对文件操作完成后,自动关闭文件,保证文件的安全性。[2]
- 列出 Python 中可变数据类型和不可变数据类型,为什么?
可变类型(mutable):变量进行append、+=等这种操作后 ,等于 改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。 - list
- dict
- set
- byte array
- user-defined classes (除非是特别定义的不可变)
不可变类型(immutable):改变了变量的值 ,等于新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象(一个地址)。
- int
- float
- decimal
- complex
- bool
- string
- tuple
- range
- frozenset
- bytes[3]
- Python 获取当前日期?
5. Python 获取当前日期?
from time import localtime,strftime
strftime("%Y-%m-%d", localtime())
OUT:‘2019-09-22’
- 统计字符串每个单词出现的次数
Python 统计字符串里每个单词出现的次数的三种方法:[4]
7. 用 python 删除文件和用 linux 命令删除文件方法
Python删除文件的方法:
- os.remove(path, *, dir_fd=None):如果path是目录,则会引发
IsADirectoryError警告,应该使用使用rmdir()删除目录。
Linux删除文件方法:
- 简单删除:rm [选项] 文件
- 彻底删除:shred -u -z [file name]
8:写一段自定义异常代码
程序可以通过创建新的异常类来命名它们自己的异常。异常通常应该直接或间接地从 Exception 类派生。在创建可能引发多个不同错误的模块时,通常的做法是为该模块定义的异常创建基类,并为不同错误条件创建特定异常类的子类:(Error是其他两个异常的基类)
9. 举例说明异常模块中 try except else finally 的相关意义
- try:执行 try 子句( try 和 except 关键字之间的(多行)语句)。如果没有异常发生,则跳过 except 子句 并完成
try 语句的执行。如果在执行 try 子句时发生了异常,则跳过该子句中剩下的部分。可以在此处尝试捕获和处理异常。 - except:捕获try代码块执行时所发生的异常。
- else:try … except 语句有一个可选的 else 子句,在使用时必须放在所有的 except 子句后面。对于在try
子句不引发异常时必须执行的代码来说很有用。使用 else 子句比向 try 子句添加额外的代码要好,因为它避免了意外捕获不是由 try …
except 语句保护的代码引发的异常。 - finally:finally 子句在任何情况下都会被执行。 第三个例子两个字符串相除所引发的 TypeError 不会由 except
子句处理,因此会在 finally 子句执行后被重新引发。在实际应用程序中,finally
子句对于释放外部资源(例如文件或者网络连接)非常有用,无论是否成功使用资源。
10. 遇到 bug 如何处理
1、根据编辑器报错的异常类型和异常发生位置回溯检查。
2、根据异常信息不能明确错误原因时,重新梳理程序逻辑,必要时通过设置断点或加入print()查看程序中语句运行结果。
3、用try…except…排查。(额,没用过)
3、在CSDN、论坛、贴吧搜索类似bug。