python开发题库-进阶(持续更新2020-3-18)

时间:2025-02-25 07:30:32

文章目录

        • 1.网络相关
          • 01 IP地址的正则
          • 03 三次握手四次挥手全过程 为什么握手不是三次或者两次
          • 04 使用python打开百度页面
          • 05 进程 线程 协程
          • 06 IO多路复用
          • 07 TCP和UDP的区别
          • 09 get和post post和put
          • 10 有一个文件,这个文件只能被同时打开一个。这是什么软件模式 ??
          • 12 标准的分层(七层模型) ,mac地址在哪层,ip地址在哪层,arp协议是干嘛(为什么要有arp)
          • 13 http和https 的区别 HTTPS实现的原理过程,SSL加密,非对称加密和对称加密在HTTPS中是怎么用到的
          • 14 打开了一个浏览器,输入[](/)发生了些什么过程?
          • 15 常用 http 状态码
          • 16 tcp/udp,tcp中发生是否会丢包,如何解决,udp丢包会发生什么情况
          • 17 arp协议在哪一层 什么意思 免费的arp什么意思 作用?
          • 18 http的报文结构,哪些报文头。get和post的区别是什么。
          • 19 状态码的含义以及出现场景,301,302,404,500,502,504等
          • 20 从url请求到返回,中间经历了什么
          • 21 TCP为什么可靠(直接背)
          • 22 TCP拥塞控制(直接背)
          • 23 浏览页面过程client和server做了什么?
          • 24 Accept发生在TCP三次握手的哪个阶段?connect,listen函数?
          • 25 Server能不能提前close,会有什么结果(?)
          • 26 TIME_WAIT过多是因为什么;
          • 27 socket长连接是什么意思;
          • 28 当打开浏览器输入一个网址时,用到了哪些网络协议。
        • 机制
          • 01 深拷贝浅拷贝区别
          • 02 python2 与 python3 之间的区别
          • 03 不使用内置函数,将字符串转换成整数C
          • 06 python的垃圾回收机制
          • 07 计算函数具体的执行时间,怎么做,比如50个函数
          • 09 字符串拼接的方式,以及每种方式的优缺点
          • 11 手写继承,要求子类与父类有相同的属性,改变子类属性的同时改变父类的属性
          • 12 Python常用字符串操作
          • 13 锁机制 GIL
          • 14 python的底层实现,用到的排序函数
          • 16 io多路复用
          • 19 python 中装饰器的用法,怎么去构造一个装饰器
          • 20 python函数中如果传入确定的参数那么python在运行这个程序的时候他是在什么时期被确定下来的,如果确定的参数是一个列表,那么后面可能会遇到什么坑
          • 21 python中字典的底层是怎么实现的
          • 22 python内存管理中循环引用怎么解决
          • 23 pass语句的作用
          • 24 如何遍历字典的所有键和值
          • 25 with关键字有什么作用?
          • 26 如何在函数内部修改全局的变量
          • 27 集合、列表、元组的区别
          • 28 python对列表去重
          • 29 深拷贝和浅拷贝的区别
          • 30 命名变量,首字母变成下划线有什么用
          • 31 前面两个下划线后面两个下划线的这种有没有遇见过
          • 32 类和对象有什么关系
          • 33 单例模式
          • 34 工厂模式
          • 35 python怎么定义一个类
          • 36 类的成员变量和对象的成员变量有什么区别
          • 37 修饰符有什么作用()
          • 38 类方法可调用的对象
          • 40 如何读取一个txt文本的数据并打印出来
          • 41 read, readlines, readline 区别
          • 42 python和C++、JAVA的区别。
          • 43 python函数中如果传入确定的参数那么python在运行这个程序的时候他是在什么时期被确定下来的,如果确定的参数是一个列表,那么后面可能会遇到什么坑,
          • 44 字符串拼接直接用+会产生什么问题怎么去优化
          • 45 python中.pyc文件是什么
          • 46 迭代器、可迭代对象、生成器分别是什么?生成器的作用和使用场景?
          • 47 装饰器的使用场景
          • 48 用Python口头设计一个链表(应该是想考查面向对象那一套)
          • 49 Python的IO多路复用是怎么实现的
          • 50 Python的int是怎么实现的
          • 51 什么是上下文管理器
          • 52 你知道右加么(__radd__)
          • 53 python中一般的类都继承object,那object的父类是什么
          • 54 谈谈super原理
          • 55 谈谈元类、元类的应用
          • 57 python多态怎么实现的
          • 58 一个内存泄漏的进程退出还有有影响吗
          • 59 GIL是单线程的,那么python中多线程的实现有什么用。
          • 60 Python中sort函数是如何实现,与sorted有什么区别?
        • 3.数据结构与算法(待解答)
          • 01 写一段代码实现链表
          • 02 python的list是用什么算法实现的
          • 03 快速排序 时间复杂度 什么情况复杂度最大
          • 04 反排算法
          • 05 python当中的数据结构有哪些? 哪些能改变,哪些不能改变?
          • 06 数组和链表的区别,他们各自使用的场景
          • 07 哈希表
          • 08 写下二分查找
          • 09 反转链表
          • 10 哈希怎么实现的
          • 11 .如何解决哈希冲突? 二次探查。然后了?链表法!
          • 12 链表结构,头插法逆转链表
          • 13 二叉树遍历原理
          • 14 md5
          • 15 数据结构链表、栈、队列、堆的原理
          • 16 .数组和链表的区别,优缺点。
          • 17 数组里面有一个数出现数组一半以上。找出这个数
          • 18 一个长度n的无序数字元素列表,如何求中位数,如何尽快的估算中位数,你的算法复杂度是多少;
          • 19 单向链表如何使用快速排序算法进行排序;
          • 20 单向链表长度未知,如何判断其中是否有环;
          • 21 写从简历上提取10个频率最高的字
          • 22 四个人分别花1,2,5,8分钟过桥,桥上只能容纳两个,且过河要手电筒!问最短过河方案!
          • 23 如果一个人在公交车站台一分钟内能等到公交车的概率为p,那么这个人在三分钟里能等到这辆公交车的概率为多少?(从反面去思考1-(1-p)*(1-p)*(1-p))
          • 24 4个人过桥的时间分别为1分钟,3分钟,7分钟,9分钟(具体时间忘记了,但思路不变)。只有一个手电筒,每次只能两个人过桥,过桥时间以两个人中最慢的那个人过桥时间为准。问这四个人全部过桥最少需要多少时间
          • 25 找到整数列表的最大k个数
          • 26 输入一维数组array和n,找出和值为n的任意两个元素
          • 27 “1223345677881”,字符串去重?时间复杂度?
          • 28 手写python:用递归的方式判断字符串是否为回文;
          • 29 手写:一个列表A=[A1,A2,…,An],要求把列表中所有的组合情况打印出来;
          • 30 手写:已知一个长度n的无序列表,元素均是数字,要求把所有间隔为d的组合找出来,你写的解法算法复杂度多少;
          • 31 如何遍历一个内部未知的文件夹(两种树的优先遍历方式)
          • 32 对两个二进制字符串求十进制的和
          • 33 长字符串匹配短字符串(可含空格) [参考:下标索引 ;字串第一次出现在主串的位置,KMP算法]
          • 34 给定一个数,从这个堆里面找到最小的数的过程是什么?
          • 35 堆的问题和过桥的实现
          • 36 写一个函数实现字符串的左移,并且不开辟空间
        • 5.系统相关
          • 1 线程和进程
          • 2 多线程编程怎么做线程的同步
          • 3 进程间通信方式有哪些
          • 4 操作系统中堆和栈有什么作用,存哪些数据
          • 5 临时变量存在哪?mylook(程序员自己创建出来的内存)存在哪?
          • 6 堆和栈的区别
          • 8 讲一下fork
          • 9 对于多线程,你是怎么去使用的,如果要我去设计一个线程池,我该怎么去设计。
          • 13 为什么python的多线程适合IO密集型任务
          • 12 python协程的实现原理
          • 10 Kafka 怎么判断重复消费,Kafka 消费组结构
          • 7 Kafka 选主怎么做的?
          • 11 openstack
        • 6.数据库
          • 1 数据库:提高某个关键字的效率,怎么做
          • 2 索引有什么缺点
          • 3 有一堆数据插入数据库,一条一条插入,有更高效的方式么
          • 4 怎么创建索引
          • 5 索引的作用
          • 6 python连接数据库常用语句
          • 7 数据库联接操作,左连接,右链接,全链接的操作以及区别
          • 9 读锁和写锁,以及在数据库里面的应用。
          • 10 mysql的索引是什么,如何建立索引,B+树的结构
          • 11 mysql中的事务是什么,隔离等级是什么
          • 12 如何优化sql语句(直接背)
          • 13 mysql的性能优化
          • 14 binlog 日志和 redolog 日志清楚吗?
          • 15 zset 延时队列怎么实现的
          • 16 binlog 日志是 master 推的还是 salve 来拉的?
          • 17 mysql 主从同步怎么搞的?分哪几个过程?如果有一台新机器要加到从机里,怎么个过程。
          • 19 redis 主从同步是怎样的过程?
          • 20 mysql 的索引模型
          • 21 redis如何实现高可用
          • 22 id生成器怎么实现的,如何实现全局递增
          • 23 RR解决了什么问题,还有什么问题是没有解决的
          • 24 B-树和B+树应用场景和区别、优缺点
          • 25 MySQL隔离级别,MySQL乐观锁怎么实现
          • 26 redis跳跃表,redis持久化
          • 27 MySQL隔离级别,MySQL乐观锁怎么实现
          • 29 redis为什么快?底层数据结构?跳表具体用在哪些场景
          • 30 锁,为什么要锁住,难道更改的数据就不可以用吗?
          • 31 一级索引 二级索引
          • 32 索引类型有几种,BTree索引和hash索引的区别
          • 33 MySQL的char varchar text的区别;
          • 34 为何,以及如何分区、分表;
          • 35 MySQL锁有几种;死锁是怎么产生的;
          • 36 数据库的索引问题,针对场景如何建立索引,为什么这么建立索引,怎样优化
          • mysql 。订单 order 实体有几个属性:产品(product_id)、下单日期(date)等,请设计 索引 实现下列需求并优化索引:
          • 37 数据库索引实现为什么要用B+树,而不去用hash呢。
          • 38 数据库中索引的作用,主键索引工作的大体流程。
        • 7 web框架(待补充)
          • 1 django架构底层原理
          • 2 flask框架的构造,以及他是怎么实现前后端连接
          • 3 django 处理请求的顺序
          • 4 cookie和session
          • 5 django 中间件
          • 6 celery原理,如何配置worker权重
          • 7 RESTful api?
          • 8.你看过django的admin源码么;看过flask的源码么;你如何理解开源;
          • / MTV;
          • 10.缓存怎么用;
          • 11.中间件是干嘛的;
          • 是什么,django是如何避免的;XSS呢;
          • 13.如果你来设计login,简单的说一下思路;
          • 和cookie的联系与区别;session为什么说是安全的;他们是怎么连接起来的。
          • 和Nginx的作用;
        • 8 linux
          • 1 怎么查看内存,IO,CPU使用情况
        • 9.聊人生
          • 01 获取知识的途径
          • 02 格局:新技术, 架构, 深入底层, 触类旁通, 一个问题归成一类问题
        • 10 项目准备(待补充)
          • 1.项目介绍
          • 2 如何定位内存过高或CPU过高的问题
          • 3 画一下你的项目的结构
          • 4 项目中你遇到的最大的困难是什么,是如何解决的?
          • 5 项目中你最有成就感的地方是什么?
          • 6 项目中印象深刻的bug
          • 7 项目场景:

