【面试记录】Python常见面试200题及答案总结

本文总结了Python面试中常见的200道题目,涵盖语言特性、数据类型、编码规范、异常处理、数据库操作、网络编程等多个方面,帮助考生全面准备面试。
摘要由CSDN通过智能技术生成

Python常见面试200题及答案总结

/待完善/

1. 列出5个常用python标准库?

os:提供了不少与操作系统相关联的函数,提供了一种可移植的使用操作系统功能的方法。使用os模块中提供的接口,可实现跨平台访问。但是,并不是所有的os模块中的接口在全平台都通用,有些接口的实现是依赖特定平台的,比如linux相关的文件权限管理和进程管理。
os模块的主要功能:系统相关、目录及文件操作、执行命令和管理进程
>>> os.getcwd() # 返回当前的工作目录
>>> os.chdir() # 修改当前的工作目录
>>> os.system('mkdir today') # 执行系统命令 mkdir

sys:通常用于命令行参数

re:正则匹配

math:数学运算

datetime:处理日期时间

2. Python 内建数据类型有哪些?

数字(整型int、浮点数float、复数complex)

布尔 bool

Bytes

字符串 str

列表 list

元祖 tuple

集合 set

字典 dict

3. 简述 with 方法打开处理文件帮我我们做了什么?

# 常规的打开文件写法
f = open("./1.txt")
try:
	print(f.read())
excpet:
	pass
finally:
	f.colse()
	
# with语句打开文件写法
with open('1.txt') as f:
	print(f.read())
打开文件在进行读写的时候可能会出现一些异常状况,如果按照常规的f.open写法,需要try,except,finally,做异常判断,并且文件最终不管遇到什么情况,都要执行finally f.close()关闭文件,with方法帮我们实现了finally中f.close。

注意:with本身没有异常捕获的功能,如果发生了运行时异常,它照样可以关闭文件释放资源。

【格式】

with context [as var]:
	pass
其中:context是一个表达式,返回一个对象,var用来保存context表达式返回的对象,可以是单个或多个返回值。
with open('1.txt') as f:
	print(f.read())
	
print(f.closed)
# 表达式open('1.txt')返回是一个_io.TextIOWrapper类型的变量对象,用f来保存。
# 在with语句块中就可以使用这个变量操作文件。
# 执行with这个结构之后。f会自动关闭。相当于自带了一个finally。

输出:
print # 1.txt文件的内容
True # 执行完with语句块之后,f自动关闭

【with语句实质是上下文管理】

1、上下文管理协议。包含方法__enter__()和__exit__(),支持该协议对象要实现这两个方法。
2、上下文管理器。定义执行with语句时要建立的运行时上下文,负责执行with语句快上下文中的进入与退出操作。
3、进入上下文的时候执行__enter__(),如果设置as var语句,var变量接受__enter__()方法返回值。
4、如果运行时发生了异常,就退出上下文管理器。调用管理器__exit__()方法。

【应用场景】

1、文件操作
2、进程线程之间互斥对象
3、支持上下文其他对象

4. 列出 Python 中可变数据类型和不可变数据类型,为什么?

详解参考link

可变数据类型:在id(内存地址)不变的情况下,value(值)可以变,则称为可变类型。即说明对一个变量进行操作时,其值是可变的,值的变化并不会引起新建对象,其地址是不会变的,只是地址中的内容变化了或者地址得到了扩充。
  • 列表 list
  • 字典 dict
# 以list为例
>>> a = [1, 2, 3]
>>> id(a)
41568816
>>> a = [1, 2, 3]
>>> id(a)
41575088
# 进行两次a = [1, 2, 3]操作,两次a引用的地址值是不同的,即说明其实创建了两个不同的对象。
# 即在内存中保存了多个同样值的对象,地址值不同。
>>> a.append(4)
>>> id(a)
41575088
>>> a += [2]
>>> id(a)
41575088
>>> a
[1, 2, 3, 4, 2]
# 对列表a进行操作,a引用的对象值改变了,但a的地址值没有发生改变,只是在地址后面又扩充了新的地址。
不可变数据类型:value(值)一旦改变,id(内存地址)也改变,则称为不可变类型(id变,意味着创建了新的内存空间)。
优点:内存中不管有多少个引用,相同的对象只占用了一块内存。
缺点:当需要对变量进行运算从而改变变量引用的对象的值时,由于是不可变的数据类型,所以必须创建新的对象,这样就会使得一次次的改变创建了一个个新的对象,不过不再使用的内存会被垃圾回收器回收。
  • 数字(整型int、浮点数float、复数complex)
  • 布尔 bool
  • 字符串 str
  • 元祖 tuple
  • 集合 set
# int为例
>>> x = 1
>>> id(x)
31106520
>>> y = 1
>>> id(y)
31106520
# x、y引用对象都为1,id不变
>>> x = 2
>>> id(x)
31106508
>>> y = 2
>>> id(y)
31106508
>>> z = y
>>> id(z)
31106508
# 此时x、y、z引用对象变为2,id即改变了

5.Python 获取当前日期?

import time
localtime = time.localtime(time.time())
print(localtime)

# time.time()用于获取当前时间时间戳。
# 每个时间戳都以自1970年1月1日午夜(历元)经过了多长时间来表示。以秒为单位的浮点小数。
# 用localtime()函数将浮点数转化为元祖struct_time结构

输出:

time.struct_time(tm_year=2021, tm_mon=3, tm_mday=18, tm_hour=16, tm_min=18, tm_sec=48, tm_wday=3, tm_yday=77, tm_isdst=0)

6. 统计字符串每个单词出现的次数

# collection模块,实现了特定目标的容器,以提供Python标准内建容器 dict , list , set , 和 tuple 的替代选择。
from collections import Counter

str1 = 'I can because i think i can'
# Counter -- 字典的子类,提供了可哈希对象的计数功能
counts = Counter(str1.split())
print(counts)

输出:

Counter({'can': 2, 'i': 2, 'I': 1, 'because': 1, 'think': 1})

7. 用 python 删除文件和用 linux 命令删除文件方法

# python
import os
os.remove('111.py')
# linux
rm 111.py

8. 写一段自定义异常代码

# 本模块的基类
class CalcErr(Exception
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值