python常见面试题

本文详细介绍了Python编程面试中的常见知识点,包括列表、字符串、字典、集合等数据结构的操作,进程与线程的区别,协程的原理,装饰器、生成器和迭代器的使用,以及MySQL事务、锁机制、优化策略等数据库相关内容。此外,还涵盖了Redis数据类型、事务、分布式锁和持久化等主题,最后讨论了数据结构如栈、队列、链表和二分查找等基础概念。
摘要由CSDN通过智能技术生成

python基础
1.列表常用方法
append:用于在列表末尾追加新的对象
extend:可以在列表末尾一次性追加另一个序列的多个值
count:用来统计某个元素在序列中出现的次数
index:用来查找某个值第一个匹配项的索引的位置
insert:用于将对象插入到列表中
pop:删除列表的一个元素,默认是最后一个,并且返回元素的值
remove:用于移除列表中某个值的第一个匹配项
reverse:将列表中的元素反向存放
sort:用于在原位置对列表进行排序,改变原来的列表,让其中的元素按一定顺序排列

2.字符串常用方法
find:可以在一个较长的字符串中查找子串,他返回子串所在位置的最左端索引
join:split的逆方法,用来连接两个字符串
split:将一个字符串分割成多个序列
strip:去除字符串中首尾的空格,并不包括字符串中间的空格
replace:替换,将字符串中某个匹配的子串替换为指定的子串

3.字典常用方法
clear:请求字典中所有元素,这是一个原地操作,所以,无返回值
fromkeys:使用给定的键建立新的字典,每个键都对应一个默认值None
get:是个更宽松的访问字典项的方法,如果访问字典中不存在的项,只会返回None
for遍历字典的三种方法:
items:同时遍历字典的键和值
keys:遍历字典的键
values:遍历字典的值
pop:用于删除给定的键,然后在字典中移除键值
setdefault:在某种程度上类似于get方法,能够获得与给定键相关联的值,还能在字典中不含有给定键的情况下设定相应的值
update:可以利用一个字典项更新另一个字典,提供的字典中的项会被添加到旧的字典中,如有相同的键则会被覆盖

4.集合常用方法
intersection:交集,返回的两个序列中都拥有的元素
nuion:并集,返回两个序列所有的元素,且去重
difference:差集,返回该序列有而另一个序列没有的元素

三程
5.进程
进程是资源分配的最小单位,当一个可执行程序被系统分配内存等资源执行时,就变成了一个进程
程序并不能单独运行,只有将程序装载到内存中,系统为他分配内存,才能运行,这种执行的程序旧称为进程
程序和进程的区别就在于,程序是指令的集合,它是进程运行的静态描述文本,进程是程序的一次执行活动,属于动态概念
在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下, 可以实现并发地执行
进程之间都有自己独立的内存,各进程之间不能相互访问
创建一个新线程很简单,创建新进程需要对父进程进行复制
多道编程:在计算机内存中同时存放几道相互独立的程序,他们共享系统资源,相互穿插运行
单道编程:计算机内存中只允许一个程序运行
提供了多道编程,让我们感觉我们每个人都拥有自己的CPU和其他资源,可以提高计算机的利用率
进程间相互访问数据的四种方法:
利用Queues是新鲜进程间的数据传递
使用管道pipe实现两个进程间的数据传递
Managers实现多进程间的数据共享
利用redis中间件进行数据共享
进程和程序的区别:

程序只是一个普通文件,是一个机器代码指令和数据的集合,所以,程序是一个静态的实体
而进程是程序运行在数据集上的动态过程,进程是一个动态实体,它应创建而产生,应调度执行因等待资源或事件而被处于等待状态,因完成任务而被撤消
进程是系统进行资源分配和调度的一个独立单位
4.一个程序对应多个进程,一个进程为多个程序服务(两者之间是多对多的关系)
一个程序执行在不同的数据集上就成为不同的进程,可以用进程控制块来唯一地标识每个进程
6.线程
线程是操作系统调度的最小单位
它被包含在进程中,是进程实际的运作单位
进程本身是无法自己执行的,要操作CPU,必须创建一个线程,线程是一系列指令的集合
一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务
无论你启多少个线程,你有多少个cpu, Python在执行的时候会淡定的在同一时刻只允许一个线程运行

进程线程的区别:
进程包含线程
线程共享内存空间
进程内存是独立的

守护线程SetDaemon:主线程退出时,需要子线程随主线程退出
GIL全局解释器锁:保证同一时间仅有一个线程对资源有操作权限,但是其他线程可以看见该资源

线程锁&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值