1.网络相关
01 IP地址的正则

模糊:^(\d{1, 3}.){3}{\d}{1, 3}$

精确:^(( 25[0-5] | 24[0-9] | [01]?[0-9] [0-9]? ) .) {3}( 25[0-5] | 24[0-9] | [01]?[0-9] [0-9]? )$

03 三次握手四次挥手全过程 为什么握手不是三次或者两次

画图(一定要自己画图才能理解!!!);关键词:全双工,握手/挥手建立通信都需要双方确认对方收到自己发送的报文;两次不足以建立双端通信,三次足够,中间一次握手同时包含 syn 和 ack 因此不需要四次;但是 挥手的时候必须四次,因此 fin 和 ack 一般不能同时发送,ack是立即发送的,而fin需要等服务端当前报文发送完毕才能发送,因此挥手是四次。

04 使用python打开百度页面

1.导入 selenium(web自动化工具)包 的 webdriver 模块(from … import …)

2.将chrome 的启动文件作为webdriver参数,使用webdiiver模拟chrome

05 进程 线程 协程

进程:资源分配最小单位; 多进程 切换和进程通信消耗大。

线程:系统调度的最小单位;线程之间的切换系统调度,会有损耗;(基于cpython解释器)python的多线程为伪多线程,

一旦处理任何一个计算密集型任务,都会导致性能极低。

协程:用户态的轻量级线程,协程切换的控制权在用户手中;使用多进程+协程发挥多核CPU的性能优势

06 IO多路复用

概念:多个网络IO复用1路或者多路线程来处理TCP连接

1984 select: 1.1024连接上限 2.使用轮询的方式 3.会修改传入的参数 4.非线程安全;

1997 poll:修改了 1024上限;不会修改传入的参数;仍然采用 轮询方式 并且 非线程安全;

2002 epoll:线程安全,并且 改用事件触发的方式,节省了系统资源;

07 TCP和UDP的区别

TCP:面向连接,安全,数据不丢失;基于字节流的传输,消息无边界;传输速率较慢(类比于打电话,发电报)

UDP:非连接,不安全,数据可能丢失;基于消息传输,有边界;传输速率较快;(类比于直播)

09 get和post post和put

(1)

get: 用来发起请求,获取数据;幂等性(无论操作多少次结果都一样),安全;

post: 提交数据(表单形式),一般是没有的,重新创建

put: 更新数据;幂等性;

delete:删除操作;幂等性;

(2)

get 和 post 具体区别:

​ get post

url参数可见性: 可见 不可见

数据传输: 拼接url进行传递参数 通过body传输参数

缓存性: 可缓存 不能缓存

传输数据大小: 一般2-4K 根据配置而定,理论上无限大

安全性: 暴露url参数 ,原则上不安全 安全

10 有一个文件,这个文件只能被同时打开一个。这是什么软件模式 ??

单例模式

12 标准的分层(七层模型) ,mac地址在哪层,ip地址在哪层,arp协议是干嘛(为什么要有arp)

(1)

应用层 访问网络服务的接口 (http,ftp,telnet,snmp,dns)

表示层 数据格式转换服务

会话层 建立端连接,提供访问验证,会话管理(session)

传输层 提供应用进程之间的逻辑通信 (tcp,udp,socket)

网络层 数据在结点之间传输创建逻辑链路,并分组转发数据 (ip,32位。路由器,交换机)

链路层 通信的实体间建立数据链路连接 (mac,48位,arp)

物理层 为数据端设备提供原始比特流的传输的通路 (传输介质,如 网线,RJ45)

(2)

ARP协议是地址解析协议,工作在数据链路层,根据IP地址来获取物理地址的一个协议。

13 http和https 的区别 HTTPS实现的原理过程,SSL加密,非对称加密和对称加密在HTTPS中是怎么用到的

(1)http是一种传输协议,全名是超文本传输协议;用于从万维网传输超文本到本地浏览器的协议。

https相当于http的安全版,加入了安全加密传输协议ssl,相比http他更安全;两者连接方式完全不一样,用的端口也不一样,http是80,https是443;https需要用到ca申请证书,一般免费证书较少,需要一定费用;并且每次消息的加密十分耗时,消耗系统资源。

(2) 对称性加密:服务器和客户端使用同一个秘钥,即加密和解密都使用一个秘钥;

优:算法公开,计算量小;加密速度快,加密效率高;

缺点:使用前需要双方协商好秘钥,并且保存好不能泄露;每对用户要使用其他用户不知道的秘钥。会使得秘钥管理成为负担。

非对称性解密:加密和解密使用一对秘钥,公钥和秘钥,互为加锁和解锁。公钥能够公开(给对方),秘钥自己保管,不能外泄。(服务端和客户端都有自己的公钥和秘钥)。客户端在发送消息前,先用服务器的公钥进行加密,服务器收到后再用自己的私钥进行解密。

优:安全 缺点:慢

原理:https使用非对称加密进行证书验证,使用对称加密进行数据传输。

详解:1.证书验证阶段: 浏览器发起 https 请求;服务端返回 https 证书;客户端验证证书是否合法,如果不合法则报警。 2.数据传输阶段:证书合法后,客户端本地生成随机数;通过(服务端)公钥加密随机数,并把加密后的随机数传输到服务端;服务端通过私钥对随机数进行解密获得客户端传入的随机数;服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后传输,客户端根据本地随机数进行解密。

数据传输使用对称加密的目的:非对称加密效率低;大量数据的传送使用非对称加密效率无法接受;另外非对称加密,一对公钥,私钥用于加密,解密,是单向的,而数据传输是双向,这也是为什么效率低的原因。

使用ca证书的目的:需要一个认证机构,防止伪造,防止任何人都可以制造证书而造成中间人攻击。(相当于一个资格认证)。

如果有人伪造证书呢:即使伪造证书,因为非对称加密存在,无法通过公钥生成私钥,所以伪造人无法拿到客户端生成的随机数。

ca包含:颁发机构信息,公钥,公司相关信息,域名,有效期,指纹等;

ssl(secure socket layer 安全套接层):融合 对称加密,非对称加密,数字证书来达到性能与安全与最大化的整合技术。

14 打开了一个浏览器,输入发生了些什么过程?

15 常用 http 状态码

(1) 状态码格式

1xx:临时响应 2xx:成功 3xx:重定向(需要进一步操作) 4xx:请求错误 5xx:服务器错误

(2)常用http状态码

200 OK 服务器成功返回网页

301 永久跳转 请求的网页跳转到新的位置

302 临时移动 服务端临时从不同位置响应,但是请求者应继续使用原有位置进行请求

400 服务器不理解的请求语法(字段不合法之类的)

401 未授权 请求要求身份验证

403 服务器拒绝请求

404 服务器找不到请求的页面

500 内部服务器错误

502 坏的网关(后端没有按照http协议正确返回)

503 服务不可用 (可能是超载或者停机维护)

504 网关超时(后端没有在特定时间内完服务)

16 tcp/udp,tcp中发生是否会丢包,如何解决,udp丢包会发生什么情况

(1)TCP是一种面向连接的,可靠的,基于字节流的传输层协议;基于不可靠的网路实现可靠的传输。

TCP丢包可能的原因:

1.程序发送过程或者接受过程出现问题。

2.多线程同步问题

3.缓冲区溢出

TCP丢包解决办法:数据分片(接收到重组),到达确认,超时重发,数据校验,失序处理,重复处理

17 arp协议在哪一层 什么意思 免费的arp什么意思 作用?

(1)ARP:地址解析协议 链路层 根据ip地址获取物理地址

(2)免费ARP:

免费ARP是一个Sender IP和Target IP字段相同的广播请求报文,相当于请求自己IP地址的mac地址,大部分时候发送者不希望收到ARP回复。

作用:1.验证IP是否冲突 2.双击热备 3.网关定时刷新

18 http的报文结构,哪些报文头。get和post的区别是什么。

(1)请求报文:请求行,请求头部,空行,请求数据

响应报文:响应行,响应头,空行,响应体

请求报文头:Accept (客户端

告诉服务器接受的响应类型);cookie;Refer(请求的URL来源);cache_control 缓存控制;

响应报文头:Cache-Control 缓存控制;Etag 代表响应的服务端资源版本;Location 重定向作用;

(2)略

19 状态码的含义以及出现场景,301,302,404,500,502,504等

20 从url请求到返回,中间经历了什么

解析,由域名获得真实IP地址;

2.客户端向IP指向的服务器发起TCP三次握手,建立同步;

3.客户端发送http请求,请求数据包

4.服务端根据请求进行响应,返回数据

5.客户端收到HTTP响应

6.客户端读取页面内容,浏览器渲染,解析html原码,css样式,js交互

21 TCP为什么可靠(直接背)

1.确认和重传机制

建立连接时三次握手同步双方的“序列号+确认号+窗口大小信息”,是确认重传,流控的基础。传输过程中,如果checksum校验失败,丢包或者延时,发送端重传

2 流量控制(滑动窗口)

窗口和计时器的使用。TCP窗口中会指明双方能够发送的最大数据量。

3 拥塞控制

拥塞控制相对于流量控制来说考虑的是整个网络的控制。

拥塞控制有四个核心算法组成:慢启动,拥塞避免,快速重传,快速恢复。

22 TCP拥塞控制(直接背)

拥塞控制相对于流量控制来说考虑的是整个网络的控制。

拥塞控制有四个核心算法组成:慢启动,拥塞避免,快速重传,快速恢复

23 浏览页面过程client和server做了什么?

(已建立TCP三次握手连接情况下) 客户端:http请求,ajax轮询 服务端:http响应

备注:多个HTTP请求并不代表有多个TCP连接,当然这个场景肯定会有多个TCP连接

http2.0 可以通过多路复用计数,允许通过单一的http请求连接发起多重请求-响应消息,即同一次传输中发送多个css,js,图片等资源

24 Accept发生在TCP三次握手的哪个阶段?connect,listen函数?

():从处于established 状态的队列中取出完成的连接,当队列中没有完成连接时候,会形成阻塞,直到取出队列中已完成连接的用户连接为止。(Accept默认阻塞进程,直到有一个客户建立连接为止。)。established阶段。

2.客户端调用connect来发送syn报文。默认阻塞进程,直到连接成功。同步发送阶段。

3.服务器调用listen进行监听。非阻塞函数。建立三次握手之前。closed阶段。

25 Server能不能提前close,会有什么结果(?)

不能;

如果服务器还没发送FIN就关闭;会导致导致此时响应给客户端的报文不完整;

如果还没收到客户端对服务端关闭报文的响应就关闭:客户端没有办法确认服务端是否关闭,造成非正常关闭。

26 TIME_WAIT过多是因为什么;

原因:服务器处理高并发短连接,严重影响服务器的处理能力,甚至耗尽可用的socket。(占用大量端口,短连接本身时间很短)

解决:调整参数,缩短Time_wait的时间。

27 socket长连接是什么意思;

1次socket连接成功之后,无论是否使用socket连接,不断开socket连接(进行多次HTTP事务)。

28 当打开浏览器输入一个网址时,用到了哪些网络协议。

域名解析:DNS协议(应用层)

TCP三次握手:TCP协议

建立TCP连接时需要发送数据:IP协议

OSPF:IP数据包在路由器之间,路由选择使用OSPF协议

ARP:路由器在于服务器通信时,需要将IP地址转换为MAC地址,需要使用ARP协议

HTTP:TCP建立连接完成后,使用HTTP协议访问网页

机制
01 深拷贝浅拷贝区别

02 python2 与 python3 之间的区别

(1)核心区别: 编码方式,字符串类型,类的区别,缩进,import方式(2相对,3绝对)

(2)废弃类区别:

raw_input函数弃用,统一使用input函数;

print语句弃用,统一使用print函数;

xrange弃用,统一使用range(同python2中的xrange);(保留生成器功能)

exec,execfile语句被弃用,使用exec函数;(将字符串转化为执行代码)

long整数类型被废弃,统一使用Int

file函数被废弃,统一使用open来处理文件

字典has_key函数被废弃,统一使用in关键字

keys(),values(),items();zip(),map(),filter(),不在返回list对象,而是iterable对象,但可以通过list方法转化为list

(3)修改类区别:

/ 修改: 2中有浮点数参与结果为浮点数,全整为整数;3中根据实际结果而定类型。

for循环: 2会改变同名外部相同名称变量的值;3不会;

round函数; 2返回float类型,而3返回int类型。

比较操作符:2不同类型对象可以比较(ASCII码的比较),3只有统一数据类型可以比较。

03 不使用内置函数,将字符串转换成整数C
def trans_int(strvar)
intvar = 0
for i in strvar:
	temp1 = len(strvar) - (i) - 1 
	temp2 = int(i) * pow(10, temp1)
	intvar += temp2
return intvar
06 python的垃圾回收机制

引用计数,分代回收;

解决循环引用:手动回收,弱引用;

07 计算函数具体的执行时间,怎么做,比如50个函数

import time

def wraper(func):

​ t1 = ()

​ func()

​ t2 = ()

​ print(“耗时:{:.8f}s”).format(t2- t1))

@wraper

def func():

​ pass

09 字符串拼接的方式,以及每种方式的优缺点

1 + : 适用于拼接的字符串较小,数量较少 空间复杂度O(n);如果数据量很大,效率较低;

2 .join(): 缺点:只适用于拼接列表对象; 优点:数据量很大时效率较高,只申请一次内存,节省空间;

3 格式化拼接 % : 不适合数据量较大,可读性一般;

4 格式化拼接 .format: 可用于代替% 功能更强大(设置下标,控制填补),可读性较强;格式要求高:{} 与 字符串数量一致;(python3.6之后的)

5 空格号: 可读性较差,不适于数据量较大;

6 *操作符: 只能用于同一字符串的多次拼接,原理同+,不适合于数据量较大;

7 f-strings: 速度很快;仅限于 python3.6 版本以上;

11 手写继承,要求子类与父类有相同的属性,改变子类属性的同时改变父类的属性
class father():
    __name = 'haha'
    
class son(father):
    __name = 'miemie'
    
    
12 Python常用字符串操作

查:len() count() index() startswith() endswith() isupper() islower() isalpha() isdigit()

改:centre() strip() replace()

拼接: +;*;f-strings;%;{} .format;.join(); ’ ’ , ;

转化:split()

13 锁机制 GIL

14 python的底层实现,用到的排序函数

sort() 普通内置函数,对列表排序,直接在原列表进行修改;

sorted() python中的高级函数;sorted(iterable, reverse=True, func) 返回排序后的结果;排序对象为可迭代对象,并可按照函数进行排序,生成新的列表。

16 io多路复用

19 python 中装饰器的用法,怎么去构造一个装饰器

20 python函数中如果传入确定的参数那么python在运行这个程序的时候他是在什么时期被确定下来的,如果确定的参数是一个列表,那么后面可能会遇到什么坑